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@outlook.com> Link: https://github.com/openwrt/openwrt/pull/18725 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This commit is contained in:
parent
b040c74542
commit
230c6f44ab
12 changed files with 53 additions and 203 deletions
|
@ -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
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
|
|
@ -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";
|
||||
};
|
||||
|
||||
|
|
|
@ -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];
|
||||
|
|
|
@ -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";
|
||||
};
|
||||
|
||||
|
|
|
@ -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>;
|
||||
+ };
|
||||
};
|
||||
};
|
||||
|
|
@ -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>;
|
||||
};
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 },
|
||||
|
|
|
@ -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[] = {
|
||||
|
|
Loading…
Reference in a new issue