Unverified Commit 3c37074f authored by Arnd Bergmann's avatar Arnd Bergmann
Browse files

Merge tag 'qcom-drivers-for-5.20' of...

Merge tag 'qcom-drivers-for-5.20' of git://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into arm/drivers

Qualcomm driver updates for v5.20

This introduces a new driver that requests interconnect bandwidth based
on throughput measurements of the bwmon hardware blocks found associated
with, among other things, the CPU subsystem on many Qualcomm platforms.

It introduces support for the SCM wrapper driver to vote for
interconnect bandwidth for operations that needs bandwidth to the crypto
engine. This ensures both performance and guards against issues caused
by lacking votes for this path.

The socinfo driver gains knowledge about the SC7180P SoC.

It contains a range of fixes for spelling mistakes, refcount leaks in
various drivers and removes some redundant code from the apr remove
path.

The SCM DT bindings are updated to declare support for QCS404, SM6125
and SDX65.

The command db driver has a strncpy() converted to strscpy_pad() and
then back again with proper documentation to why this was the right API.

* tag 'qcom-drivers-for-5.20' of git://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux:
  soc: qcom: icc-bwmon: Add bandwidth monitoring driver
  dt-bindings: interconnect: qcom,msm8998-cpu-bwmon: add BWMON device
  soc/qcom: Make QCOM_RPMPD select PM_GENERIC_DOMAINS/_OF
  soc: qcom: aoss: Fix refcount leak in qmp_cooling_devices_register
  soc: qcom: llcc: Fix syntax errors in comments
  soc: qcom: ocmem: Fix refcount leak in of_get_ocmem
  dt-bindings: soc: qcom,wcnss: remove unneeded ref for names
  firmware: qcom_scm: Add bw voting support to the SCM interface
  dt-bindings: firmware: qcom-scm: Add interconnects property
  soc: qcom: cmd-db: replace strscpy_pad() with strncpy()
  dt-bindings: firmware: scm: Add compatible for SDX65
  dt-bindings: arm: qcom: switch maintainer to Bjorn
  soc: qcom: rpmhpd: fix typos in comment
  soc: qcom: correct kerneldoc
  soc: qcom: cmd-db: replace strncpy() with strscpy_pad()
  firmware: qcom_scm-legacy: correct kerneldoc
  dt-bindings: firmware: document Qualcomm QCS404 and SM6125 SCM
  soc: qcom: apr: Drop redundant check in .remove()
  firmware: qcom_scm: drop unexpected word "the"
  soc: qcom: socinfo: Add an ID for sc7180P

Link: https://lore.kernel.org/r/20220712021830.1271398-1-bjorn.andersson@linaro.org


Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parents 9bc69709 b9c2ae6c
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
title: QCOM device tree bindings
title: QCOM device tree bindings


maintainers:
maintainers:
  - Stephen Boyd <sboyd@codeaurora.org>
  - Bjorn Andersson <bjorn.andersson@linaro.org>


description: |
description: |
  Some qcom based bootloaders identify the dtb blob based on a set of
  Some qcom based bootloaders identify the dtb blob based on a set of
+4 −0
Original line number Original line Diff line number Diff line
@@ -23,10 +23,13 @@ Required properties:
 * "qcom,scm-msm8994"
 * "qcom,scm-msm8994"
 * "qcom,scm-msm8996"
 * "qcom,scm-msm8996"
 * "qcom,scm-msm8998"
 * "qcom,scm-msm8998"
 * "qcom,scm-qcs404"
 * "qcom,scm-sc7180"
 * "qcom,scm-sc7180"
 * "qcom,scm-sc7280"
 * "qcom,scm-sc7280"
 * "qcom,scm-sm6125"
 * "qcom,scm-sdm845"
 * "qcom,scm-sdm845"
 * "qcom,scm-sdx55"
 * "qcom,scm-sdx55"
 * "qcom,scm-sdx65"
 * "qcom,scm-sm6350"
 * "qcom,scm-sm6350"
 * "qcom,scm-sm8150"
 * "qcom,scm-sm8150"
 * "qcom,scm-sm8250"
 * "qcom,scm-sm8250"
@@ -43,6 +46,7 @@ Required properties:
  clock and "bus" for the bus clock per the requirements of the compatible.
  clock and "bus" for the bus clock per the requirements of the compatible.
- qcom,dload-mode: phandle to the TCSR hardware block and offset of the
- qcom,dload-mode: phandle to the TCSR hardware block and offset of the
		   download mode control register (optional)
		   download mode control register (optional)
- interconnects: Specifies the bandwidth requirements of the SCM interface (optional)


Example for MSM8916:
Example for MSM8916:


+86 −0
Original line number Original line Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/interconnect/qcom,msm8998-bwmon.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Qualcomm Interconnect Bandwidth Monitor

maintainers:
  - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

description: |
  Bandwidth Monitor measures current throughput on buses between various NoC
  fabrics and provides information when it crosses configured thresholds.

  Certain SoCs might have more than one Bandwidth Monitors, for example on SDM845::
   - Measuring the bandwidth between CPUs and Last Level Cache Controller -
     called just BWMON,
   - Measuring the bandwidth between Last Level Cache Controller and memory
     (DDR) - called LLCC BWMON.

properties:
  compatible:
    oneOf:
      - items:
          - enum:
              - qcom,sdm845-bwmon
          - const: qcom,msm8998-bwmon
      - const: qcom,msm8998-bwmon       # BWMON v4

  interconnects:
    maxItems: 1

  interrupts:
    maxItems: 1

  operating-points-v2: true
  opp-table: true

  reg:
    # BWMON v4 (currently described) and BWMON v5 use one register address
    # space.  BWMON v2 uses two register spaces - not yet described.
    maxItems: 1

required:
  - compatible
  - interconnects
  - interrupts
  - operating-points-v2
  - opp-table
  - reg

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interconnect/qcom,sdm845.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>

    pmu@1436400 {
        compatible = "qcom,sdm845-bwmon", "qcom,msm8998-bwmon";
        reg = <0x01436400 0x600>;
        interrupts = <GIC_SPI 581 IRQ_TYPE_LEVEL_HIGH>;
        interconnects = <&gladiator_noc MASTER_APPSS_PROC 3 &mem_noc SLAVE_LLCC 3>;

        operating-points-v2 = <&cpu_bwmon_opp_table>;

        cpu_bwmon_opp_table: opp-table {
            compatible = "operating-points-v2";
            opp-0 {
                opp-peak-kBps = <4800000>;
            };
            opp-1 {
                opp-peak-kBps = <9216000>;
            };
            opp-2 {
                opp-peak-kBps = <15052800>;
            };
            opp-3 {
                opp-peak-kBps = <20889600>;
            };
            opp-4 {
                opp-peak-kBps = <25497600>;
            };
        };
    };
+0 −1
Original line number Original line Diff line number Diff line
@@ -77,7 +77,6 @@ properties:
          Should reference the tx-enable and tx-rings-empty SMEM states.
          Should reference the tx-enable and tx-rings-empty SMEM states.


      qcom,smem-state-names:
      qcom,smem-state-names:
        $ref: /schemas/types.yaml#/definitions/string-array
        items:
        items:
          - const: tx-enable
          - const: tx-enable
          - const: tx-rings-empty
          - const: tx-rings-empty
+7 −0
Original line number Original line Diff line number Diff line
@@ -16589,6 +16589,13 @@ S: Maintained
F:	Documentation/devicetree/bindings/i2c/i2c-qcom-cci.txt
F:	Documentation/devicetree/bindings/i2c/i2c-qcom-cci.txt
F:	drivers/i2c/busses/i2c-qcom-cci.c
F:	drivers/i2c/busses/i2c-qcom-cci.c
QUALCOMM INTERCONNECT BWMON DRIVER
M:	Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
L:	linux-arm-msm@vger.kernel.org
S:	Maintained
F:	Documentation/devicetree/bindings/interconnect/qcom,msm8998-bwmon.yaml
F:	drivers/soc/qcom/icc-bwmon.c
QUALCOMM IOMMU
QUALCOMM IOMMU
M:	Rob Clark <robdclark@gmail.com>
M:	Rob Clark <robdclark@gmail.com>
L:	iommu@lists.linux-foundation.org
L:	iommu@lists.linux-foundation.org
Loading