[openwrt/openwrt] ipq40xx: refresh 6.12 kernel patches
LEDE Commits
lede-commits at lists.infradead.org
Sun Jul 20 06:38:45 PDT 2025
hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/230c6f44ab8f00f06b26d19ec8aa6bb7b46072f8
commit 230c6f44ab8f00f06b26d19ec8aa6bb7b46072f8
Author: Shiji Yang <yangshiji66 at outlook.com>
AuthorDate: Tue May 6 19:30:52 2025 +0800
ipq40xx: refresh 6.12 kernel patches
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 at outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18725
Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
...firmware-qcom_scm-disable-SDI-if-required.patch | 83 ----------------------
...rmware-qcom-scm-fix-SCM-cold-boot-address.patch | 14 ++--
...qess-introduce-the-Qualcomm-IPQESS-driver.patch | 4 +-
...-net-dsa-add-out-of-band-tagging-protocol.patch | 36 +++++-----
...m-ipq4019-Add-description-for-the-IPQESS-.patch | 2 +-
...qca8k-add-IPQ4019-built-in-switch-support.patch | 4 +-
.../707-arm-dts-ipq4019-add-switch-node.patch | 2 +-
...com-ipq4019-add-QCA8075-PHY-Package-nodes.patch | 67 -----------------
.../710-arm-dts-ipq4019-QCA807x-properties.patch | 2 +-
.../patches-6.12/850-soc-add-qualcomm-syscon.patch | 10 +--
...dd-hack-compatible-for-ipq4019-Lantiq-DSL.patch | 20 +++---
...ware-qcom_scm-Clear-download-bit-during-r.patch | 12 ++--
12 files changed, 53 insertions(+), 203 deletions(-)
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
index 747ba7f285..0000000000
--- a/target/linux/ipq40xx/patches-6.12/004-v6.7-firmware-qcom_scm-disable-SDI-if-required.patch
+++ /dev/null
@@ -1,83 +0,0 @@
-From ff4aa3bc98258a240b9bbab53fd8d2fb8184c485 Mon Sep 17 00:00:00 2001
-From: Robert Marko <robimarko at 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 at gmail.com>
-Reviewed-by: Guru Das Srinagesh <quic_gurus at quicinc.com>
-Link: https://lore.kernel.org/r/20230816164641.3371878-2-robimarko@gmail.com
-Signed-off-by: Bjorn Andersson <andersson at 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
diff --git a/target/linux/ipq40xx/patches-6.12/422-firmware-qcom-scm-fix-SCM-cold-boot-address.patch b/target/linux/ipq40xx/patches-6.12/422-firmware-qcom-scm-fix-SCM-cold-boot-address.patch
index 1c8cfb2981..b21d0729d6 100644
--- a/target/linux/ipq40xx/patches-6.12/422-firmware-qcom-scm-fix-SCM-cold-boot-address.patch
+++ b/target/linux/ipq40xx/patches-6.12/422-firmware-qcom-scm-fix-SCM-cold-boot-address.patch
@@ -11,12 +11,12 @@ This fixes SMP support for Google WiFi.
Signed-off-by: Brian Norris <computersforpeace at 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 at 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);
diff --git a/target/linux/ipq40xx/patches-6.12/700-net-ipqess-introduce-the-Qualcomm-IPQESS-driver.patch b/target/linux/ipq40xx/patches-6.12/700-net-ipqess-introduce-the-Qualcomm-IPQESS-driver.patch
index 447e1898ff..337e440d91 100644
--- a/target/linux/ipq40xx/patches-6.12/700-net-ipqess-introduce-the-Qualcomm-IPQESS-driver.patch
+++ b/target/linux/ipq40xx/patches-6.12/700-net-ipqess-introduce-the-Qualcomm-IPQESS-driver.patch
@@ -32,7 +32,7 @@ Signed-off-by: Maxime Chevallier <maxime.chevallier at bootlin.com>
--- a/MAINTAINERS
+++ b/MAINTAINERS
-@@ -17718,6 +17718,13 @@ L: netdev at vger.kernel.org
+@@ -19025,6 +19025,13 @@ L: netdev at vger.kernel.org
S: Maintained
F: drivers/net/ethernet/qualcomm/emac/
@@ -45,7 +45,7 @@ Signed-off-by: Maxime Chevallier <maxime.chevallier at bootlin.com>
+
QUALCOMM ETHQOS ETHERNET DRIVER
M: Vinod Koul <vkoul at kernel.org>
- R: Bhupesh Sharma <bhupesh.sharma at linaro.org>
+ L: netdev at vger.kernel.org
--- a/drivers/net/ethernet/qualcomm/Kconfig
+++ b/drivers/net/ethernet/qualcomm/Kconfig
@@ -61,6 +61,17 @@ config QCOM_EMAC
diff --git a/target/linux/ipq40xx/patches-6.12/701-net-dsa-add-out-of-band-tagging-protocol.patch b/target/linux/ipq40xx/patches-6.12/701-net-dsa-add-out-of-band-tagging-protocol.patch
index dc70104b1c..65229c9d0d 100644
--- a/target/linux/ipq40xx/patches-6.12/701-net-dsa-add-out-of-band-tagging-protocol.patch
+++ b/target/linux/ipq40xx/patches-6.12/701-net-dsa-add-out-of-band-tagging-protocol.patch
@@ -35,7 +35,7 @@ Signed-off-by: Maxime Chevallier <maxime.chevallier at 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 at 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 at 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 at vger.kernel.org
+@@ -19031,6 +19031,7 @@ L: netdev at 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 at 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 at 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 at 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 at 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.
diff --git a/target/linux/ipq40xx/patches-6.12/705-ARM-dts-qcom-ipq4019-Add-description-for-the-IPQESS-.patch b/target/linux/ipq40xx/patches-6.12/705-ARM-dts-qcom-ipq4019-Add-description-for-the-IPQESS-.patch
index 6b66393d82..3fea0cce55 100644
--- a/target/linux/ipq40xx/patches-6.12/705-ARM-dts-qcom-ipq4019-Add-description-for-the-IPQESS-.patch
+++ b/target/linux/ipq40xx/patches-6.12/705-ARM-dts-qcom-ipq4019-Add-description-for-the-IPQESS-.patch
@@ -21,7 +21,7 @@ Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski at 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";
};
diff --git a/target/linux/ipq40xx/patches-6.12/706-net-dsa-qca8k-add-IPQ4019-built-in-switch-support.patch b/target/linux/ipq40xx/patches-6.12/706-net-dsa-qca8k-add-IPQ4019-built-in-switch-support.patch
index b2f42b9fd1..c1e46cb4ad 100644
--- a/target/linux/ipq40xx/patches-6.12/706-net-dsa-qca8k-add-IPQ4019-built-in-switch-support.patch
+++ b/target/linux/ipq40xx/patches-6.12/706-net-dsa-qca8k-add-IPQ4019-built-in-switch-support.patch
@@ -67,7 +67,7 @@ Signed-off-by: Robert Marko <robert.marko at 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 at 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];
diff --git a/target/linux/ipq40xx/patches-6.12/707-arm-dts-ipq4019-add-switch-node.patch b/target/linux/ipq40xx/patches-6.12/707-arm-dts-ipq4019-add-switch-node.patch
index 130cc52fbe..bd41ceac16 100644
--- a/target/linux/ipq40xx/patches-6.12/707-arm-dts-ipq4019-add-switch-node.patch
+++ b/target/linux/ipq40xx/patches-6.12/707-arm-dts-ipq4019-add-switch-node.patch
@@ -13,7 +13,7 @@ Signed-off-by: Robert Marko <robert.marko at 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
index 50c8e64534..0000000000
--- a/target/linux/ipq40xx/patches-6.12/709-ARM-dts-qcom-ipq4019-add-QCA8075-PHY-Package-nodes.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From 5ac078c8fe18f3e8318547b8ed0ed782730c5039 Mon Sep 17 00:00:00 2001
-From: Christian Marangi <ansuelsmth at 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 at 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 at 0 {
-+ qca807x: ethernet-phy-package at 0 {
-+ #address-cells = <1>;
-+ #size-cells = <0>;
-+ compatible = "qcom,qca8075-package";
- reg = <0>;
-- };
--
-- ethphy1: ethernet-phy at 1 {
-- reg = <1>;
-- };
-
-- ethphy2: ethernet-phy at 2 {
-- reg = <2>;
-- };
--
-- ethphy3: ethernet-phy at 3 {
-- reg = <3>;
-- };
-+ qcom,tx-drive-strength-milliwatt = <300>;
-
-- ethphy4: ethernet-phy at 4 {
-- reg = <4>;
-+ ethphy0: ethernet-phy at 0 {
-+ reg = <0>;
-+ };
-+
-+ ethphy1: ethernet-phy at 1 {
-+ reg = <1>;
-+ };
-+
-+ ethphy2: ethernet-phy at 2 {
-+ reg = <2>;
-+ };
-+
-+ ethphy3: ethernet-phy at 3 {
-+ reg = <3>;
-+ };
-+
-+ ethphy4: ethernet-phy at 4 {
-+ reg = <4>;
-+ };
- };
- };
-
diff --git a/target/linux/ipq40xx/patches-6.12/710-arm-dts-ipq4019-QCA807x-properties.patch b/target/linux/ipq40xx/patches-6.12/710-arm-dts-ipq4019-QCA807x-properties.patch
index 9f4c9fa67e..749313cc54 100644
--- a/target/linux/ipq40xx/patches-6.12/710-arm-dts-ipq4019-QCA807x-properties.patch
+++ b/target/linux/ipq40xx/patches-6.12/710-arm-dts-ipq4019-QCA807x-properties.patch
@@ -12,7 +12,7 @@ Signed-off-by: Robert Marko <robert.marko at 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 at 4 {
reg = <4>;
};
diff --git a/target/linux/ipq40xx/patches-6.12/850-soc-add-qualcomm-syscon.patch b/target/linux/ipq40xx/patches-6.12/850-soc-add-qualcomm-syscon.patch
index 7cd473b24e..579a8cccfb 100644
--- a/target/linux/ipq40xx/patches-6.12/850-soc-add-qualcomm-syscon.patch
+++ b/target/linux/ipq40xx/patches-6.12/850-soc-add-qualcomm-syscon.patch
@@ -2,9 +2,9 @@ From: Christian Lamparter <chunkeey at 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
diff --git a/target/linux/ipq40xx/patches-6.12/900-PCI-qcom-add-hack-compatible-for-ipq4019-Lantiq-DSL.patch b/target/linux/ipq40xx/patches-6.12/900-PCI-qcom-add-hack-compatible-for-ipq4019-Lantiq-DSL.patch
index af10fd5704..e16bb6fa20 100644
--- a/target/linux/ipq40xx/patches-6.12/900-PCI-qcom-add-hack-compatible-for-ipq4019-Lantiq-DSL.patch
+++ b/target/linux/ipq40xx/patches-6.12/900-PCI-qcom-add-hack-compatible-for-ipq4019-Lantiq-DSL.patch
@@ -18,9 +18,9 @@ Signed-off-by: Florian Maurer <f.maurer at 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 at 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 at 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 at 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 at 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 at 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 at 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 },
diff --git a/target/linux/ipq40xx/patches-6.12/910-Revert-firmware-qcom_scm-Clear-download-bit-during-r.patch b/target/linux/ipq40xx/patches-6.12/910-Revert-firmware-qcom_scm-Clear-download-bit-during-r.patch
index ab56c24a4d..8a7b193e99 100644
--- a/target/linux/ipq40xx/patches-6.12/910-Revert-firmware-qcom_scm-Clear-download-bit-during-r.patch
+++ b/target/linux/ipq40xx/patches-6.12/910-Revert-firmware-qcom_scm-Clear-download-bit-during-r.patch
@@ -10,18 +10,18 @@ is found.
Signed-off-by: Robert Marko <robimarko at 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[] = {
More information about the lede-commits
mailing list