Skip to content

Commit 06dd3df

Browse files
committed
Merge tag 'char-misc-4.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc
Pull char/misc updates from Greg KH: "Here is the big set of char/misc driver patches for 4.17-rc1. There are a lot of little things in here, nothing huge, but all important to the different hardware types involved: - thunderbolt driver updates - parport updates (people still care...) - nvmem driver updates - mei updates (as always) - hwtracing driver updates - hyperv driver updates - extcon driver updates - ... and a handful of even smaller driver subsystem and individual driver updates All of these have been in linux-next with no reported issues" * tag 'char-misc-4.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (149 commits) hwtracing: Add HW tracing support menu intel_th: Add ACPI glue layer intel_th: Allow forcing host mode through drvdata intel_th: Pick up irq number from resources intel_th: Don't touch switch routing in host mode intel_th: Use correct method of finding hub intel_th: Add SPDX GPL-2.0 header to replace GPLv2 boilerplate stm class: Make dummy's master/channel ranges configurable stm class: Add SPDX GPL-2.0 header to replace GPLv2 boilerplate MAINTAINERS: Bestow upon myself the care for drivers/hwtracing hv: add SPDX license id to Kconfig hv: add SPDX license to trace Drivers: hv: vmbus: do not mark HV_PCIE as perf_device Drivers: hv: vmbus: respect what we get from hv_get_synint_state() /dev/mem: Avoid overwriting "err" in read_mem() eeprom: at24: use SPDX identifier instead of GPL boiler-plate eeprom: at24: simplify the i2c functionality checking eeprom: at24: fix a line break eeprom: at24: tweak newlines eeprom: at24: refactor at24_probe() ...
2 parents 38047d5 + 86f690e commit 06dd3df

File tree

141 files changed

+3377
-1207
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

141 files changed

+3377
-1207
lines changed

Documentation/ABI/stable/sysfs-bus-vmbus

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,3 +132,10 @@ KernelVersion: 4.16
132132
Contact: Stephen Hemminger <[email protected]>
133133
Description: Monitor bit associated with channel
134134
Users: Debugging tools and userspace drivers
135+
136+
What: /sys/bus/vmbus/devices/vmbus_*/channels/NN/ring
137+
Date: January. 2018
138+
KernelVersion: 4.16
139+
Contact: Stephen Hemminger <[email protected]>
140+
Description: Binary file created by uio_hv_generic for ring buffer
141+
Users: Userspace drivers

Documentation/ABI/testing/sysfs-bus-thunderbolt

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,26 @@
1+
What: /sys/bus/thunderbolt/devices/.../domainX/boot_acl
2+
Date: Jun 2018
3+
KernelVersion: 4.17
4+
5+
Description: Holds a comma separated list of device unique_ids that
6+
are allowed to be connected automatically during system
7+
startup (e.g boot devices). The list always contains
8+
maximum supported number of unique_ids where unused
9+
entries are empty. This allows the userspace software
10+
to determine how many entries the controller supports.
11+
If there are multiple controllers, each controller has
12+
its own ACL list and size may be different between the
13+
controllers.
14+
15+
System BIOS may have an option "Preboot ACL" or similar
16+
that needs to be selected before this list is taken into
17+
consideration.
18+
19+
Software always updates a full list in each write.
20+
21+
If a device is authorized automatically during boot its
22+
boot attribute is set to 1.
23+
124
What: /sys/bus/thunderbolt/devices/.../domainX/security
225
Date: Sep 2017
326
KernelVersion: 4.13
@@ -12,6 +35,9 @@ Description: This attribute holds current Thunderbolt security level
1235
minimum. User needs to authorize each device.
1336
dponly: Automatically tunnel Display port (and USB). No
1437
PCIe tunnels are created.
38+
usbonly: Automatically tunnel USB controller of the
39+
connected Thunderbolt dock (and Display Port). All
40+
PCIe links downstream of the dock are removed.
1541

1642
What: /sys/bus/thunderbolt/devices/.../authorized
1743
Date: Sep 2017
@@ -38,6 +64,13 @@ Description: This attribute is used to authorize Thunderbolt devices
3864
the device did not contain a key at all, and
3965
EKEYREJECTED if the challenge response did not match.
4066

67+
What: /sys/bus/thunderbolt/devices/.../boot
68+
Date: Jun 2018
69+
KernelVersion: 4.17
70+
71+
Description: This attribute contains 1 if Thunderbolt device was already
72+
authorized on boot and 0 otherwise.
73+
4174
What: /sys/bus/thunderbolt/devices/.../key
4275
Date: Sep 2017
4376
KernelVersion: 4.13

Documentation/ABI/testing/sysfs-class-mei

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,3 +45,12 @@ Contact: Tomas Winkler <[email protected]>
4545
Description: Display the driver HBM protocol version.
4646

4747
The HBM protocol version supported by the driver.
48+
49+
What: /sys/class/mei/meiN/tx_queue_limit
50+
Date: Jan 2018
51+
KernelVersion: 4.16
52+
Contact: Tomas Winkler <[email protected]>
53+
Description: Configure tx queue limit
54+
55+
Set maximal number of pending writes
56+
per opened session.
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
What: /sys/bus/platform/devices/[..]/fsi-master-gpio/external_mode
2+
Date: Feb 2018
3+
KernelVersion: 4.17
4+
5+
Description:
6+
Controls access arbitration for GPIO-based FSI master. A
7+
value of 0 (the default) sets normal mode, where the
8+
driver performs FSI bus transactions, 1 sets external mode,
9+
where the FSI bus is driven externally (for example, by
10+
a debug device).

Documentation/admin-guide/thunderbolt.rst

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,11 @@ vulnerable to DMA attacks.
2121
Security levels and how to use them
2222
-----------------------------------
2323
Starting with Intel Falcon Ridge Thunderbolt controller there are 4
24-
security levels available. The reason for these is the fact that the
25-
connected devices can be DMA masters and thus read contents of the host
26-
memory without CPU and OS knowing about it. There are ways to prevent
27-
this by setting up an IOMMU but it is not always available for various
28-
reasons.
24+
security levels available. Intel Titan Ridge added one more security level
25+
(usbonly). The reason for these is the fact that the connected devices can
26+
be DMA masters and thus read contents of the host memory without CPU and OS
27+
knowing about it. There are ways to prevent this by setting up an IOMMU but
28+
it is not always available for various reasons.
2929

3030
The security levels are as follows:
3131

@@ -52,6 +52,11 @@ The security levels are as follows:
5252
USB. No PCIe tunneling is done. In BIOS settings this is
5353
typically called *Display Port Only*.
5454

55+
usbonly
56+
The firmware automatically creates tunnels for the USB controller and
57+
Display Port in a dock. All PCIe links downstream of the dock are
58+
removed.
59+
5560
The current security level can be read from
5661
``/sys/bus/thunderbolt/devices/domainX/security`` where ``domainX`` is
5762
the Thunderbolt domain the host controller manages. There is typically
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
Samsung micro-USB 11-pin connector
2+
==================================
3+
4+
Samsung micro-USB 11-pin connector is an extension of micro-USB connector.
5+
It is present in multiple Samsung mobile devices.
6+
It has additional pins to route MHL traffic simultanously with USB.
7+
8+
The bindings are superset of usb-connector bindings for micro-USB connector[1].
9+
10+
Required properties:
11+
- compatible: must be: "samsung,usb-connector-11pin", "usb-b-connector",
12+
- type: must be "micro".
13+
14+
Required nodes:
15+
- any data bus to the connector should be modeled using the OF graph bindings
16+
specified in bindings/graph.txt, unless the bus is between parent node and
17+
the connector. Since single connector can have multpile data buses every bus
18+
has assigned OF graph port number as follows:
19+
0: High Speed (HS),
20+
3: Mobile High-Definition Link (MHL), specific to 11-pin Samsung micro-USB.
21+
22+
[1]: bindings/connector/usb-connector.txt
23+
24+
Example
25+
-------
26+
27+
Micro-USB connector with HS lines routed via controller (MUIC) and MHL lines
28+
connected to HDMI-MHL bridge (sii8620):
29+
30+
muic-max77843@66 {
31+
...
32+
usb_con: connector {
33+
compatible = "samsung,usb-connector-11pin", "usb-b-connector";
34+
label = "micro-USB";
35+
type = "micro";
36+
37+
ports {
38+
#address-cells = <1>;
39+
#size-cells = <0>;
40+
41+
port@3 {
42+
reg = <3>;
43+
usb_con_mhl: endpoint {
44+
remote-endpoint = <&sii8620_mhl>;
45+
};
46+
};
47+
};
48+
};
49+
};
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
USB Connector
2+
=============
3+
4+
USB connector node represents physical USB connector. It should be
5+
a child of USB interface controller.
6+
7+
Required properties:
8+
- compatible: describes type of the connector, must be one of:
9+
"usb-a-connector",
10+
"usb-b-connector",
11+
"usb-c-connector".
12+
13+
Optional properties:
14+
- label: symbolic name for the connector,
15+
- type: size of the connector, should be specified in case of USB-A, USB-B
16+
non-fullsize connectors: "mini", "micro".
17+
18+
Required nodes:
19+
- any data bus to the connector should be modeled using the OF graph bindings
20+
specified in bindings/graph.txt, unless the bus is between parent node and
21+
the connector. Since single connector can have multpile data buses every bus
22+
has assigned OF graph port number as follows:
23+
0: High Speed (HS), present in all connectors,
24+
1: Super Speed (SS), present in SS capable connectors,
25+
2: Sideband use (SBU), present in USB-C.
26+
27+
Examples
28+
--------
29+
30+
1. Micro-USB connector with HS lines routed via controller (MUIC):
31+
32+
muic-max77843@66 {
33+
...
34+
usb_con: connector {
35+
compatible = "usb-b-connector";
36+
label = "micro-USB";
37+
type = "micro";
38+
};
39+
};
40+
41+
2. USB-C connector attached to CC controller (s2mm005), HS lines routed
42+
to companion PMIC (max77865), SS lines to USB3 PHY and SBU to DisplayPort.
43+
DisplayPort video lines are routed to the connector via SS mux in USB3 PHY.
44+
45+
ccic: s2mm005@33 {
46+
...
47+
usb_con: connector {
48+
compatible = "usb-c-connector";
49+
label = "USB-C";
50+
51+
ports {
52+
#address-cells = <1>;
53+
#size-cells = <0>;
54+
55+
port@0 {
56+
reg = <0>;
57+
usb_con_hs: endpoint {
58+
remote-endpoint = <&max77865_usbc_hs>;
59+
};
60+
};
61+
port@1 {
62+
reg = <1>;
63+
usb_con_ss: endpoint {
64+
remote-endpoint = <&usbdrd_phy_ss>;
65+
};
66+
};
67+
port@2 {
68+
reg = <2>;
69+
usb_con_sbu: endpoint {
70+
remote-endpoint = <&dp_aux>;
71+
};
72+
};
73+
};
74+
};
75+
};
Lines changed: 151 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,151 @@
1+
FSI bus & engine generic device tree bindings
2+
=============================================
3+
4+
The FSI bus is probe-able, so the OS is able to enumerate FSI slaves, and
5+
engines within those slaves. However, we have a facility to match devicetree
6+
nodes to probed engines. This allows for fsi engines to expose non-probeable
7+
busses, which are then exposed by the device tree. For example, an FSI engine
8+
that is an I2C master - the I2C bus can be described by the device tree under
9+
the engine's device tree node.
10+
11+
FSI masters may require their own DT nodes (to describe the master HW itself);
12+
that requirement is defined by the master's implementation, and is described by
13+
the fsi-master-* binding specifications.
14+
15+
Under the masters' nodes, we can describe the bus topology using nodes to
16+
represent the FSI slaves and their slave engines. As a basic outline:
17+
18+
fsi-master {
19+
/* top-level of FSI bus topology, bound to an FSI master driver and
20+
* exposes an FSI bus */
21+
22+
fsi-slave@<link,id> {
23+
/* this node defines the FSI slave device, and is handled
24+
* entirely with FSI core code */
25+
26+
fsi-slave-engine@<addr> {
27+
/* this node defines the engine endpoint & address range, which
28+
* is bound to the relevant fsi device driver */
29+
...
30+
};
31+
32+
fsi-slave-engine@<addr> {
33+
...
34+
};
35+
36+
};
37+
};
38+
39+
Note that since the bus is probe-able, some (or all) of the topology may
40+
not be described; this binding only provides an optional facility for
41+
adding subordinate device tree nodes as children of FSI engines.
42+
43+
FSI masters
44+
-----------
45+
46+
FSI master nodes declare themselves as such with the "fsi-master" compatible
47+
value. It's likely that an implementation-specific compatible value will
48+
be needed as well, for example:
49+
50+
compatible = "fsi-master-gpio", "fsi-master";
51+
52+
Since the master nodes describe the top-level of the FSI topology, they also
53+
need to declare the FSI-standard addressing scheme. This requires two cells for
54+
addresses (link index and slave ID), and no size:
55+
56+
#address-cells = <2>;
57+
#size-cells = <0>;
58+
59+
An optional boolean property can be added to indicate that a particular master
60+
should not scan for connected devices at initialization time. This is
61+
necessary in cases where a scan could cause arbitration issues with other
62+
masters that may be present on the bus.
63+
64+
no-scan-on-init;
65+
66+
FSI slaves
67+
----------
68+
69+
Slaves are identified by a (link-index, slave-id) pair, so require two cells
70+
for an address identifier. Since these are not a range, no size cells are
71+
required. For an example, a slave on link 1, with ID 2, could be represented
72+
as:
73+
74+
cfam@1,2 {
75+
reg = <1 2>;
76+
[...];
77+
}
78+
79+
Each slave provides an address-space, under which the engines are accessible.
80+
That address space has a maximum of 23 bits, so we use one cell to represent
81+
addresses and sizes in the slave address space:
82+
83+
#address-cells = <1>;
84+
#size-cells = <1>;
85+
86+
87+
FSI engines (devices)
88+
---------------------
89+
90+
Engines are identified by their address under the slaves' address spaces. We
91+
use a single cell for address and size. Engine nodes represent the endpoint
92+
FSI device, and are passed to those FSI device drivers' ->probe() functions.
93+
94+
For example, for a slave using a single 0x400-byte page starting at address
95+
0xc00:
96+
97+
engine@c00 {
98+
reg = <0xc00 0x400>;
99+
};
100+
101+
102+
Full example
103+
------------
104+
105+
Here's an example that illustrates:
106+
- an FSI master
107+
- connected to an FSI slave
108+
- that contains an engine that is an I2C master
109+
- connected to an I2C EEPROM
110+
111+
The FSI master may be connected to additional slaves, and slaves may have
112+
additional engines, but they don't necessarily need to be describe in the
113+
device tree if no extra platform information is required.
114+
115+
/* The GPIO-based FSI master node, describing the top level of the
116+
* FSI bus
117+
*/
118+
gpio-fsi {
119+
compatible = "fsi-master-gpio", "fsi-master";
120+
#address-cells = <2>;
121+
#size-cells = <0>;
122+
123+
/* A FSI slave (aka. CFAM) at link 0, ID 0. */
124+
cfam@0,0 {
125+
reg = <0 0>;
126+
#address-cells = <1>;
127+
#size-cells = <1>;
128+
129+
/* FSI engine at 0xc00, using a single page. In this example,
130+
* it's an I2C master controller, so subnodes describe the
131+
* I2C bus.
132+
*/
133+
i2c-controller@c00 {
134+
reg = <0xc00 0x400>;
135+
136+
/* Engine-specific data. In this case, we're describing an
137+
* I2C bus, so we're conforming to the generic I2C binding
138+
*/
139+
compatible = "some-vendor,fsi-i2c-controller";
140+
#address-cells = <1>;
141+
#size-cells = <1>;
142+
143+
/* I2C endpoint device: an Atmel EEPROM */
144+
eeprom@50 {
145+
compatible = "atmel,24c256";
146+
reg = <0x50>;
147+
pagesize = <64>;
148+
};
149+
};
150+
};
151+
};

0 commit comments

Comments
 (0)