mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 03:01:39 -04:00
Char/Misc driver patches for 4.20-rc1
Here is the big set of char/misc patches for 4.20-rc1. Loads of things here, we have new code in all of these driver subsystems: fpga stm extcon nvmem eeprom hyper-v gsmi coresight thunderbolt vmw_balloon goldfish soundwire along with lots of fixes and minor changes to other small drivers. All of these have been in linux-next for a while with no reported issues. Signed-off-by: Greg Kroah-Hartman <[email protected]> -----BEGIN PGP SIGNATURE----- iG0EABECAC0WIQT0tgzFv3jCIUoxPcsxR9QN2y37KQUCW9Le5A8cZ3JlZ0Brcm9h aC5jb20ACgkQMUfUDdst+yn+BQCfZ6DtCIgqo0UW3dLV8Fd0wya9kw0AoNglzJJ6 YRZiaSdRiggARpNdh3ME =97BX -----END PGP SIGNATURE----- Merge tag 'char-misc-4.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc Pull char/misc driver updates from Greg KH: "Here is the big set of char/misc patches for 4.20-rc1. Loads of things here, we have new code in all of these driver subsystems: - fpga - stm - extcon - nvmem - eeprom - hyper-v - gsmi - coresight - thunderbolt - vmw_balloon - goldfish - soundwire along with lots of fixes and minor changes to other small drivers. All of these have been in linux-next for a while with no reported issues" * tag 'char-misc-4.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (245 commits) Documentation/security-bugs: Clarify treatment of embargoed information lib: Fix ia64 bootloader linkage MAINTAINERS: Clarify UIO vs UIOVEC maintainer docs/uio: fix a grammar nitpick docs: fpga: document programming fpgas using regions fpga: add devm_fpga_region_create fpga: bridge: add devm_fpga_bridge_create fpga: mgr: add devm_fpga_mgr_create hv_balloon: Replace spin_is_locked() with lockdep sgi-xp: Replace spin_is_locked() with lockdep eeprom: New ee1004 driver for DDR4 memory eeprom: at25: remove unneeded 'at25_remove' w1: IAD Register is yet readable trough iad sys file. Fix snprintf (%u for unsigned, count for max size). misc: mic: scif: remove set but not used variables 'src_dma_addr, dst_dma_addr' misc: mic: fix a DMA pool free failure platform: goldfish: pipe: Add a blank line to separate varibles and code platform: goldfish: pipe: Remove redundant casting platform: goldfish: pipe: Call misc_deregister if init fails platform: goldfish: pipe: Move the file-scope goldfish_pipe_dev variable into the driver state platform: goldfish: pipe: Move the file-scope goldfish_pipe_miscdev variable into the driver state ...
This commit is contained in:
commit
18d0eae30e
180 changed files with 6878 additions and 3351 deletions
|
|
@ -1,3 +1,5 @@
|
|||
.. SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
===================
|
||||
System Trace Module
|
||||
===================
|
||||
|
|
@ -53,12 +55,30 @@ under "user" directory from the example above and this new rule will
|
|||
be used for trace sources with the id string of "user/dummy".
|
||||
|
||||
Trace sources have to open the stm class device's node and write their
|
||||
trace data into its file descriptor. In order to identify themselves
|
||||
to the policy, they need to do a STP_POLICY_ID_SET ioctl on this file
|
||||
descriptor providing their id string. Otherwise, they will be
|
||||
automatically allocated a master/channel pair upon first write to this
|
||||
file descriptor according to the "default" rule of the policy, if such
|
||||
exists.
|
||||
trace data into its file descriptor.
|
||||
|
||||
In order to find an appropriate policy node for a given trace source,
|
||||
several mechanisms can be used. First, a trace source can explicitly
|
||||
identify itself by calling an STP_POLICY_ID_SET ioctl on the character
|
||||
device's file descriptor, providing their id string, before they write
|
||||
any data there. Secondly, if they chose not to perform the explicit
|
||||
identification (because you may not want to patch existing software
|
||||
to do this), they can just start writing the data, at which point the
|
||||
stm core will try to find a policy node with the name matching the
|
||||
task's name (e.g., "syslogd") and if one exists, it will be used.
|
||||
Thirdly, if the task name can't be found among the policy nodes, the
|
||||
catch-all entry "default" will be used, if it exists. This entry also
|
||||
needs to be created and configured by the system administrator or
|
||||
whatever tools are taking care of the policy configuration. Finally,
|
||||
if all the above steps failed, the write() to an stm file descriptor
|
||||
will return a error (EINVAL).
|
||||
|
||||
Previously, if no policy nodes were found for a trace source, the stm
|
||||
class would silently fall back to allocating the first available
|
||||
contiguous range of master/channels from the beginning of the device's
|
||||
master/channel range. The new requirement for a policy node to exist
|
||||
will help programmers and sysadmins identify gaps in configuration
|
||||
and have better control over the un-identified sources.
|
||||
|
||||
Some STM devices may allow direct mapping of the channel mmio regions
|
||||
to userspace for zero-copy writing. One mappable page (in terms of
|
||||
|
|
@ -92,9 +112,9 @@ allocated for the device according to the policy configuration. If
|
|||
there's a node in the root of the policy directory that matches the
|
||||
stm_source device's name (for example, "console"), this node will be
|
||||
used to allocate master and channel numbers. If there's no such policy
|
||||
node, the stm core will pick the first contiguous chunk of channels
|
||||
within the first available master. Note that the node must exist
|
||||
before the stm_source device is connected to its stm device.
|
||||
node, the stm core will use the catch-all entry "default", if one
|
||||
exists. If neither policy nodes exist, the write() to stm_source_link
|
||||
will return an error.
|
||||
|
||||
stm_console
|
||||
===========
|
||||
|
|
|
|||
62
Documentation/trace/sys-t.rst
Normal file
62
Documentation/trace/sys-t.rst
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
.. SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
===================
|
||||
MIPI SyS-T over STP
|
||||
===================
|
||||
|
||||
The MIPI SyS-T protocol driver can be used with STM class devices to
|
||||
generate standardized trace stream. Aside from being a standard, it
|
||||
provides better trace source identification and timestamp correlation.
|
||||
|
||||
In order to use the MIPI SyS-T protocol driver with your STM device,
|
||||
first, you'll need CONFIG_STM_PROTO_SYS_T.
|
||||
|
||||
Now, you can select which protocol driver you want to use when you create
|
||||
a policy for your STM device, by specifying it in the policy name:
|
||||
|
||||
# mkdir /config/stp-policy/dummy_stm.0:p_sys-t.my-policy/
|
||||
|
||||
In other words, the policy name format is extended like this:
|
||||
|
||||
<device_name>:<protocol_name>.<policy_name>
|
||||
|
||||
With Intel TH, therefore it can look like "0-sth:p_sys-t.my-policy".
|
||||
|
||||
If the protocol name is omitted, the STM class will chose whichever
|
||||
protocol driver was loaded first.
|
||||
|
||||
You can also double check that everything is working as expected by
|
||||
|
||||
# cat /config/stp-policy/dummy_stm.0:p_sys-t.my-policy/protocol
|
||||
p_sys-t
|
||||
|
||||
Now, with the MIPI SyS-T protocol driver, each policy node in the
|
||||
configfs gets a few additional attributes, which determine per-source
|
||||
parameters specific to the protocol:
|
||||
|
||||
# mkdir /config/stp-policy/dummy_stm.0:p_sys-t.my-policy/default
|
||||
# ls /config/stp-policy/dummy_stm.0:p_sys-t.my-policy/default
|
||||
channels
|
||||
clocksync_interval
|
||||
do_len
|
||||
masters
|
||||
ts_interval
|
||||
uuid
|
||||
|
||||
The most important one here is the "uuid", which determines the UUID
|
||||
that will be used to tag all data coming from this source. It is
|
||||
automatically generated when a new node is created, but it is likely
|
||||
that you would want to change it.
|
||||
|
||||
do_len switches on/off the additional "payload length" field in the
|
||||
MIPI SyS-T message header. It is off by default as the STP already
|
||||
marks message boundaries.
|
||||
|
||||
ts_interval and clocksync_interval determine how much time in milliseconds
|
||||
can pass before we need to include a protocol (not transport, aka STP)
|
||||
timestamp in a message header or send a CLOCKSYNC packet, respectively.
|
||||
|
||||
See Documentation/ABI/testing/configfs-stp-policy-p_sys-t for more
|
||||
details.
|
||||
|
||||
* [1] https://www.mipi.org/specifications/sys-t
|
||||
Loading…
Reference in a new issue