Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Documentation: HID: amd-sfh-hid editing & corrections

Do basic editing & correction to amd-sfh-hid.rst:
- fix punctuation
- use HID instead of hid consistently
- fix grammar, verb tense
- fix Block Diagram heading

Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
Cc: Jiri Kosina <jikos@kernel.org>
Cc: Jonathan Cameron <jic23@kernel.org>
Cc: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Cc: linux-input@vger.kernel.org
Cc: linux-iio@vger.kernel.org
Cc: Jonathan Corbet <corbet@lwn.net>
Cc: linux-doc@vger.kernel.org
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>

authored by

Randy Dunlap and committed by
Jiri Kosina
4acdc5e5 e90d5df7

+11 -11
+11 -11
Documentation/hid/amd-sfh-hid.rst
··· 3 3 4 4 AMD Sensor Fusion Hub 5 5 ===================== 6 - AMD Sensor Fusion Hub (SFH) is part of an SOC starting from Ryzen based platforms. 6 + AMD Sensor Fusion Hub (SFH) is part of an SOC starting from Ryzen-based platforms. 7 7 The solution is working well on several OEM products. AMD SFH uses HID over PCIe bus. 8 8 In terms of architecture it resembles ISH, however the major difference is all 9 9 the HID reports are generated as part of the kernel driver. 10 10 11 - 1. Block Diagram 12 - ================ 11 + Block Diagram 12 + ------------- 13 13 14 14 :: 15 15 ··· 45 45 AMD HID Transport Layer 46 46 ----------------------- 47 47 AMD SFH transport is also implemented as a bus. Each client application executing in the AMD MP2 is 48 - registered as a device on this bus. Here: MP2 which is an ARM core connected to x86 for processing 48 + registered as a device on this bus. Here, MP2 is an ARM core connected to x86 for processing 49 49 sensor data. The layer, which binds each device (AMD SFH HID driver) identifies the device type and 50 - registers with the hid core. Transport layer attach a constant "struct hid_ll_driver" object with 50 + registers with the HID core. Transport layer attaches a constant "struct hid_ll_driver" object with 51 51 each device. Once a device is registered with HID core, the callbacks provided via this struct are 52 52 used by HID core to communicate with the device. AMD HID Transport layer implements the synchronous calls. 53 53 54 54 AMD HID Client Layer 55 55 -------------------- 56 - This layer is responsible to implement HID request and descriptors. As firmware is OS agnostic, HID 56 + This layer is responsible to implement HID requests and descriptors. As firmware is OS agnostic, HID 57 57 client layer fills the HID request structure and descriptors. HID client layer is complex as it is 58 - interface between MP2 PCIe layer and HID. HID client layer initialized the MP2 PCIe layer and holds 59 - the instance of MP2 layer. It identifies the number of sensors connected using MP2-PCIe layer. Base 60 - on that allocates the DRAM address for each and every sensor and pass it to MP2-PCIe driver.On 61 - enumeration of each the sensor, client layer fills the HID Descriptor structure and HID input repor 58 + interface between MP2 PCIe layer and HID. HID client layer initializes the MP2 PCIe layer and holds 59 + the instance of MP2 layer. It identifies the number of sensors connected using MP2-PCIe layer. Based 60 + on that allocates the DRAM address for each and every sensor and passes it to MP2-PCIe driver. On 61 + enumeration of each sensor, client layer fills the HID Descriptor structure and HID input report 62 62 structure. HID Feature report structure is optional. The report descriptor structure varies from 63 63 sensor to sensor. 64 64 ··· 72 72 2. Data transfer via DRAM. 73 73 3. Supported sensor info via P2C registers. 74 74 75 - Commands are sent to MP2 using C2P Mailbox registers. Writing into C2P Message registers generate 75 + Commands are sent to MP2 using C2P Mailbox registers. Writing into C2P Message registers generates 76 76 interrupt to MP2. The client layer allocates the physical memory and the same is sent to MP2 via 77 77 the PCI layer. MP2 firmware writes the command output to the access DRAM memory which the client 78 78 layer has allocated. Firmware always writes minimum of 32 bytes into DRAM. So as a protocol driver