@@ -18,8 +18,8 @@ These ISH also comply to HID sensor specification, but the difference is the
1818transport protocol used for communication. The current external sensor hubs
1919mainly use HID over I2C or USB. But ISH doesn't use either I2C or USB.
2020
21- 1. Overview
22- ===========
21+ Overview
22+ ========
2323
2424Using a analogy with a usbhid implementation, the ISH follows a similar model
2525for a very high speed communication::
@@ -58,8 +58,8 @@ implemented as a bus. Each client application executing in the ISH processor
5858is registered as a device on this bus. The driver, which binds each device
5959(ISH HID driver) identifies the device type and registers with the HID core.
6060
61- 2. ISH Implementation: Block Diagram
62- ====================================
61+ ISH Implementation: Block Diagram
62+ =================================
6363
6464::
6565
@@ -96,27 +96,27 @@ is registered as a device on this bus. The driver, which binds each device
9696 | ISH Hardware/Firmware(FW) |
9797 ----------------------------
9898
99- 3. High level processing in above blocks
100- ========================================
99+ High level processing in above blocks
100+ =====================================
101101
102- 3.1 Hardware Interface
103- ----------------------
102+ Hardware Interface
103+ ------------------
104104
105105The ISH is exposed as "Non-VGA unclassified PCI device" to the host. The PCI
106106product and vendor IDs are changed from different generations of processors. So
107107the source code which enumerates drivers needs to update from generation to
108108generation.
109109
110- 3.2 Inter Processor Communication (IPC) driver
111- ----------------------------------------------
110+ Inter Processor Communication (IPC) driver
111+ ------------------------------------------
112112
113113Location: drivers/hid/intel-ish-hid/ipc
114114
115115The IPC message uses memory mapped I/O. The registers are defined in
116116hw-ish-regs.h.
117117
118- 3.2.1 IPC/FW message types
119- ^^^^^^^^^^^^^^^^^^^^^^^^^^
118+ IPC/FW message types
119+ ^^^^^^^^^^^^^^^^^^^^
120120
121121There are two types of messages, one for management of link and another for
122122messages to and from transport layers.
@@ -142,20 +142,20 @@ register has the following format::
142142 Bit 31: doorbell trigger (signal H/W interrupt to the other side)
143143 Other bits are reserved, should be 0.
144144
145- 3.2.2 Transport layer interface
146- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
145+ Transport layer interface
146+ ^^^^^^^^^^^^^^^^^^^^^^^^^
147147
148148To abstract HW level IPC communication, a set of callbacks is registered.
149149The transport layer uses them to send and receive messages.
150150Refer to struct ishtp_hw_ops for callbacks.
151151
152- 3.3 ISH Transport layer
153- -----------------------
152+ ISH Transport layer
153+ -------------------
154154
155155Location: drivers/hid/intel-ish-hid/ishtp/
156156
157- 3.3.1 A Generic Transport Layer
158- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
157+ A Generic Transport Layer
158+ ^^^^^^^^^^^^^^^^^^^^^^^^^
159159
160160The transport layer is a bi-directional protocol, which defines:
161161- Set of commands to start, stop, connect, disconnect and flow control
@@ -166,8 +166,8 @@ This protocol resembles bus messages described in the following document:
166166http://www.intel.com/content/dam/www/public/us/en/documents/technical-\
167167specifications/dcmi-hi-1-0-spec.pdf "Chapter 7: Bus Message Layer"
168168
169- 3.3.2 Connection and Flow Control Mechanism
170- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
169+ Connection and Flow Control Mechanism
170+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
171171
172172Each FW client and a protocol is identified by a UUID. In order to communicate
173173to a FW client, a connection must be established using connect request and
@@ -181,8 +181,8 @@ before receiving the next flow control credit.
181181Either side can send disconnect request bus message to end communication. Also
182182the link will be dropped if major FW reset occurs.
183183
184- 3.3.3 Peer to Peer data transfer
185- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
184+ Peer to Peer data transfer
185+ ^^^^^^^^^^^^^^^^^^^^^^^^^^
186186
187187Peer to Peer data transfer can happen with or without using DMA. Depending on
188188the sensor bandwidth requirement DMA can be enabled by using module parameter
@@ -217,8 +217,8 @@ In principle, multiple DMA_XFER and DMA_XFER_ACK messages may be sent at once
217217Currently, ISH FW decides to send over DMA if ISHTP message is more than 3 IPC
218218fragments and via IPC otherwise.
219219
220- 3.3.4 Ring Buffers
221- ^^^^^^^^^^^^^^^^^^
220+ Ring Buffers
221+ ^^^^^^^^^^^^
222222
223223When a client initiates a connection, a ring of RX and TX buffers is allocated.
224224The size of ring can be specified by the client. HID client sets 16 and 32 for
@@ -228,8 +228,8 @@ bus message protocol. These buffers are required because the FW may have not
228228have processed the last message and may not have enough flow control credits
229229to send. Same thing holds true on receive side and flow control is required.
230230
231- 3.3.5 Host Enumeration
232- ^^^^^^^^^^^^^^^^^^^^^^
231+ Host Enumeration
232+ ^^^^^^^^^^^^^^^^
233233
234234The host enumeration bus command allows discovery of clients present in the FW.
235235There can be multiple sensor clients and clients for calibration function.
@@ -252,8 +252,8 @@ Enumeration sequence of messages:
252252- Once host received properties for that last discovered client, it considers
253253 ISHTP device fully functional (and allocates DMA buffers)
254254
255- 3.4 HID over ISH Client
256- -----------------------
255+ HID over ISH Client
256+ -------------------
257257
258258Location: drivers/hid/intel-ish-hid
259259
@@ -265,16 +265,16 @@ The ISHTP client driver is responsible for:
265265- Process Get/Set feature request
266266- Get input reports
267267
268- 3.5 HID Sensor Hub MFD and IIO sensor drivers
269- ---------------------------------------------
268+ HID Sensor Hub MFD and IIO sensor drivers
269+ -----------------------------------------
270270
271271The functionality in these drivers is the same as an external sensor hub.
272272Refer to
273273Documentation/hid/hid-sensor.rst for HID sensor
274274Documentation/ABI/testing/sysfs-bus-iio for IIO ABIs to user space.
275275
276- 3.6 End to End HID transport Sequence Diagram
277- ---------------------------------------------
276+ End to End HID transport Sequence Diagram
277+ -----------------------------------------
278278
279279::
280280
@@ -339,16 +339,16 @@ Documentation/ABI/testing/sysfs-bus-iio for IIO ABIs to user space.
339339 | | | |
340340
341341
342- 3.7 ISH Debugging
343- -----------------
342+ ISH Debugging
343+ -------------
344344
345345To debug ISH, event tracing mechanism is used. To enable debug logs::
346346
347347 echo 1 > /sys/kernel/tracing/events/intel_ish/enable
348348 cat /sys/kernel/tracing/trace
349349
350- 3.8 ISH IIO sysfs Example on Lenovo thinkpad Yoga 260
351- -----------------------------------------------------
350+ ISH IIO sysfs Example on Lenovo thinkpad Yoga 260
351+ -------------------------------------------------
352352
353353::
354354
0 commit comments