mbox series

[v6,0/4] SFH: Add Support for AMD Sensor Fusion Hub

Message ID 20200809102511.2657644-1-Sandeep.Singh@amd.com
Headers show
Series SFH: Add Support for AMD Sensor Fusion Hub | expand

Message

Sandeep Singh Aug. 9, 2020, 10:25 a.m. UTC
From: Sandeep Singh <sandeep.singh@amd.com>

AMD SFH(Sensor Fusion Hub) is HID based driver.SFH FW is part of MP2
processor (MP2 which is an ARMĀ® Cortex-M4 core based co-processor to x86)
and it runs on MP2 where in driver resides on X86.The driver 
functionalities are divided  into three parts:-

1: amd-mp2-pcie:- This module will communicate with MP2 FW and  provide
		  that data into DRAM.
2: Client Layer:- This part for driver will use dram data and convert that
		  data into HID format based on HID reports.
3: Transport driver :- This part of driver will communicate with  HID core.
		       Communication between devices and HID core is mostly
			done via HID reports

In terms of architecture, it resembles like ISH(Intel Integrated Sensor
Hub).However the major difference is all the hid reports are generated
as part of kernel driver.

AMD SFH is integrated as a part of SoC, starting from 17h family of processors.
The solution is working well on several OEM products.
AMD SFH uses HID over PCIe bus.

Changes since v1:
        -> Fix auto build test warnings
        -> Fix smatch warnings "possible memory leak" -Reported by Dan Carpenter

Links of the review comments for v1:
        [1] https://patchwork.kernel.org/patch/11325163/
        [2] https://patchwork.kernel.org/patch/11325167/
        [3] https://patchwork.kernel.org/patch/11325171/
        [4] https://patchwork.kernel.org/patch/11325187/

Changes since v2:
        -> Debugfs divided into another patch
        -> Fix some cosmetic changes
        -> Fix for review comments
           Reported and Suggested by:-  Srinivas Pandruvada

Links of the review comments for v2:
        [1] https://patchwork.kernel.org/patch/11355491/
        [2] https://patchwork.kernel.org/patch/11355495/
        [3] https://patchwork.kernel.org/patch/11355499/
        [4] https://patchwork.kernel.org/patch/11355503/


Changes since v3:
        -> Removed debugfs suggested by - Benjamin Tissoires

Links of the review comments for v3:
        [1] https://lkml.org/lkml/2020/2/11/1256
        [2] https://lkml.org/lkml/2020/2/11/1257
        [3] https://lkml.org/lkml/2020/2/11/1258
        [4] https://lkml.org/lkml/2020/2/11/1259
        [5] https://lkml.org/lkml/2020/2/11/1260


Changes since v4:
        -> use PCI managed calls.
	-> use kernel APIs 

Links of the review comments for v4:
        [1] https://lkml.org/lkml/2020/2/26/1360
        [2] https://lkml.org/lkml/2020/2/26/1361
        [3] https://lkml.org/lkml/2020/2/26/1362
        [4] https://lkml.org/lkml/2020/2/26/1363
        [5] https://lkml.org/lkml/2020/2/27/1


Changes since v5
        - Fix for review comments by: Andy Shevchenko
        - Fix for indentations erros, NULL pointer,Redundant assignment
	- Drop LOCs in many location 
	- Create as a single driver module instead of two modules.

Links of the review comments for v5:
        [1] https://lkml.org/lkml/2020/5/29/589
        [2] https://lkml.org/lkml/2020/5/29/590
        [3] https://lkml.org/lkml/2020/5/29/606
        [4] https://lkml.org/lkml/2020/5/29/632
        [5] https://lkml.org/lkml/2020/5/29/633


Sandeep Singh (4):
  SFH: Add maintainers and documentation for AMD SFH based on HID
    framework
  SFH: PCIe driver to add support of AMD sensor fusion
  SFH: Transport Driver to add support of AMD Sensor Fusion Hub (SFH)
  SFH: Create HID report to Enable support of AMD sensor fusion Hub
    (SFH)


 Documentation/hid/amd-sfh-hid.rst             | 153 +++++
 MAINTAINERS                                   |   8 +
 drivers/hid/Kconfig                           |   2 +
 drivers/hid/Makefile                          |   2 +
 drivers/hid/amd-sfh-hid/Kconfig               |  21 +
 drivers/hid/amd-sfh-hid/Makefile              |  15 +
 drivers/hid/amd-sfh-hid/amd_mp2_pcie.c        | 162 +++++
 drivers/hid/amd-sfh-hid/amd_mp2_pcie.h        |  83 +++
 drivers/hid/amd-sfh-hid/amdsfh_hid.c          | 175 +++++
 drivers/hid/amd-sfh-hid/amdsfh_hid.h          |  68 ++
 drivers/hid/amd-sfh-hid/amdsfh_hid_client.c   | 220 ++++++
 .../hid_descriptor/amd_sfh_hid_descriptor.c   | 226 ++++++
 .../hid_descriptor/amd_sfh_hid_descriptor.h   | 121 ++++
 .../amd_sfh_hid_report_descriptor.h           | 645 ++++++++++++++++++
 14 files changed, 1901 insertions(+)
 create mode 100644 Documentation/hid/amd-sfh-hid.rst
 create mode 100644 drivers/hid/amd-sfh-hid/Kconfig
 create mode 100644 drivers/hid/amd-sfh-hid/Makefile
 create mode 100644 drivers/hid/amd-sfh-hid/amd_mp2_pcie.c
 create mode 100644 drivers/hid/amd-sfh-hid/amd_mp2_pcie.h
 create mode 100644 drivers/hid/amd-sfh-hid/amdsfh_hid.c
 create mode 100644 drivers/hid/amd-sfh-hid/amdsfh_hid.h
 create mode 100644 drivers/hid/amd-sfh-hid/amdsfh_hid_client.c
 create mode 100644 drivers/hid/amd-sfh-hid/hid_descriptor/amd_sfh_hid_descriptor.c
 create mode 100644 drivers/hid/amd-sfh-hid/hid_descriptor/amd_sfh_hid_descriptor.h
 create mode 100644 drivers/hid/amd-sfh-hid/hid_descriptor/amd_sfh_hid_report_descriptor.h