lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Fri, 29 Jan 2021 18:20:50 -0800
From:   mgross@...ux.intel.com
To:     markgross@...nel.org, mgross@...ux.intel.com, arnd@...db.de,
        bp@...e.de, damien.lemoal@....com, dragan.cvetic@...inx.com,
        gregkh@...uxfoundation.org, corbet@....net,
        palmerdabbelt@...gle.com, paul.walmsley@...ive.com,
        peng.fan@....com, robh+dt@...nel.org, shawnguo@...nel.org,
        jassisinghbrar@...il.com
Cc:     linux-kernel@...r.kernel.org
Subject: [PATCH v4 00/34] Intel Vision Processing base enabling

From: Mark Gross <mgross@...ux.intel.com>

The Intel Vision Processing Unit (VPU) is an IP block that is showing up for
the first time as part of the Keem Bay SOC.  Keem Bay is a quad core A53 Arm
SOC.  It is designed to be used as a stand alone SOC as well as in an PCIe
Vision Processing accelerator add in card.

This forth version of this patch set includes updates to the dt yaml files and
some missed updates from feedback given on the V2 patch set for keembay-vpu-ipc
and the Kconfig for intel_tsens 

At the bottom of this coverletter is the delta between v2 and V3 for easy
review of the modifications.  Feels like things are converging. :)

Thanks for looking at these and providing feedback.

--mark


C, Udhayakumar (8):
  dt-bindings: misc: intel_tsens: Add tsens thermal bindings
    documentation
  misc: Tsens ARM host thermal driver.
  misc: Intel tsens IA host driver.
  Intel tsens i2c slave driver.
  misc:intel_tsens: Intel Keem Bay tsens driver.
  dt-bindings: misc: hddl_dev: Add hddl device management documentation
  misc: Hddl device management for local host
  misc: HDDL device management for IA host

Daniele Alessandrelli (4):
  dt-bindings: mailbox: Add Intel VPU IPC mailbox bindings
  mailbox: vpu-ipc-mailbox: Add support for Intel VPU IPC mailbox
  dt-bindings: Add bindings for Keem Bay IPC driver
  keembay-ipc: Add Keem Bay IPC module

Li, Tingqian (2):
  dt-bindings: misc: Add Keem Bay vpumgr
  misc: Add Keem Bay VPU manager

Paul Murphy (2):
  dt-bindings: Add bindings for Keem Bay VPU IPC driver
  keembay-vpu-ipc: Add Keem Bay VPU IPC module

Ramya P Karanth (1):
  Intel Keem Bay XLink SMBus driver

Seamus Kelly (7):
  xlink-ipc: Add xlink ipc device tree bindings
  xlink-ipc: Add xlink ipc driver
  xlink-core: Add xlink core device tree bindings
  xlink-core: Add xlink core driver xLink
  xlink-core: Enable xlink protocol over pcie
  xlink-core: Enable VPU IP management and runtime control
  xlink-core: add async channel and events

Srikanth Thokala (9):
  misc: xlink-pcie: Add documentation for XLink PCIe driver
  misc: xlink-pcie: lh: Add PCIe EPF driver for Local Host
  misc: xlink-pcie: lh: Add PCIe EP DMA functionality
  misc: xlink-pcie: lh: Add core communication logic
  misc: xlink-pcie: lh: Prepare changes for adding remote host driver
  misc: xlink-pcie: rh: Add PCIe EP driver for Remote Host
  misc: xlink-pcie: rh: Add core communication logic
  misc: xlink-pcie: Add XLink API interface
  misc: xlink-pcie: Add asynchronous event notification support for
    XLink

mark gross (1):
  Add Vision Processing Unit (VPU) documentation.

 .../mailbox/intel,vpu-ipc-mailbox.yaml        |   69 +
 .../bindings/misc/intel,hddl-client.yaml      |  114 +
 .../bindings/misc/intel,intel-tsens.yaml      |  118 +
 .../bindings/misc/intel,keembay-vpu-mgr.yaml  |   48 +
 .../misc/intel,keembay-xlink-ipc.yaml         |   51 +
 .../bindings/misc/intel,keembay-xlink.yaml    |   29 +
 .../bindings/soc/intel/intel,keembay-ipc.yaml |   45 +
 .../soc/intel/intel,keembay-vpu-ipc.yaml      |  143 ++
 Documentation/hwmon/index.rst                 |    2 +
 Documentation/hwmon/intel_tsens_host.rst      |   71 +
 Documentation/hwmon/intel_tsens_sensor.rst    |   67 +
 Documentation/i2c/busses/index.rst            |    1 +
 .../i2c/busses/intel-xlink-smbus.rst          |   71 +
 Documentation/index.rst                       |    1 +
 .../misc-devices/hddl_device_client.rst       |  212 ++
 .../misc-devices/hddl_device_server.rst       |  205 ++
 Documentation/misc-devices/index.rst          |    2 +
 Documentation/vpu/index.rst                   |   20 +
 Documentation/vpu/vpu-stack-overview.rst      |  270 +++
 Documentation/vpu/xlink-core.rst              |   81 +
 Documentation/vpu/xlink-ipc.rst               |   51 +
 Documentation/vpu/xlink-pcie.rst              |   90 +
 MAINTAINERS                                   |   54 +
 drivers/mailbox/Kconfig                       |   11 +
 drivers/mailbox/Makefile                      |    2 +
 drivers/mailbox/vpu-ipc-mailbox.c             |  297 +++
 drivers/misc/Kconfig                          |    7 +
 drivers/misc/Makefile                         |    7 +
 drivers/misc/hddl_device/Kconfig              |   26 +
 drivers/misc/hddl_device/Makefile             |    7 +
 drivers/misc/hddl_device/hddl_device.c        |  565 +++++
 drivers/misc/hddl_device/hddl_device_lh.c     |  764 +++++++
 drivers/misc/hddl_device/hddl_device_rh.c     |  837 +++++++
 drivers/misc/hddl_device/hddl_device_util.h   |   52 +
 drivers/misc/intel_tsens/Kconfig              |   54 +
 drivers/misc/intel_tsens/Makefile             |   10 +
 drivers/misc/intel_tsens/intel_tsens_host.c   |  351 +++
 drivers/misc/intel_tsens/intel_tsens_i2c.c    |  119 +
 .../misc/intel_tsens/intel_tsens_thermal.c    |  651 ++++++
 .../misc/intel_tsens/intel_tsens_thermal.h    |   38 +
 drivers/misc/intel_tsens/keembay_thermal.c    |  169 ++
 drivers/misc/intel_tsens/keembay_tsens.h      |  366 +++
 drivers/misc/vpumgr/Kconfig                   |    9 +
 drivers/misc/vpumgr/Makefile                  |    3 +
 drivers/misc/vpumgr/vpu_common.h              |   31 +
 drivers/misc/vpumgr/vpu_mgr.c                 |  370 +++
 drivers/misc/vpumgr/vpu_smm.c                 |  554 +++++
 drivers/misc/vpumgr/vpu_smm.h                 |   30 +
 drivers/misc/vpumgr/vpu_vcm.c                 |  584 +++++
 drivers/misc/vpumgr/vpu_vcm.h                 |   84 +
 drivers/misc/xlink-core/Kconfig               |   33 +
 drivers/misc/xlink-core/Makefile              |    5 +
 drivers/misc/xlink-core/xlink-core.c          | 1331 +++++++++++
 drivers/misc/xlink-core/xlink-core.h          |   25 +
 drivers/misc/xlink-core/xlink-defs.h          |  181 ++
 drivers/misc/xlink-core/xlink-dispatcher.c    |  436 ++++
 drivers/misc/xlink-core/xlink-dispatcher.h    |   26 +
 drivers/misc/xlink-core/xlink-ioctl.c         |  554 +++++
 drivers/misc/xlink-core/xlink-ioctl.h         |   36 +
 drivers/misc/xlink-core/xlink-multiplexer.c   | 1164 ++++++++++
 drivers/misc/xlink-core/xlink-multiplexer.h   |   35 +
 drivers/misc/xlink-core/xlink-platform.c      |  273 +++
 drivers/misc/xlink-core/xlink-platform.h      |   65 +
 drivers/misc/xlink-ipc/Kconfig                |    7 +
 drivers/misc/xlink-ipc/Makefile               |    4 +
 drivers/misc/xlink-ipc/xlink-ipc.c            |  878 +++++++
 drivers/misc/xlink-pcie/Kconfig               |   20 +
 drivers/misc/xlink-pcie/Makefile              |    2 +
 drivers/misc/xlink-pcie/common/core.h         |  245 ++
 drivers/misc/xlink-pcie/common/interface.c    |  124 +
 drivers/misc/xlink-pcie/common/util.c         |  373 +++
 drivers/misc/xlink-pcie/common/util.h         |   68 +
 drivers/misc/xlink-pcie/common/xpcie.h        |  100 +
 drivers/misc/xlink-pcie/local_host/Makefile   |    6 +
 drivers/misc/xlink-pcie/local_host/core.c     |  817 +++++++
 drivers/misc/xlink-pcie/local_host/dma.c      |  575 +++++
 drivers/misc/xlink-pcie/local_host/epf.c      |  482 ++++
 drivers/misc/xlink-pcie/local_host/epf.h      |  101 +
 drivers/misc/xlink-pcie/remote_host/Makefile  |    6 +
 drivers/misc/xlink-pcie/remote_host/core.c    |  621 +++++
 drivers/misc/xlink-pcie/remote_host/main.c    |   93 +
 drivers/misc/xlink-pcie/remote_host/pci.c     |  523 +++++
 drivers/misc/xlink-pcie/remote_host/pci.h     |   65 +
 drivers/misc/xlink-smbus/Kconfig              |   26 +
 drivers/misc/xlink-smbus/Makefile             |    5 +
 drivers/misc/xlink-smbus/xlink-smbus.c        |  467 ++++
 drivers/soc/Kconfig                           |    1 +
 drivers/soc/Makefile                          |    1 +
 drivers/soc/intel/Kconfig                     |   33 +
 drivers/soc/intel/Makefile                    |    5 +
 drivers/soc/intel/keembay-ipc.c               | 1364 +++++++++++
 drivers/soc/intel/keembay-vpu-ipc.c           | 2026 +++++++++++++++++
 include/linux/hddl_device.h                   |  153 ++
 include/linux/intel_tsens_host.h              |   34 +
 include/linux/soc/intel/keembay-ipc.h         |   30 +
 include/linux/soc/intel/keembay-vpu-ipc.h     |   62 +
 include/linux/xlink-ipc.h                     |   48 +
 include/linux/xlink.h                         |  146 ++
 include/linux/xlink_drv_inf.h                 |   70 +
 include/uapi/misc/vpumgr.h                    |   64 +
 include/uapi/misc/xlink_uapi.h                |  145 ++
 101 files changed, 21767 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/mailbox/intel,vpu-ipc-mailbox.yaml
 create mode 100644 Documentation/devicetree/bindings/misc/intel,hddl-client.yaml
 create mode 100644 Documentation/devicetree/bindings/misc/intel,intel-tsens.yaml
 create mode 100644 Documentation/devicetree/bindings/misc/intel,keembay-vpu-mgr.yaml
 create mode 100644 Documentation/devicetree/bindings/misc/intel,keembay-xlink-ipc.yaml
 create mode 100644 Documentation/devicetree/bindings/misc/intel,keembay-xlink.yaml
 create mode 100644 Documentation/devicetree/bindings/soc/intel/intel,keembay-ipc.yaml
 create mode 100644 Documentation/devicetree/bindings/soc/intel/intel,keembay-vpu-ipc.yaml
 create mode 100644 Documentation/hwmon/intel_tsens_host.rst
 create mode 100644 Documentation/hwmon/intel_tsens_sensor.rst
 create mode 100644 Documentation/i2c/busses/intel-xlink-smbus.rst
 create mode 100644 Documentation/misc-devices/hddl_device_client.rst
 create mode 100644 Documentation/misc-devices/hddl_device_server.rst
 create mode 100644 Documentation/vpu/index.rst
 create mode 100644 Documentation/vpu/vpu-stack-overview.rst
 create mode 100644 Documentation/vpu/xlink-core.rst
 create mode 100644 Documentation/vpu/xlink-ipc.rst
 create mode 100644 Documentation/vpu/xlink-pcie.rst
 create mode 100644 drivers/mailbox/vpu-ipc-mailbox.c
 create mode 100644 drivers/misc/hddl_device/Kconfig
 create mode 100644 drivers/misc/hddl_device/Makefile
 create mode 100644 drivers/misc/hddl_device/hddl_device.c
 create mode 100644 drivers/misc/hddl_device/hddl_device_lh.c
 create mode 100644 drivers/misc/hddl_device/hddl_device_rh.c
 create mode 100644 drivers/misc/hddl_device/hddl_device_util.h
 create mode 100644 drivers/misc/intel_tsens/Kconfig
 create mode 100644 drivers/misc/intel_tsens/Makefile
 create mode 100644 drivers/misc/intel_tsens/intel_tsens_host.c
 create mode 100644 drivers/misc/intel_tsens/intel_tsens_i2c.c
 create mode 100644 drivers/misc/intel_tsens/intel_tsens_thermal.c
 create mode 100644 drivers/misc/intel_tsens/intel_tsens_thermal.h
 create mode 100644 drivers/misc/intel_tsens/keembay_thermal.c
 create mode 100644 drivers/misc/intel_tsens/keembay_tsens.h
 create mode 100644 drivers/misc/vpumgr/Kconfig
 create mode 100644 drivers/misc/vpumgr/Makefile
 create mode 100644 drivers/misc/vpumgr/vpu_common.h
 create mode 100644 drivers/misc/vpumgr/vpu_mgr.c
 create mode 100644 drivers/misc/vpumgr/vpu_smm.c
 create mode 100644 drivers/misc/vpumgr/vpu_smm.h
 create mode 100644 drivers/misc/vpumgr/vpu_vcm.c
 create mode 100644 drivers/misc/vpumgr/vpu_vcm.h
 create mode 100644 drivers/misc/xlink-core/Kconfig
 create mode 100644 drivers/misc/xlink-core/Makefile
 create mode 100644 drivers/misc/xlink-core/xlink-core.c
 create mode 100644 drivers/misc/xlink-core/xlink-core.h
 create mode 100644 drivers/misc/xlink-core/xlink-defs.h
 create mode 100644 drivers/misc/xlink-core/xlink-dispatcher.c
 create mode 100644 drivers/misc/xlink-core/xlink-dispatcher.h
 create mode 100644 drivers/misc/xlink-core/xlink-ioctl.c
 create mode 100644 drivers/misc/xlink-core/xlink-ioctl.h
 create mode 100644 drivers/misc/xlink-core/xlink-multiplexer.c
 create mode 100644 drivers/misc/xlink-core/xlink-multiplexer.h
 create mode 100644 drivers/misc/xlink-core/xlink-platform.c
 create mode 100644 drivers/misc/xlink-core/xlink-platform.h
 create mode 100644 drivers/misc/xlink-ipc/Kconfig
 create mode 100644 drivers/misc/xlink-ipc/Makefile
 create mode 100644 drivers/misc/xlink-ipc/xlink-ipc.c
 create mode 100644 drivers/misc/xlink-pcie/Kconfig
 create mode 100644 drivers/misc/xlink-pcie/Makefile
 create mode 100644 drivers/misc/xlink-pcie/common/core.h
 create mode 100644 drivers/misc/xlink-pcie/common/interface.c
 create mode 100644 drivers/misc/xlink-pcie/common/util.c
 create mode 100644 drivers/misc/xlink-pcie/common/util.h
 create mode 100644 drivers/misc/xlink-pcie/common/xpcie.h
 create mode 100644 drivers/misc/xlink-pcie/local_host/Makefile
 create mode 100644 drivers/misc/xlink-pcie/local_host/core.c
 create mode 100644 drivers/misc/xlink-pcie/local_host/dma.c
 create mode 100644 drivers/misc/xlink-pcie/local_host/epf.c
 create mode 100644 drivers/misc/xlink-pcie/local_host/epf.h
 create mode 100644 drivers/misc/xlink-pcie/remote_host/Makefile
 create mode 100644 drivers/misc/xlink-pcie/remote_host/core.c
 create mode 100644 drivers/misc/xlink-pcie/remote_host/main.c
 create mode 100644 drivers/misc/xlink-pcie/remote_host/pci.c
 create mode 100644 drivers/misc/xlink-pcie/remote_host/pci.h
 create mode 100644 drivers/misc/xlink-smbus/Kconfig
 create mode 100644 drivers/misc/xlink-smbus/Makefile
 create mode 100644 drivers/misc/xlink-smbus/xlink-smbus.c
 create mode 100644 drivers/soc/intel/Kconfig
 create mode 100644 drivers/soc/intel/Makefile
 create mode 100644 drivers/soc/intel/keembay-ipc.c
 create mode 100644 drivers/soc/intel/keembay-vpu-ipc.c
 create mode 100644 include/linux/hddl_device.h
 create mode 100644 include/linux/intel_tsens_host.h
 create mode 100644 include/linux/soc/intel/keembay-ipc.h
 create mode 100644 include/linux/soc/intel/keembay-vpu-ipc.h
 create mode 100644 include/linux/xlink-ipc.h
 create mode 100644 include/linux/xlink.h
 create mode 100644 include/linux/xlink_drv_inf.h
 create mode 100644 include/uapi/misc/vpumgr.h
 create mode 100644 include/uapi/misc/xlink_uapi.h

-- 
2.17.1

diff --git a/Documentation/devicetree/bindings/misc/intel,intel-tsens.yaml b/Documentation/devicetree/bindings/misc/intel,intel-tsens.yaml
index abac41995643..2418355d9c47 100644
--- a/Documentation/devicetree/bindings/misc/intel,intel-tsens.yaml
+++ b/Documentation/devicetree/bindings/misc/intel,intel-tsens.yaml
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
 %YAML 1.2
 ---
-$id: "http://devicetree.org/schemas/misc/intel,intel_tsens.yaml#"
+$id: "http://devicetree.org/schemas/misc/intel,intel-tsens.yaml#"
 $schema: "http://devicetree.org/meta-schemas/core.yaml#"
 
 title: Intel Temperature sensors in Bay series
@@ -36,8 +36,6 @@ properties:
       - description: thermal sensor clock
 
   clk-rate:
-    minItems: 1
-    maxItems: 1
     additionalItems: false
     items:
       - description: thermal sensor clock freq
@@ -85,8 +83,6 @@ examples:
     tsens: tsens@...60000 {
         compatible = "intel,intel-tsens";
         status = "disabled";
-        #address-cells = <2>;
-        #size-cells = <2>;
         plat_name = "intel,keembay_thermal";
         reg = <0x0 0x20260000 0x0 0x100>;
         clocks = <&scmi_clk>;
diff --git a/Documentation/devicetree/bindings/misc/intel,keembay-vpu-mgr.yaml b/Documentation/devicetree/bindings/misc/intel,keembay-vpu-mgr.yaml
index 7fad14274ee2..a44f492277ab 100644
--- a/Documentation/devicetree/bindings/misc/intel,keembay-vpu-mgr.yaml
+++ b/Documentation/devicetree/bindings/misc/intel,keembay-vpu-mgr.yaml
@@ -19,8 +19,8 @@ properties:
   compatible:
     items:
       - enum:
-        - intel,keembay-vpu-mgr
-        - intel,keembay-vpusmm
+          - intel,keembay-vpu-mgr
+          - intel,keembay-vpusmm
 
   memory-region:
     description:
diff --git a/Documentation/devicetree/bindings/misc/intel,keembay-xlink-ipc.yaml b/Documentation/devicetree/bindings/misc/intel,keembay-xlink-ipc.yaml
index 699e43c4cd40..70a3061d024d 100644
--- a/Documentation/devicetree/bindings/misc/intel,keembay-xlink-ipc.yaml
+++ b/Documentation/devicetree/bindings/misc/intel,keembay-xlink-ipc.yaml
@@ -18,7 +18,7 @@ properties:
   compatible:
     oneOf:
       - items:
-        - const: intel,keembay-xlink-ipc
+          - const: intel,keembay-xlink-ipc
 
   memory-region:
     items:
@@ -37,6 +37,8 @@ properties:
     $ref: "/schemas/types.yaml#/definitions/phandle"
     description: reference to the corresponding intel,keembay-vpu-ipc node.
 
+additionalProperties: False
+
 examples:
   - |
     xlink-ipc {
diff --git a/Documentation/devicetree/bindings/misc/intel,keembay-xlink.yaml b/Documentation/devicetree/bindings/misc/intel,keembay-xlink.yaml
index 89c34018fa04..5ac2e7fa5b5e 100644
--- a/Documentation/devicetree/bindings/misc/intel,keembay-xlink.yaml
+++ b/Documentation/devicetree/bindings/misc/intel,keembay-xlink.yaml
@@ -18,7 +18,9 @@ properties:
   compatible:
     oneOf:
       - items:
-        - const: intel,keembay-xlink
+          - const: intel,keembay-xlink
+
+additionalProperties: False
 
 examples:
   - |
diff --git a/Documentation/devicetree/bindings/soc/intel/intel,keembay-vpu-ipc.yaml b/Documentation/devicetree/bindings/soc/intel/intel,keembay-vpu-ipc.yaml
index cd1c4abe8bc9..9dae8ab4c723 100644
--- a/Documentation/devicetree/bindings/soc/intel/intel,keembay-vpu-ipc.yaml
+++ b/Documentation/devicetree/bindings/soc/intel/intel,keembay-vpu-ipc.yaml
@@ -9,16 +9,21 @@ title: Intel Keem Bay VPU IPC
 
 maintainers:
   - Paul Murphy <paul.j.murphy@...el.com>
+  - Daniele Alessandrelli <daniele.alessandrelli@...el.com>
 
 description:
-  The VPU IPC driver facilitates loading of firmware, control, and communication
-  with the VPU over the IPC FIFO in the Intel Keem Bay SoC.
+  This binding provides support for the Vision Processing Unit (VPU) found on
+  the Intel Keem Bay SoC.
+
+  The VPU is started and controlled by SoC CPU, which is in charge of loading
+  the VPU firmware. The SoC CPU can communicate with the VPU firmware using an
+  Inter-Processor Communication (IPC) mechanism.
 
 properties:
   compatible:
     oneOf:
       - items:
-        - const: intel,keembay-vpu-ipc
+          - const: intel,keembay-vpu-ipc
 
   reg:
     items:
@@ -82,24 +87,11 @@ properties:
       - const: nce_wdt
       - const: mss_wdt
 
-  intel,keembay-vpu-ipc-nce-wdt-redirect:
-    $ref: "/schemas/types.yaml#/definitions/uint32"
-    description:
-      Number to which we will request that the NCE sub-system
-      re-directs it's WDT timeout IRQ
-
-  intel,keembay-vpu-ipc-mss-wdt-redirect:
-    $ref: "/schemas/types.yaml#/definitions/uint32"
-    description:
-      Number to which we will request that the MSS sub-system
-      re-directs it's WDT timeout IRQ
-
   intel,keembay-vpu-ipc-imr:
     $ref: "/schemas/types.yaml#/definitions/uint32"
     description:
-      IMR (isolated memory region) number which we will request
-      the runtime service uses to protect the VPU memory region
-      before authentication
+      Isolated Memory Region (IMR) number that the runtime service must use to
+      protect the VPU memory region before authentication.
 
   intel,keembay-vpu-ipc-id:
     $ref: "/schemas/types.yaml#/definitions/uint32"
@@ -146,8 +138,6 @@ examples:
         interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>,
                      <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
         interrupt-names = "nce_wdt", "mss_wdt";
-        intel,keembay-vpu-ipc-nce-wdt-redirect = <63>;
-        intel,keembay-vpu-ipc-mss-wdt-redirect = <47>;
         intel,keembay-vpu-ipc-imr = <9>;
         intel,keembay-vpu-ipc-id = <0>;
     };
diff --git a/drivers/misc/intel_tsens/Kconfig b/drivers/misc/intel_tsens/Kconfig
index bd575d99281d..5cfe6b4004e5 100644
--- a/drivers/misc/intel_tsens/Kconfig
+++ b/drivers/misc/intel_tsens/Kconfig
@@ -17,8 +17,7 @@ config INTEL_TSENS_LOCAL_HOST
 config INTEL_TSENS_I2C_SLAVE
 	bool "I2C slave driver for intel tsens"
 	depends on INTEL_TSENS_LOCAL_HOST
-	select I2C
-	select I2C_SLAVE
+	depends on I2C=y && I2C_SLAVE
 	help
 	  This option enables tsens I2C slave driver.
 
diff --git a/drivers/soc/intel/keembay-vpu-ipc.c b/drivers/soc/intel/keembay-vpu-ipc.c
index 31b880195cac..8f3d6a466629 100644
--- a/drivers/soc/intel/keembay-vpu-ipc.c
+++ b/drivers/soc/intel/keembay-vpu-ipc.c
@@ -81,6 +81,7 @@
 #include <linux/firmware.h>
 #include <linux/interrupt.h>
 #include <linux/io.h>
+#include <linux/irq.h>
 #include <linux/kernel.h>
 #include <linux/kthread.h>
 #include <linux/module.h>
@@ -175,6 +176,13 @@
 /* SoC stepping length, in bytes. */
 #define SOC_INFO_STEPPING_BYTES		2
 
+/*
+ * The offset to convert the HW IRQ reported by irqd_to_hwirq() to the GIC_SPI
+ * IRQ number specified in the device tree:
+ * GIC_SPI x = irqd_to_hwirq() - 32
+ */
+#define GIC_SPI_HWIRQ_OFFSET		32
+
 /**
  * struct boot_parameters - Boot parameters passed to the VPU.
  * @magic_number:		Magic number to indicate structure populated
@@ -315,8 +323,6 @@ struct atf_mem {
  *			the NCE WDT timeout interrupt.
  * @mss_irq:		IRQ number of the A53 re-direct IRQ which will be used
  *			for receiving the MSS WDT timeout interrupt.
- * @nce_wdt_redirect:   Re-direct IRQ for NCE ICB.
- * @mss_wdt_redirect:	Re-direct IRQ for MSS ICB.
  * @imr:		Isolated Memory Region (IMR) to be used to protect the
  *			loaded VPU firmware.
  * @vpu_id:		The ID of the VPU associated with this device.
@@ -349,8 +355,6 @@ struct vpu_ipc_dev {
 	struct clk *pll[NUM_PLLS][NUM_PLL_OUTPUTS];
 	int nce_irq;
 	int mss_irq;
-	u32 nce_wdt_redirect;
-	u32 mss_wdt_redirect;
 	u32 imr;
 	u32 vpu_id;
 	void __iomem *nce_wdt_reg;
@@ -897,22 +901,6 @@ static int setup_watchdog_resources(struct vpu_ipc_dev *vpu_dev)
 		return rc;
 	}
 
-	/* Request interrupt re-direct numbers */
-	rc = of_property_read_u32(dev->of_node,
-				  "intel,keembay-vpu-ipc-nce-wdt-redirect",
-				  &vpu_dev->nce_wdt_redirect);
-	if (rc) {
-		dev_err(dev, "failed to get NCE WDT redirect number.\n");
-		return rc;
-	}
-	rc = of_property_read_u32(dev->of_node,
-				  "intel,keembay-vpu-ipc-mss-wdt-redirect",
-				  &vpu_dev->mss_wdt_redirect);
-	if (rc) {
-		dev_err(dev, "failed to get MSS WDT redirect number.\n");
-		return rc;
-	}
-
 	return 0;
 }
 
@@ -956,9 +944,11 @@ static int setup_boot_parameters(struct vpu_ipc_dev *vpu_dev)
 
 	/* Fill in IRQ re-direct request information */
 	vpu_dev->boot_params->mss_wdt_to_irq_a53_redir =
-		vpu_dev->mss_wdt_redirect;
+			irqd_to_hwirq(irq_get_irq_data(vpu_dev->mss_irq)) -
+			GIC_SPI_HWIRQ_OFFSET;
 	vpu_dev->boot_params->nce_wdt_to_irq_a53_redir =
-		vpu_dev->nce_wdt_redirect;
+			irqd_to_hwirq(irq_get_irq_data(vpu_dev->nce_irq)) -
+			GIC_SPI_HWIRQ_OFFSET;
 
 	/* Setup A53SS_VERSION_ID */
 	vpu_dev->boot_params->a53ss_version_id = vpu_ipc_soc_info->hardware_id;

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ