]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
ipq40xx: refresh 6.12 kernel patches
authorShiji Yang <yangshiji66@outlook.com>
Tue, 6 May 2025 11:30:52 +0000 (19:30 +0800)
committerHauke Mehrtens <hauke@hauke-m.de>
Sun, 20 Jul 2025 13:33:03 +0000 (15:33 +0200)
Remove upstreamed:
004-v6.7-firmware-qcom_scm-disable-SDI-if-required.patch [1]
709-ARM-dts-qcom-ipq4019-add-QCA8075-PHY-Package-nodes.patch [2]

Manually rebased:
422-firmware-qcom-scm-fix-SCM-cold-boot-address.patch
701-net-dsa-add-out-of-band-tagging-protocol.patch
850-soc-add-qualcomm-syscon.patch
900-PCI-qcom-add-hack-compatible-for-ipq4019-Lantiq-DSL.patch
910-Revert-firmware-qcom_scm-Clear-download-bit-during-r.patch

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.12.y&id=ff4aa3bc98258a240b9bbab53fd8d2fb8184c485
[2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.12.y&id=2338f4315f16b937e924ff679b91bb8c0ab53f25
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18725
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
12 files changed:
target/linux/ipq40xx/patches-6.12/004-v6.7-firmware-qcom_scm-disable-SDI-if-required.patch [deleted file]
target/linux/ipq40xx/patches-6.12/422-firmware-qcom-scm-fix-SCM-cold-boot-address.patch
target/linux/ipq40xx/patches-6.12/700-net-ipqess-introduce-the-Qualcomm-IPQESS-driver.patch
target/linux/ipq40xx/patches-6.12/701-net-dsa-add-out-of-band-tagging-protocol.patch
target/linux/ipq40xx/patches-6.12/705-ARM-dts-qcom-ipq4019-Add-description-for-the-IPQESS-.patch
target/linux/ipq40xx/patches-6.12/706-net-dsa-qca8k-add-IPQ4019-built-in-switch-support.patch
target/linux/ipq40xx/patches-6.12/707-arm-dts-ipq4019-add-switch-node.patch
target/linux/ipq40xx/patches-6.12/709-ARM-dts-qcom-ipq4019-add-QCA8075-PHY-Package-nodes.patch [deleted file]
target/linux/ipq40xx/patches-6.12/710-arm-dts-ipq4019-QCA807x-properties.patch
target/linux/ipq40xx/patches-6.12/850-soc-add-qualcomm-syscon.patch
target/linux/ipq40xx/patches-6.12/900-PCI-qcom-add-hack-compatible-for-ipq4019-Lantiq-DSL.patch
target/linux/ipq40xx/patches-6.12/910-Revert-firmware-qcom_scm-Clear-download-bit-during-r.patch

diff --git a/target/linux/ipq40xx/patches-6.12/004-v6.7-firmware-qcom_scm-disable-SDI-if-required.patch b/target/linux/ipq40xx/patches-6.12/004-v6.7-firmware-qcom_scm-disable-SDI-if-required.patch
deleted file mode 100644 (file)
index 747ba7f..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-From ff4aa3bc98258a240b9bbab53fd8d2fb8184c485 Mon Sep 17 00:00:00 2001
-From: Robert Marko <robimarko@gmail.com>
-Date: Wed, 16 Aug 2023 18:45:39 +0200
-Subject: [PATCH] firmware: qcom_scm: disable SDI if required
-
-IPQ5018 has SDI (Secure Debug Image) enabled by TZ by default, and that
-means that WDT being asserted or just trying to reboot will hang the board
-in the debug mode and only pulling the power and repowering will help.
-Some IPQ4019 boards like Google WiFI have it enabled as well.
-
-Luckily, SDI can be disabled via an SCM call.
-
-So, lets use the boolean DT property to identify boards that have SDI
-enabled by default and use the SCM call to disable SDI during SCM probe.
-It is important to disable it as soon as possible as we might have a WDT
-assertion at any time which would then leave the board in debug mode,
-thus disabling it during SCM removal is not enough.
-
-Signed-off-by: Robert Marko <robimarko@gmail.com>
-Reviewed-by: Guru Das Srinagesh <quic_gurus@quicinc.com>
-Link: https://lore.kernel.org/r/20230816164641.3371878-2-robimarko@gmail.com
-Signed-off-by: Bjorn Andersson <andersson@kernel.org>
----
- drivers/firmware/qcom_scm.c | 30 ++++++++++++++++++++++++++++++
- drivers/firmware/qcom_scm.h |  1 +
- 2 files changed, 31 insertions(+)
-
---- a/drivers/firmware/qcom_scm.c
-+++ b/drivers/firmware/qcom_scm.c
-@@ -410,6 +410,29 @@ int qcom_scm_set_remote_state(u32 state,
- }
- EXPORT_SYMBOL_GPL(qcom_scm_set_remote_state);
-+static int qcom_scm_disable_sdi(void)
-+{
-+      int ret;
-+      struct qcom_scm_desc desc = {
-+              .svc = QCOM_SCM_SVC_BOOT,
-+              .cmd = QCOM_SCM_BOOT_SDI_CONFIG,
-+              .args[0] = 1, /* Disable watchdog debug */
-+              .args[1] = 0, /* Disable SDI */
-+              .arginfo = QCOM_SCM_ARGS(2),
-+              .owner = ARM_SMCCC_OWNER_SIP,
-+      };
-+      struct qcom_scm_res res;
-+
-+      ret = qcom_scm_clk_enable();
-+      if (ret)
-+              return ret;
-+      ret = qcom_scm_call(__scm->dev, &desc, &res);
-+
-+      qcom_scm_clk_disable();
-+
-+      return ret ? : res.result[0];
-+}
-+
- static int __qcom_scm_set_dload_mode(struct device *dev, bool enable)
- {
-       struct qcom_scm_desc desc = {
-@@ -1474,6 +1497,13 @@ static int qcom_scm_probe(struct platfor
-       __get_convention();
-+
-+      /*
-+       * Disable SDI if indicated by DT that it is enabled by default.
-+       */
-+      if (of_property_read_bool(pdev->dev.of_node, "qcom,sdi-enabled"))
-+              qcom_scm_disable_sdi();
-+
-       /*
-        * If requested enable "download mode", from this point on warmboot
-        * will cause the boot stages to enter download mode, unless
---- a/drivers/firmware/qcom_scm.h
-+++ b/drivers/firmware/qcom_scm.h
-@@ -80,6 +80,7 @@ extern int scm_legacy_call(struct device
- #define QCOM_SCM_SVC_BOOT             0x01
- #define QCOM_SCM_BOOT_SET_ADDR                0x01
- #define QCOM_SCM_BOOT_TERMINATE_PC    0x02
-+#define QCOM_SCM_BOOT_SDI_CONFIG      0x09
- #define QCOM_SCM_BOOT_SET_DLOAD_MODE  0x10
- #define QCOM_SCM_BOOT_SET_ADDR_MC     0x11
- #define QCOM_SCM_BOOT_SET_REMOTE_STATE        0x0a
index 1c8cfb298115b4cba473e47b609e9b18cc67f46b..b21d0729d684a8a5e2a94a565dfe49ed7a45127f 100644 (file)
@@ -11,12 +11,12 @@ This fixes SMP support for Google WiFi.
 
 Signed-off-by: Brian Norris <computersforpeace@gmail.com>
 ---
- drivers/firmware/qcom_scm-legacy.c | 62 +++++++++++++++++++++++++-----
- drivers/firmware/qcom_scm.c        | 11 ++++++
+ drivers/firmware/qcom/qcom_scm-legacy.c | 62 +++++++++++++++++++++++++-----
+ drivers/firmware/qcom/qcom_scm.c        | 11 ++++++
  2 files changed, 63 insertions(+), 10 deletions(-)
 
---- a/drivers/firmware/qcom_scm-legacy.c
-+++ b/drivers/firmware/qcom_scm-legacy.c
+--- a/drivers/firmware/qcom/qcom_scm-legacy.c
++++ b/drivers/firmware/qcom/qcom_scm-legacy.c
 @@ -13,6 +13,9 @@
  #include <linux/arm-smccc.h>
  #include <linux/dma-mapping.h>
@@ -116,9 +116,9 @@ Signed-off-by: Brian Norris <computersforpeace@gmail.com>
        kfree(cmd);
        return ret;
  }
---- a/drivers/firmware/qcom_scm.c
-+++ b/drivers/firmware/qcom_scm.c
-@@ -315,6 +315,17 @@ static int qcom_scm_set_boot_addr(void *
+--- a/drivers/firmware/qcom/qcom_scm.c
++++ b/drivers/firmware/qcom/qcom_scm.c
+@@ -391,6 +391,17 @@ static int qcom_scm_set_boot_addr(void *
        desc.args[0] = flags;
        desc.args[1] = virt_to_phys(entry);
  
index 447e1898ff197ef9fac77586ff1e144df3baf123..337e440d914426db069aea6182cd3528dd2c6556 100644 (file)
@@ -32,7 +32,7 @@ Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
 
 --- a/MAINTAINERS
 +++ b/MAINTAINERS
-@@ -17718,6 +17718,13 @@ L:    netdev@vger.kernel.org
+@@ -19025,6 +19025,13 @@ L:    netdev@vger.kernel.org
  S:    Maintained
  F:    drivers/net/ethernet/qualcomm/emac/
  
@@ -45,7 +45,7 @@ Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
 +
  QUALCOMM ETHQOS ETHERNET DRIVER
  M:    Vinod Koul <vkoul@kernel.org>
- R:    Bhupesh Sharma <bhupesh.sharma@linaro.org>
+ L:    netdev@vger.kernel.org
 --- a/drivers/net/ethernet/qualcomm/Kconfig
 +++ b/drivers/net/ethernet/qualcomm/Kconfig
 @@ -61,6 +61,17 @@ config QCOM_EMAC
index dc70104b1c0f3eae8795d7b59c858804408f402b..65229c9d0ddaa3b7e70812e8066cdd68e879b075 100644 (file)
@@ -35,7 +35,7 @@ Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
 
 --- a/Documentation/networking/dsa/dsa.rst
 +++ b/Documentation/networking/dsa/dsa.rst
-@@ -66,7 +66,8 @@ Switch tagging protocols
+@@ -70,7 +70,8 @@ Switch tagging protocols
  ------------------------
  
  DSA supports many vendor-specific tagging protocols, one software-defined
@@ -45,9 +45,9 @@ Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
  
  The exact format of the tag protocol is vendor specific, but in general, they
  all contain something which:
-@@ -217,6 +218,16 @@ receive all frames regardless of the val
- setting the ``promisc_on_master`` property of the ``struct dsa_device_ops``.
- Note that this assumes a DSA-unaware master driver, which is the norm.
+@@ -221,6 +222,16 @@ receive all frames regardless of the val
+ setting the ``promisc_on_conduit`` property of the ``struct dsa_device_ops``.
+ Note that this assumes a DSA-unaware conduit driver, which is the norm.
  
 +Some SoCs have a tight integration between the conduit network interface and the
 +embedded switch, such that the DSA tag isn't transmitted in the packet data,
@@ -59,12 +59,12 @@ Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
 +top-most switch in the tree. The tagger (``DSA_TAG_PROTO_OOB``) uses skb
 +extensions to transmit the tag to and from the MAC driver.
 +
Master network devices
- ----------------------
Conduit network devices
+ -----------------------
  
 --- a/MAINTAINERS
 +++ b/MAINTAINERS
-@@ -17724,6 +17724,7 @@ L:     netdev@vger.kernel.org
+@@ -19031,6 +19031,7 @@ L:     netdev@vger.kernel.org
  S:    Maintained
  F:    Documentation/devicetree/bindings/net/qcom,ipq4019-ess-edma.yaml
  F:    drivers/net/ethernet/qualcomm/ipqess/
@@ -93,7 +93,7 @@ Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
 +#endif
 --- a/include/linux/skbuff.h
 +++ b/include/linux/skbuff.h
-@@ -4683,6 +4683,9 @@ enum skb_ext_id {
+@@ -4769,6 +4769,9 @@ enum skb_ext_id {
  #if IS_ENABLED(CONFIG_MCTP_FLOWS)
        SKB_EXT_MCTP,
  #endif
@@ -105,27 +105,27 @@ Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
  
 --- a/include/net/dsa.h
 +++ b/include/net/dsa.h
-@@ -56,6 +56,7 @@ struct phylink_link_state;
- #define DSA_TAG_PROTO_RTL8_4T_VALUE           25
- #define DSA_TAG_PROTO_RZN1_A5PSW_VALUE                26
+@@ -55,6 +55,7 @@ struct tc_action;
  #define DSA_TAG_PROTO_LAN937X_VALUE           27
-+#define DSA_TAG_PROTO_OOB_VALUE                       28
+ #define DSA_TAG_PROTO_VSC73XX_8021Q_VALUE     28
+ #define DSA_TAG_PROTO_BRCM_LEGACY_FCS_VALUE   29
++#define DSA_TAG_PROTO_OOB_VALUE                       30
  
  enum dsa_tag_protocol {
        DSA_TAG_PROTO_NONE              = DSA_TAG_PROTO_NONE_VALUE,
-@@ -86,6 +87,7 @@ enum dsa_tag_protocol {
-       DSA_TAG_PROTO_RTL8_4T           = DSA_TAG_PROTO_RTL8_4T_VALUE,
+@@ -87,6 +88,7 @@ enum dsa_tag_protocol {
        DSA_TAG_PROTO_RZN1_A5PSW        = DSA_TAG_PROTO_RZN1_A5PSW_VALUE,
        DSA_TAG_PROTO_LAN937X           = DSA_TAG_PROTO_LAN937X_VALUE,
+       DSA_TAG_PROTO_VSC73XX_8021Q     = DSA_TAG_PROTO_VSC73XX_8021Q_VALUE,
 +      DSA_TAG_PROTO_OOB               = DSA_TAG_PROTO_OOB_VALUE,
  };
  
  struct dsa_switch;
 --- a/net/core/skbuff.c
 +++ b/net/core/skbuff.c
-@@ -63,8 +63,12 @@
- #include <linux/mpls.h>
+@@ -65,8 +65,12 @@
  #include <linux/kcov.h>
+ #include <linux/iov_iter.h>
  #include <linux/if.h>
 +#ifdef CONFIG_NET_DSA_TAG_OOB
 +#include <linux/dsa/oob.h>
@@ -136,7 +136,7 @@ Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
  #include <net/dst.h>
  #include <net/sock.h>
  #include <net/checksum.h>
-@@ -4823,6 +4827,9 @@ static const u8 skb_ext_type_len[] = {
+@@ -5068,6 +5072,9 @@ static const u8 skb_ext_type_len[] = {
  #if IS_ENABLED(CONFIG_MCTP_FLOWS)
        [SKB_EXT_MCTP] = SKB_EXT_CHUNKSIZEOF(struct mctp_flow),
  #endif
@@ -148,7 +148,7 @@ Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
  static __always_inline unsigned int skb_ext_total_length(void)
 --- a/net/dsa/Kconfig
 +++ b/net/dsa/Kconfig
-@@ -119,6 +119,15 @@ config NET_DSA_TAG_OCELOT_8021Q
+@@ -131,6 +131,15 @@ config NET_DSA_TAG_OCELOT_8021Q
          this mode, less TCAM resources (VCAP IS1, IS2, ES0) are available for
          use with tc-flower.
  
index 6b66393d827b3234031bc432593fcf9f3dc2a476..3fea0cce550c0dce27b72781d4c129473bf55ece 100644 (file)
@@ -21,7 +21,7 @@ Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
 
 --- a/arch/arm/boot/dts/qcom/qcom-ipq4019.dtsi
 +++ b/arch/arm/boot/dts/qcom/qcom-ipq4019.dtsi
-@@ -596,6 +596,54 @@
+@@ -600,6 +600,54 @@
                        status = "disabled";
                };
  
index b2f42b9fd14648ecb34876093ba1d3e8415e30b8..c1e46cb4ad654dea571384f9be164197ec9597b0 100644 (file)
@@ -67,7 +67,7 @@ Signed-off-by: Robert Marko <robert.marko@sartura.hr>
                mask = QCA8K_VTU_FUNC0_EG_MODE_PORT_NOT(i);
  
                if ((reg & mask) != mask) {
-@@ -624,7 +624,7 @@ static int qca8k_update_port_member(stru
+@@ -623,7 +623,7 @@ static int qca8k_update_port_member(stru
        u32 port_mask = BIT(dp->cpu_dp->index);
        int i, ret;
  
@@ -1111,7 +1111,7 @@ Signed-off-by: Robert Marko <robert.marko@sartura.hr>
  enum {
        QCA8K_PORT_SPEED_10M = 0,
        QCA8K_PORT_SPEED_100M = 1,
-@@ -467,6 +519,10 @@ struct qca8k_priv {
+@@ -468,6 +520,10 @@ struct qca8k_priv {
        struct qca8k_pcs pcs_port_6;
        const struct qca8k_match_data *info;
        struct qca8k_led ports_led[QCA8K_LED_COUNT];
index 130cc52fbef89c5223845772049e626b7f33f40d..bd41ceac1677efb3c511abd85711ee0feb7e8b44 100644 (file)
@@ -13,7 +13,7 @@ Signed-off-by: Robert Marko <robert.marko@sartura.hr>
 
 --- a/arch/arm/boot/dts/qcom/qcom-ipq4019.dtsi
 +++ b/arch/arm/boot/dts/qcom/qcom-ipq4019.dtsi
-@@ -596,6 +596,82 @@
+@@ -600,6 +600,82 @@
                        status = "disabled";
                };
  
diff --git a/target/linux/ipq40xx/patches-6.12/709-ARM-dts-qcom-ipq4019-add-QCA8075-PHY-Package-nodes.patch b/target/linux/ipq40xx/patches-6.12/709-ARM-dts-qcom-ipq4019-add-QCA8075-PHY-Package-nodes.patch
deleted file mode 100644 (file)
index 50c8e64..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-From 5ac078c8fe18f3e8318547b8ed0ed782730c5039 Mon Sep 17 00:00:00 2001
-From: Christian Marangi <ansuelsmth@gmail.com>
-Date: Sat, 10 Feb 2024 22:28:27 +0100
-Subject: [PATCH] ARM: dts: qcom: ipq4019: add QCA8075 PHY Package nodes
-
-Add QCA8075 PHY Package nodes. The PHY nodes that were previously
-defined never worked and actually never had a driver to correctly setup
-these PHY. Now that we have a correct driver, correctly add the PHY
-Package node and set the default value of 300mw for tx driver strength
-following specification of ipq4019 SoC.
-
-Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
----
- arch/arm/boot/dts//qcom-ipq4019.dtsi | 35 +++++++++++++++---------
- 1 file changed, 22 insertions(+), 13 deletions(-)
-
---- a/arch/arm/boot/dts/qcom/qcom-ipq4019.dtsi
-+++ b/arch/arm/boot/dts/qcom/qcom-ipq4019.dtsi
-@@ -727,24 +727,33 @@
-                       reg = <0x90000 0x64>;
-                       status = "disabled";
--                      ethphy0: ethernet-phy@0 {
-+                      qca807x: ethernet-phy-package@0 {
-+                              #address-cells = <1>;
-+                              #size-cells = <0>;
-+                              compatible = "qcom,qca8075-package";
-                               reg = <0>;
--                      };
--
--                      ethphy1: ethernet-phy@1 {
--                              reg = <1>;
--                      };
--                      ethphy2: ethernet-phy@2 {
--                              reg = <2>;
--                      };
--
--                      ethphy3: ethernet-phy@3 {
--                              reg = <3>;
--                      };
-+                              qcom,tx-drive-strength-milliwatt = <300>;
--                      ethphy4: ethernet-phy@4 {
--                              reg = <4>;
-+                              ethphy0: ethernet-phy@0 {
-+                                      reg = <0>;
-+                              };
-+
-+                              ethphy1: ethernet-phy@1 {
-+                                      reg = <1>;
-+                              };
-+
-+                              ethphy2: ethernet-phy@2 {
-+                                      reg = <2>;
-+                              };
-+
-+                              ethphy3: ethernet-phy@3 {
-+                                      reg = <3>;
-+                              };
-+
-+                              ethphy4: ethernet-phy@4 {
-+                                      reg = <4>;
-+                              };
-                       };
-               };
index 9f4c9fa67e00676cd221649cf301738098048f6b..749313cc542fd6b7f60773d863152427e09f640f 100644 (file)
@@ -12,7 +12,7 @@ Signed-off-by: Robert Marko <robert.marko@sartura.hr>
 
 --- a/arch/arm/boot/dts/qcom/qcom-ipq4019.dtsi
 +++ b/arch/arm/boot/dts/qcom/qcom-ipq4019.dtsi
-@@ -754,6 +754,10 @@
+@@ -758,6 +758,10 @@
                                ethphy4: ethernet-phy@4 {
                                        reg = <4>;
                                };
index 7cd473b24eb299213b01ece3d8b7d8b018b3f9fe..579a8cccfb7e475b3fefb1a04b544ec49c329314 100644 (file)
@@ -2,9 +2,9 @@ From: Christian Lamparter <chunkeey@googlemail.com>
 Subject: SoC: add qualcomm syscon
 --- a/drivers/soc/qcom/Kconfig
 +++ b/drivers/soc/qcom/Kconfig
-@@ -291,4 +291,11 @@ config QCOM_INLINE_CRYPTO_ENGINE
-       tristate
-       select QCOM_SCM
+@@ -295,4 +295,11 @@ config QCOM_PBS
+         This module provides the APIs to the client drivers that wants to send the
+         PBS trigger event to the PBS RAM.
  
 +config QCOM_TCSR
 +      tristate "QCOM Top Control and Status Registers"
@@ -16,10 +16,10 @@ Subject: SoC: add qualcomm syscon
  endmenu
 --- a/drivers/soc/qcom/Makefile
 +++ b/drivers/soc/qcom/Makefile
-@@ -32,3 +32,4 @@ obj-$(CONFIG_QCOM_KRYO_L2_ACCESSORS) +=
- obj-$(CONFIG_QCOM_ICC_BWMON)  += icc-bwmon.o
+@@ -39,3 +39,4 @@ obj-$(CONFIG_QCOM_ICC_BWMON) += icc-bwmo
  qcom_ice-objs                 += ice.o
  obj-$(CONFIG_QCOM_INLINE_CRYPTO_ENGINE)       += qcom_ice.o
+ obj-$(CONFIG_QCOM_PBS) +=     qcom-pbs.o
 +obj-$(CONFIG_QCOM_TCSR)               += qcom_tcsr.o
 --- /dev/null
 +++ b/drivers/soc/qcom/qcom_tcsr.c
index af10fd57049d2207c038cffd5463077a2adc28e6..e16bb6fa20c68f3ee9112ea1eff34f6f6a99aefe 100644 (file)
@@ -18,9 +18,9 @@ Signed-off-by: Florian Maurer <f.maurer@outlook.com>
 
 --- a/drivers/pci/controller/dwc/pcie-qcom.c
 +++ b/drivers/pci/controller/dwc/pcie-qcom.c
-@@ -184,11 +184,24 @@ struct qcom_pcie_resources_2_3_3 {
+@@ -207,11 +207,24 @@ struct qcom_pcie_resources_2_3_3 {
+ };
  
- #define QCOM_PCIE_2_4_0_MAX_CLOCKS            4
  #define QCOM_PCIE_2_4_0_MAX_RESETS            12
 +/*
 + * This value is the manufacturer ID of Lantiq. The address where
@@ -34,7 +34,7 @@ Signed-off-by: Florian Maurer <f.maurer@outlook.com>
 +#define QCOM_PCIE_2_4_0_GRX500_VENDOR_ID      0x1bef
 +#define QCOM_PCIE_2_4_0_GRX500_DEVICE_ID      0x0030
  struct qcom_pcie_resources_2_4_0 {
-       struct clk_bulk_data clks[QCOM_PCIE_2_4_0_MAX_CLOCKS];
+       struct clk_bulk_data *clks;
        int num_clks;
        struct reset_control_bulk_data resets[QCOM_PCIE_2_4_0_MAX_RESETS];
        int num_resets;
@@ -42,8 +42,8 @@ Signed-off-by: Florian Maurer <f.maurer@outlook.com>
 +      dma_addr_t lantiq_hack_phys;
  };
  
- #define QCOM_PCIE_2_7_0_MAX_CLOCKS            15
-@@ -629,12 +642,65 @@ static int qcom_pcie_post_init_2_3_2(str
+ #define QCOM_PCIE_2_7_0_MAX_SUPPLIES          2
+@@ -711,12 +724,65 @@ static int qcom_pcie_post_init_2_3_2(str
        return 0;
  }
  
@@ -109,8 +109,8 @@ Signed-off-by: Florian Maurer <f.maurer@outlook.com>
 +                    of_device_is_compatible(dev->of_node, "qcom,pcie-ipq4019-lantiq-hack");
        int ret;
  
-       res->clks[0].id = "aux";
-@@ -679,6 +745,17 @@ static void qcom_pcie_deinit_2_4_0(struc
+       res->num_clks = devm_clk_bulk_get_all(dev, &res->clks);
+@@ -755,6 +821,17 @@ static void qcom_pcie_deinit_2_4_0(struc
        clk_bulk_disable_unprepare(res->num_clks, res->clks);
  }
  
@@ -128,7 +128,7 @@ Signed-off-by: Florian Maurer <f.maurer@outlook.com>
  static int qcom_pcie_init_2_4_0(struct qcom_pcie *pcie)
  {
        struct qcom_pcie_resources_2_4_0 *res = &pcie->res.v2_4_0;
-@@ -1292,6 +1369,16 @@ static const struct qcom_pcie_ops ops_2_
+@@ -1336,6 +1413,16 @@ static const struct qcom_pcie_ops ops_2_
        .ltssm_enable = qcom_pcie_2_3_2_ltssm_enable,
  };
  
@@ -145,7 +145,7 @@ Signed-off-by: Florian Maurer <f.maurer@outlook.com>
  /* Qcom IP rev.: 2.3.3        Synopsys IP rev.: 4.30a */
  static const struct qcom_pcie_ops ops_2_3_3 = {
        .get_resources = qcom_pcie_get_resources_2_3_3,
-@@ -1354,6 +1441,10 @@ static const struct qcom_pcie_cfg cfg_2_
+@@ -1403,6 +1490,10 @@ static const struct qcom_pcie_cfg cfg_2_
        .ops = &ops_2_4_0,
  };
  
@@ -156,7 +156,7 @@ Signed-off-by: Florian Maurer <f.maurer@outlook.com>
  static const struct qcom_pcie_cfg cfg_2_7_0 = {
        .ops = &ops_2_7_0,
  };
-@@ -1641,6 +1732,7 @@ static const struct of_device_id qcom_pc
+@@ -1827,6 +1918,7 @@ static const struct of_device_id qcom_pc
        { .compatible = "qcom,pcie-apq8064", .data = &cfg_2_1_0 },
        { .compatible = "qcom,pcie-apq8084", .data = &cfg_1_0_0 },
        { .compatible = "qcom,pcie-ipq4019", .data = &cfg_2_4_0 },
index ab56c24a4d1c3099d657d19fd840b8ccff6911c2..8a7b193e99ef027312b1cf649126d050a8ffa940 100644 (file)
@@ -10,18 +10,18 @@ is found.
 
 Signed-off-by: Robert Marko <robimarko@gmail.com>
 ---
- drivers/firmware/qcom_scm.c | 3 ++-
+ drivers/firmware/qcom/qcom_scm.c | 3 ++-
  1 file changed, 2 insertions(+), 1 deletion(-)
 
---- a/drivers/firmware/qcom_scm.c
-+++ b/drivers/firmware/qcom_scm.c
-@@ -1529,7 +1529,8 @@ static int qcom_scm_probe(struct platfor
+--- a/drivers/firmware/qcom/qcom_scm.c
++++ b/drivers/firmware/qcom/qcom_scm.c
+@@ -2095,7 +2095,8 @@ err:
  static void qcom_scm_shutdown(struct platform_device *pdev)
  {
        /* Clean shutdown, disable download mode to allow normal restart */
--      qcom_scm_set_download_mode(false);
+-      qcom_scm_set_download_mode(QCOM_DLOAD_NODUMP);
 +      if (download_mode)
-+              qcom_scm_set_download_mode(false);
++              qcom_scm_set_download_mode(QCOM_DLOAD_NODUMP);
  }
  
  static const struct of_device_id qcom_scm_dt_match[] = {