mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-21 14:37:57 +00:00
kernel: bump 5.15 to 5.15.111
Removed upstreamed: 01. backport-5.15/424-v6.4-0001-mtd-core-provide-unique-name-for-nvmem-device-take-t.patch 02. backport-5.15/424-v6.4-0002-mtd-core-fix-nvmem-error-reporting.patch 03. generic-backport/424-v6.4-0003-mtd-core-fix-error-path-for-nvmem-provider.patch 04. generic-backport/828-v6.4-0001-of-Fix-modalias-string-generation.patch 05. bcm4908/patches-5.15/031-v5.17-0002-arm64-dts-broadcom-bcm4908-add-DT-for-Netgear-RAXE50.patch 06. bcm4908/patches-5.15/033-v6.0-0001-arm64-dts-Add-DTS-files-for-bcmbca-SoC-BCM63158.patchgit 07. bcm4908/patches-5.15/033-v6.0-0002-arm64-dts-Add-DTS-files-for-bcmbca-SoC-BCM4912.patchgita 08. bcm4908/patches-5.15/033-v6.0-0010-arm64-dts-Add-base-DTS-file-for-bcmbca-device-Asus-G.patchgit 09. bcm4908/patches-5.15/034-v6.1-0005-arm64-dts-Move-BCM4908-dts-to-bcmbca-folder.patch 10. bcm4908/patches-5.15/036-v6.4-0002-arm64-dts-broadcom-bcmbca-bcm4908-fix-NAND-interrupt.patch 11. bcm4908/patches-5.15/036-v6.4-0004-arm64-dts-broadcom-bcmbca-bcm4908-fix-procmon-nodena.patch 12. ipq806x/patches-5.15/104-v6.0-06-ARM-dts-qcom-ipq8064-reduce-pci-IO-size-to-64K.patch Manually rebased: bcm27xx/patches-5.15/950-0078-BCM2708-Add-core-Device-Tree-support.patch bcm27xx/patches-5.15/950-0547-ARM-dts-Add-Pi-Zero-2-support.patch bcm4908/patches-5.15/033-v6.0-0001-arm64-dts-Add-DTS-files-for-bcmbca-SoC-BCM63158.patchgit bcm4908/patches-5.15/033-v6.0-0002-arm64-dts-Add-DTS-files-for-bcmbca-SoC-BCM4912.patchgit bcm4908/patches-5.15/030-v5.16-0001-arm64-dts-broadcom-bcm4908-Fix-NAND-node-name.patch bcm4908/patches-5.15/032-v5.18-0002-arm64-dts-broadcom-bcm4908-add-pinctrl-binding.patch bcm4908/patches-5.15/032-v5.18-0003-arm64-dts-broadcom-bcm4908-add-watchdog-block.patch bcm4908/patches-5.15/032-v5.18-0004-arm64-dts-broadcom-bcm4908-add-I2C-block.patch bcm4908/patches-5.15/033-v6.0-0003-ARM64-dts-Add-DTS-files-for-bcmbca-SoC-BCM6858.patchgit bcm4908/patches-5.15/033-v6.0-0008-arm64-dts-broadcom-bcm4908-Fix-timer-node-for-BCM490.patchgit bcm4908/patches-5.15/034-v6.1-0001-arm64-dts-broadcom-bcm4908-add-remaining-LED-pins.patch bcm4908/patches-5.15/034-v6.1-0002-arm64-dts-broadcom-bcm4908-add-LEDs-controller-block.patch bcm4908/patches-5.15/034-v6.1-0003-arm64-dts-broadcom-bcm4908-add-Asus-GT-AC5300-LEDs.patch bcm4908/patches-5.15/034-v6.1-0004-arm64-dts-bcmbca-update-BCM4908-board-dts-files.patch All other patches automatically rebased. Build system: x86_64 Build-tested: bcm2711/RPi4B, ramips/tplink_archer-a6-v3, filogic/xiaomi_redmi-router-ax6000-ubootmod Run-tested: bcm2711/RPi4B, ramips/tplink_archer-a6-v3, filogic/xiaomi_redmi-router-ax6000-ubootmod 01. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.111&id=77112d23a671697f0f70695ab901f807e15d2093 02. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.111&id=fe07b3b5af01f42b291f5da0da09d047f50b33a6 03. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.111&id=273be36e420924237f6c9d43cdad96718c13dd52 04. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.111&id=fe8ab85ed4958e58e991bba0aa0a655b552b0273 05. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.111&id=6ae67829fa5e9e71f458f69db42f0e216225616a 06. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.111&id=1994284cb9226b65ca3a6744ce3320218b584f26 07. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.111&id=a46878476c5549a4fde15a31922ce80a50b23492 08. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.111&id=112ff0f2530549d50510f116474924f9c4fad590 09. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.111&id=7c253e98685e6d884d12e2618ef4d2ad90b4fbd7 10. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.111&id=8444b46e163aa9559a0af0381a1d230ec4146eb2 11. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.111&id=6d1af517817a760d7af3dee0fc4603645485495c 12. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.111&id=cc4f0e168a5630ad0491ac5328f1a89f3cf3d04e Signed-off-by: John Audia <therealgraysky@proton.me>
This commit is contained in:
parent
9145c4fbcb
commit
228e0e1039
@ -1,2 +1,2 @@
|
||||
LINUX_VERSION-5.15 = .110
|
||||
LINUX_KERNEL_HASH-5.15.110 = 9829fcc77b9978dce97a26980dec445caf2410024696625dbb2314ead4830b5b
|
||||
LINUX_VERSION-5.15 = .111
|
||||
LINUX_KERNEL_HASH-5.15.111 = 77ceea259c0158dd624304871170d09b2e59ed612f3a4d436fe0f07362dcaec2
|
||||
|
@ -39,7 +39,7 @@ Changes from v1:
|
||||
|
||||
--- a/drivers/gpu/drm/drm_probe_helper.c
|
||||
+++ b/drivers/gpu/drm/drm_probe_helper.c
|
||||
@@ -795,6 +795,86 @@ void drm_kms_helper_poll_fini(struct drm
|
||||
@@ -796,6 +796,86 @@ void drm_kms_helper_poll_fini(struct drm
|
||||
}
|
||||
EXPORT_SYMBOL(drm_kms_helper_poll_fini);
|
||||
|
||||
@ -126,7 +126,7 @@ Changes from v1:
|
||||
/**
|
||||
* drm_helper_hpd_irq_event - hotplug processing
|
||||
* @dev: drm_device
|
||||
@@ -808,9 +888,10 @@ EXPORT_SYMBOL(drm_kms_helper_poll_fini);
|
||||
@@ -809,9 +889,10 @@ EXPORT_SYMBOL(drm_kms_helper_poll_fini);
|
||||
* interrupts for each connector.
|
||||
*
|
||||
* Drivers which support hotplug interrupts for each connector individually and
|
||||
@ -140,7 +140,7 @@ Changes from v1:
|
||||
*
|
||||
* This function must be called from process context with no mode
|
||||
* setting locks held.
|
||||
@@ -822,9 +903,7 @@ bool drm_helper_hpd_irq_event(struct drm
|
||||
@@ -823,9 +904,7 @@ bool drm_helper_hpd_irq_event(struct drm
|
||||
{
|
||||
struct drm_connector *connector;
|
||||
struct drm_connector_list_iter conn_iter;
|
||||
@ -150,7 +150,7 @@ Changes from v1:
|
||||
|
||||
if (!dev->mode_config.poll_enabled)
|
||||
return false;
|
||||
@@ -832,37 +911,8 @@ bool drm_helper_hpd_irq_event(struct drm
|
||||
@@ -833,37 +912,8 @@ bool drm_helper_hpd_irq_event(struct drm
|
||||
mutex_lock(&dev->mode_config.mutex);
|
||||
drm_connector_list_iter_begin(dev, &conn_iter);
|
||||
drm_for_each_connector_iter(connector, &conn_iter) {
|
||||
|
@ -30043,7 +30043,7 @@ index 11eae3e3a944..5a90727064ee 100644
|
||||
+dtb-$(CONFIG_ARCH_BCM2835) += bcm2710-rpi-cm3.dtb
|
||||
+dtb-$(CONFIG_ARCH_BCM2835) += bcm2711-rpi-cm4.dtb
|
||||
|
||||
subdir-y += bcm4908
|
||||
subdir-y += bcmbca
|
||||
subdir-y += northstar2
|
||||
subdir-y += stingray
|
||||
+
|
||||
|
@ -11,11 +11,11 @@ This matches nand-controller.yaml requirements.
|
||||
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
|
||||
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
---
|
||||
arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi | 2 +-
|
||||
arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
--- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi
|
||||
+++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi
|
||||
--- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi
|
||||
+++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi
|
||||
@@ -298,7 +298,7 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
@ -1,81 +0,0 @@
|
||||
From d0e68d354f345873e15876a7b35be1baaf5e3ec9 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
|
||||
Date: Fri, 5 Nov 2021 11:14:13 +0100
|
||||
Subject: [PATCH] arm64: dts: broadcom: bcm4908: add DT for Netgear RAXE500
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
It's a home router based on BCM4908 SoC. It has: 1 GiB of RAM, 512 MiB
|
||||
NAND flash, 6 Ethernet ports and 3 x BCM43684 (WiFi). One of Ethernet
|
||||
ports is "2.5 G Multi-Gig port" that isn't described yet (it isn't known
|
||||
how it's wired up).
|
||||
|
||||
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
|
||||
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
---
|
||||
arch/arm64/boot/dts/broadcom/bcm4908/Makefile | 1 +
|
||||
.../bcm4908/bcm4908-netgear-raxe500.dts | 50 +++++++++++++++++++
|
||||
2 files changed, 51 insertions(+)
|
||||
create mode 100644 arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-netgear-raxe500.dts
|
||||
|
||||
--- a/arch/arm64/boot/dts/broadcom/bcm4908/Makefile
|
||||
+++ b/arch/arm64/boot/dts/broadcom/bcm4908/Makefile
|
||||
@@ -2,3 +2,4 @@
|
||||
dtb-$(CONFIG_ARCH_BCM4908) += bcm4906-netgear-r8000p.dtb
|
||||
dtb-$(CONFIG_ARCH_BCM4908) += bcm4906-tplink-archer-c2300-v1.dtb
|
||||
dtb-$(CONFIG_ARCH_BCM4908) += bcm4908-asus-gt-ac5300.dtb
|
||||
+dtb-$(CONFIG_ARCH_BCM4908) += bcm4908-netgear-raxe500.dtb
|
||||
--- /dev/null
|
||||
+++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-netgear-raxe500.dts
|
||||
@@ -0,0 +1,50 @@
|
||||
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
+
|
||||
+#include "bcm4908.dtsi"
|
||||
+
|
||||
+/ {
|
||||
+ compatible = "netgear,raxe500", "brcm,bcm4908";
|
||||
+ model = "Netgear RAXE500";
|
||||
+
|
||||
+ memory@0 {
|
||||
+ device_type = "memory";
|
||||
+ reg = <0x00 0x00 0x00 0x40000000>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&ehci {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&ohci {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&xhci {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&ports {
|
||||
+ port@0 {
|
||||
+ label = "lan4";
|
||||
+ };
|
||||
+
|
||||
+ port@1 {
|
||||
+ label = "lan3";
|
||||
+ };
|
||||
+
|
||||
+ port@2 {
|
||||
+ label = "lan2";
|
||||
+ };
|
||||
+
|
||||
+ port@3 {
|
||||
+ label = "lan1";
|
||||
+ };
|
||||
+
|
||||
+ port@7 {
|
||||
+ reg = <7>;
|
||||
+ phy-mode = "internal";
|
||||
+ phy-handle = <&phy12>;
|
||||
+ label = "wan";
|
||||
+ };
|
||||
+};
|
@ -11,11 +11,11 @@ Describe pinmux block with its maps.
|
||||
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
|
||||
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
---
|
||||
.../boot/dts/broadcom/bcm4908/bcm4908.dtsi | 135 ++++++++++++++++++
|
||||
.../boot/dts/broadcom/bcmbca/bcm4908.dtsi | 135 ++++++++++++++++++
|
||||
1 file changed, 135 insertions(+)
|
||||
|
||||
--- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi
|
||||
+++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi
|
||||
--- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi
|
||||
+++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi
|
||||
@@ -289,6 +289,141 @@
|
||||
gpio-controller;
|
||||
};
|
||||
|
@ -12,11 +12,11 @@ binding which matches the first SoC with that block.
|
||||
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
|
||||
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
---
|
||||
arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi | 9 +++++++++
|
||||
arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi | 9 +++++++++
|
||||
1 file changed, 9 insertions(+)
|
||||
|
||||
--- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi
|
||||
+++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi
|
||||
--- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi
|
||||
+++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi
|
||||
@@ -278,6 +278,15 @@
|
||||
twd: timer-mfd@400 {
|
||||
compatible = "brcm,bcm4908-twd", "simple-mfd", "syscon";
|
||||
|
@ -11,11 +11,11 @@ BCM4908 uses the same I2C hw as BCM63xx / BCM67xx / BCM68xx SoCs.
|
||||
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
|
||||
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
---
|
||||
arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi | 9 +++++++++
|
||||
arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi | 9 +++++++++
|
||||
1 file changed, 9 insertions(+)
|
||||
|
||||
--- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi
|
||||
+++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi
|
||||
--- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi
|
||||
+++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi
|
||||
@@ -458,6 +458,15 @@
|
||||
};
|
||||
};
|
||||
|
@ -1,199 +0,0 @@
|
||||
From 076dcedc6628c6bf92bd17bfcf8fb7b1af62bfb6 Mon Sep 17 00:00:00 2001
|
||||
From: William Zhang <william.zhang@broadcom.com>
|
||||
Date: Wed, 1 Jun 2022 15:56:51 -0700
|
||||
Subject: [PATCH] arm64: dts: Add DTS files for bcmbca SoC BCM63158
|
||||
|
||||
Add DTS for ARMv8 based broadband SoC BCM63158. bcm63158.dtsi is the
|
||||
SoC description DTS header and bcm963158.dts is a simple DTS file for
|
||||
Broadcom BCM963158 Reference board that only enable the UART port.
|
||||
|
||||
Signed-off-by: William Zhang <william.zhang@broadcom.com>
|
||||
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
---
|
||||
arch/arm64/boot/dts/broadcom/Makefile | 1 +
|
||||
arch/arm64/boot/dts/broadcom/bcmbca/Makefile | 2 +
|
||||
.../boot/dts/broadcom/bcmbca/bcm63158.dtsi | 128 ++++++++++++++++++
|
||||
.../boot/dts/broadcom/bcmbca/bcm963158.dts | 30 ++++
|
||||
4 files changed, 161 insertions(+)
|
||||
create mode 100644 arch/arm64/boot/dts/broadcom/bcmbca/Makefile
|
||||
create mode 100644 arch/arm64/boot/dts/broadcom/bcmbca/bcm63158.dtsi
|
||||
create mode 100644 arch/arm64/boot/dts/broadcom/bcmbca/bcm963158.dts
|
||||
|
||||
--- a/arch/arm64/boot/dts/broadcom/Makefile
|
||||
+++ b/arch/arm64/boot/dts/broadcom/Makefile
|
||||
@@ -7,5 +7,6 @@ dtb-$(CONFIG_ARCH_BCM2835) += bcm2711-rp
|
||||
bcm2837-rpi-cm3-io3.dtb
|
||||
|
||||
subdir-y += bcm4908
|
||||
+subdir-y += bcmbca
|
||||
subdir-y += northstar2
|
||||
subdir-y += stingray
|
||||
--- /dev/null
|
||||
+++ b/arch/arm64/boot/dts/broadcom/bcmbca/Makefile
|
||||
@@ -0,0 +1,2 @@
|
||||
+# SPDX-License-Identifier: GPL-2.0
|
||||
+dtb-$(CONFIG_ARCH_BCMBCA) += bcm963158.dtb
|
||||
--- /dev/null
|
||||
+++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm63158.dtsi
|
||||
@@ -0,0 +1,128 @@
|
||||
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
+/*
|
||||
+ * Copyright 2022 Broadcom Ltd.
|
||||
+ */
|
||||
+
|
||||
+#include <dt-bindings/interrupt-controller/irq.h>
|
||||
+#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
+
|
||||
+/ {
|
||||
+ compatible = "brcm,bcm63158", "brcm,bcmbca";
|
||||
+ #address-cells = <2>;
|
||||
+ #size-cells = <2>;
|
||||
+
|
||||
+ interrupt-parent = <&gic>;
|
||||
+
|
||||
+ cpus {
|
||||
+ #address-cells = <2>;
|
||||
+ #size-cells = <0>;
|
||||
+
|
||||
+ B53_0: cpu@0 {
|
||||
+ compatible = "brcm,brahma-b53";
|
||||
+ device_type = "cpu";
|
||||
+ reg = <0x0 0x0>;
|
||||
+ next-level-cache = <&L2_0>;
|
||||
+ enable-method = "psci";
|
||||
+ };
|
||||
+
|
||||
+ B53_1: cpu@1 {
|
||||
+ compatible = "brcm,brahma-b53";
|
||||
+ device_type = "cpu";
|
||||
+ reg = <0x0 0x1>;
|
||||
+ next-level-cache = <&L2_0>;
|
||||
+ enable-method = "psci";
|
||||
+ };
|
||||
+
|
||||
+ B53_2: cpu@2 {
|
||||
+ compatible = "brcm,brahma-b53";
|
||||
+ device_type = "cpu";
|
||||
+ reg = <0x0 0x2>;
|
||||
+ next-level-cache = <&L2_0>;
|
||||
+ enable-method = "psci";
|
||||
+ };
|
||||
+
|
||||
+ B53_3: cpu@3 {
|
||||
+ compatible = "brcm,brahma-b53";
|
||||
+ device_type = "cpu";
|
||||
+ reg = <0x0 0x3>;
|
||||
+ next-level-cache = <&L2_0>;
|
||||
+ enable-method = "psci";
|
||||
+ };
|
||||
+
|
||||
+ L2_0: l2-cache0 {
|
||||
+ compatible = "cache";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ timer {
|
||||
+ compatible = "arm,armv8-timer";
|
||||
+ interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
|
||||
+ <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
|
||||
+ <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
|
||||
+ <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
|
||||
+ };
|
||||
+
|
||||
+ pmu: pmu {
|
||||
+ compatible = "arm,cortex-a53-pmu";
|
||||
+ interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
|
||||
+ <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>,
|
||||
+ <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
|
||||
+ <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ interrupt-affinity = <&B53_0>, <&B53_1>,
|
||||
+ <&B53_2>, <&B53_3>;
|
||||
+ };
|
||||
+
|
||||
+ clocks: clocks {
|
||||
+ periph_clk: periph-clk {
|
||||
+ compatible = "fixed-clock";
|
||||
+ #clock-cells = <0>;
|
||||
+ clock-frequency = <200000000>;
|
||||
+ };
|
||||
+ uart_clk: uart-clk {
|
||||
+ compatible = "fixed-factor-clock";
|
||||
+ #clock-cells = <0>;
|
||||
+ clocks = <&periph_clk>;
|
||||
+ clock-div = <4>;
|
||||
+ clock-mult = <1>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ psci {
|
||||
+ compatible = "arm,psci-0.2";
|
||||
+ method = "smc";
|
||||
+ };
|
||||
+
|
||||
+ axi@81000000 {
|
||||
+ compatible = "simple-bus";
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <1>;
|
||||
+ ranges = <0x0 0x0 0x81000000 0x8000>;
|
||||
+
|
||||
+ gic: interrupt-controller@1000 {
|
||||
+ compatible = "arm,gic-400";
|
||||
+ #interrupt-cells = <3>;
|
||||
+ interrupt-controller;
|
||||
+ interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
|
||||
+ reg = <0x1000 0x1000>,
|
||||
+ <0x2000 0x2000>,
|
||||
+ <0x4000 0x2000>,
|
||||
+ <0x6000 0x2000>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ bus@ff800000 {
|
||||
+ compatible = "simple-bus";
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <1>;
|
||||
+ ranges = <0x0 0x0 0xff800000 0x800000>;
|
||||
+
|
||||
+ uart0: serial@12000 {
|
||||
+ compatible = "arm,pl011", "arm,primecell";
|
||||
+ reg = <0x12000 0x1000>;
|
||||
+ interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ clocks = <&uart_clk>, <&uart_clk>;
|
||||
+ clock-names = "uartclk", "apb_pclk";
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
--- /dev/null
|
||||
+++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm963158.dts
|
||||
@@ -0,0 +1,30 @@
|
||||
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
+/*
|
||||
+ * Copyright 2022 Broadcom Ltd.
|
||||
+ */
|
||||
+
|
||||
+/dts-v1/;
|
||||
+
|
||||
+#include "bcm63158.dtsi"
|
||||
+
|
||||
+/ {
|
||||
+ model = "Broadcom BCM963158 Reference Board";
|
||||
+ compatible = "brcm,bcm963158", "brcm,bcm63158", "brcm,bcmbca";
|
||||
+
|
||||
+ aliases {
|
||||
+ serial0 = &uart0;
|
||||
+ };
|
||||
+
|
||||
+ chosen {
|
||||
+ stdout-path = "serial0:115200n8";
|
||||
+ };
|
||||
+
|
||||
+ memory@0 {
|
||||
+ device_type = "memory";
|
||||
+ reg = <0x0 0x0 0x0 0x08000000>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&uart0 {
|
||||
+ status = "okay";
|
||||
+};
|
@ -1,191 +0,0 @@
|
||||
From 1ba56aeb391401c4cb2126c39f90b3cdbfabdb3f Mon Sep 17 00:00:00 2001
|
||||
From: William Zhang <william.zhang@broadcom.com>
|
||||
Date: Wed, 1 Jun 2022 13:17:34 -0700
|
||||
Subject: [PATCH] arm64: dts: Add DTS files for bcmbca SoC BCM4912
|
||||
|
||||
Add DTS for ARMv8 based broadband SoC BCM4912. bcm4912.dtsi is the
|
||||
SoC description DTS header and bcm94912.dts is a simple DTS file for
|
||||
Broadcom BCM94912 Reference board that only enable the UART port.
|
||||
|
||||
Signed-off-by: William Zhang <william.zhang@broadcom.com>
|
||||
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
|
||||
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
---
|
||||
arch/arm64/boot/dts/broadcom/bcmbca/Makefile | 3 +-
|
||||
.../boot/dts/broadcom/bcmbca/bcm4912.dtsi | 128 ++++++++++++++++++
|
||||
.../boot/dts/broadcom/bcmbca/bcm94912.dts | 30 ++++
|
||||
3 files changed, 160 insertions(+), 1 deletion(-)
|
||||
create mode 100644 arch/arm64/boot/dts/broadcom/bcmbca/bcm4912.dtsi
|
||||
create mode 100644 arch/arm64/boot/dts/broadcom/bcmbca/bcm94912.dts
|
||||
|
||||
--- a/arch/arm64/boot/dts/broadcom/bcmbca/Makefile
|
||||
+++ b/arch/arm64/boot/dts/broadcom/bcmbca/Makefile
|
||||
@@ -1,2 +1,3 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
-dtb-$(CONFIG_ARCH_BCMBCA) += bcm963158.dtb
|
||||
+dtb-$(CONFIG_ARCH_BCMBCA) += bcm94912.dtb \
|
||||
+ bcm963158.dtb
|
||||
--- /dev/null
|
||||
+++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4912.dtsi
|
||||
@@ -0,0 +1,128 @@
|
||||
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
+/*
|
||||
+ * Copyright 2022 Broadcom Ltd.
|
||||
+ */
|
||||
+
|
||||
+#include <dt-bindings/interrupt-controller/irq.h>
|
||||
+#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
+
|
||||
+/ {
|
||||
+ compatible = "brcm,bcm4912", "brcm,bcmbca";
|
||||
+ #address-cells = <2>;
|
||||
+ #size-cells = <2>;
|
||||
+
|
||||
+ interrupt-parent = <&gic>;
|
||||
+
|
||||
+ cpus {
|
||||
+ #address-cells = <2>;
|
||||
+ #size-cells = <0>;
|
||||
+
|
||||
+ B53_0: cpu@0 {
|
||||
+ compatible = "brcm,brahma-b53";
|
||||
+ device_type = "cpu";
|
||||
+ reg = <0x0 0x0>;
|
||||
+ next-level-cache = <&L2_0>;
|
||||
+ enable-method = "psci";
|
||||
+ };
|
||||
+
|
||||
+ B53_1: cpu@1 {
|
||||
+ compatible = "brcm,brahma-b53";
|
||||
+ device_type = "cpu";
|
||||
+ reg = <0x0 0x1>;
|
||||
+ next-level-cache = <&L2_0>;
|
||||
+ enable-method = "psci";
|
||||
+ };
|
||||
+
|
||||
+ B53_2: cpu@2 {
|
||||
+ compatible = "brcm,brahma-b53";
|
||||
+ device_type = "cpu";
|
||||
+ reg = <0x0 0x2>;
|
||||
+ next-level-cache = <&L2_0>;
|
||||
+ enable-method = "psci";
|
||||
+ };
|
||||
+
|
||||
+ B53_3: cpu@3 {
|
||||
+ compatible = "brcm,brahma-b53";
|
||||
+ device_type = "cpu";
|
||||
+ reg = <0x0 0x3>;
|
||||
+ next-level-cache = <&L2_0>;
|
||||
+ enable-method = "psci";
|
||||
+ };
|
||||
+
|
||||
+ L2_0: l2-cache0 {
|
||||
+ compatible = "cache";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ timer {
|
||||
+ compatible = "arm,armv8-timer";
|
||||
+ interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
|
||||
+ <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
|
||||
+ <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
|
||||
+ <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
|
||||
+ };
|
||||
+
|
||||
+ pmu: pmu {
|
||||
+ compatible = "arm,cortex-a53-pmu";
|
||||
+ interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
|
||||
+ <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
|
||||
+ <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
|
||||
+ <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ interrupt-affinity = <&B53_0>, <&B53_1>,
|
||||
+ <&B53_2>, <&B53_3>;
|
||||
+ };
|
||||
+
|
||||
+ clocks: clocks {
|
||||
+ periph_clk: periph-clk {
|
||||
+ compatible = "fixed-clock";
|
||||
+ #clock-cells = <0>;
|
||||
+ clock-frequency = <200000000>;
|
||||
+ };
|
||||
+ uart_clk: uart-clk {
|
||||
+ compatible = "fixed-factor-clock";
|
||||
+ #clock-cells = <0>;
|
||||
+ clocks = <&periph_clk>;
|
||||
+ clock-div = <4>;
|
||||
+ clock-mult = <1>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ psci {
|
||||
+ compatible = "arm,psci-0.2";
|
||||
+ method = "smc";
|
||||
+ };
|
||||
+
|
||||
+ axi@81000000 {
|
||||
+ compatible = "simple-bus";
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <1>;
|
||||
+ ranges = <0x0 0x0 0x81000000 0x8000>;
|
||||
+
|
||||
+ gic: interrupt-controller@1000 {
|
||||
+ compatible = "arm,gic-400";
|
||||
+ #interrupt-cells = <3>;
|
||||
+ interrupt-controller;
|
||||
+ interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
|
||||
+ reg = <0x1000 0x1000>,
|
||||
+ <0x2000 0x2000>,
|
||||
+ <0x4000 0x2000>,
|
||||
+ <0x6000 0x2000>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ bus@ff800000 {
|
||||
+ compatible = "simple-bus";
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <1>;
|
||||
+ ranges = <0x0 0x0 0xff800000 0x800000>;
|
||||
+
|
||||
+ uart0: serial@12000 {
|
||||
+ compatible = "arm,pl011", "arm,primecell";
|
||||
+ reg = <0x12000 0x1000>;
|
||||
+ interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ clocks = <&uart_clk>, <&uart_clk>;
|
||||
+ clock-names = "uartclk", "apb_pclk";
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
--- /dev/null
|
||||
+++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm94912.dts
|
||||
@@ -0,0 +1,30 @@
|
||||
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
+/*
|
||||
+ * Copyright 2022 Broadcom Ltd.
|
||||
+ */
|
||||
+
|
||||
+/dts-v1/;
|
||||
+
|
||||
+#include "bcm4912.dtsi"
|
||||
+
|
||||
+/ {
|
||||
+ model = "Broadcom BCM94912 Reference Board";
|
||||
+ compatible = "brcm,bcm94912", "brcm,bcm4912", "brcm,bcmbca";
|
||||
+
|
||||
+ aliases {
|
||||
+ serial0 = &uart0;
|
||||
+ };
|
||||
+
|
||||
+ chosen {
|
||||
+ stdout-path = "serial0:115200n8";
|
||||
+ };
|
||||
+
|
||||
+ memory@0 {
|
||||
+ device_type = "memory";
|
||||
+ reg = <0x0 0x0 0x0 0x08000000>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&uart0 {
|
||||
+ status = "okay";
|
||||
+};
|
@ -1,184 +0,0 @@
|
||||
From e663e06bd3f21e64bc2163910f626af68add6308 Mon Sep 17 00:00:00 2001
|
||||
From: Anand Gore <anand.gore@broadcom.com>
|
||||
Date: Wed, 1 Jun 2022 13:19:56 -0700
|
||||
Subject: [PATCH] ARM64: dts: Add DTS files for bcmbca SoC BCM6858
|
||||
|
||||
Add DTS for ARMv8 based broadband SoC BCM6858. bcm6858.dtsi is the SoC
|
||||
description DTS header and bcm96858.dts is a simple DTS file for
|
||||
Broadcom BCM96858 Reference board that only enables the UART port.
|
||||
|
||||
Signed-off-by: Anand Gore <anand.gore@broadcom.com>
|
||||
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
---
|
||||
arch/arm64/boot/dts/broadcom/bcmbca/Makefile | 3 +-
|
||||
.../boot/dts/broadcom/bcmbca/bcm6858.dtsi | 121 ++++++++++++++++++
|
||||
.../boot/dts/broadcom/bcmbca/bcm96858.dts | 30 +++++
|
||||
3 files changed, 153 insertions(+), 1 deletion(-)
|
||||
create mode 100644 arch/arm64/boot/dts/broadcom/bcmbca/bcm6858.dtsi
|
||||
create mode 100644 arch/arm64/boot/dts/broadcom/bcmbca/bcm96858.dts
|
||||
|
||||
--- a/arch/arm64/boot/dts/broadcom/bcmbca/Makefile
|
||||
+++ b/arch/arm64/boot/dts/broadcom/bcmbca/Makefile
|
||||
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
dtb-$(CONFIG_ARCH_BCMBCA) += bcm94912.dtb \
|
||||
- bcm963158.dtb
|
||||
+ bcm963158.dtb \
|
||||
+ bcm96858.dtb
|
||||
--- /dev/null
|
||||
+++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm6858.dtsi
|
||||
@@ -0,0 +1,121 @@
|
||||
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
+/*
|
||||
+ * Copyright 2022 Broadcom Ltd.
|
||||
+ */
|
||||
+
|
||||
+#include <dt-bindings/interrupt-controller/irq.h>
|
||||
+#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
+
|
||||
+/ {
|
||||
+ compatible = "brcm,bcm6858", "brcm,bcmbca";
|
||||
+ #address-cells = <2>;
|
||||
+ #size-cells = <2>;
|
||||
+
|
||||
+ interrupt-parent = <&gic>;
|
||||
+
|
||||
+ cpus {
|
||||
+ #address-cells = <2>;
|
||||
+ #size-cells = <0>;
|
||||
+
|
||||
+ B53_0: cpu@0 {
|
||||
+ compatible = "brcm,brahma-b53";
|
||||
+ device_type = "cpu";
|
||||
+ reg = <0x0 0x0>;
|
||||
+ next-level-cache = <&L2_0>;
|
||||
+ enable-method = "psci";
|
||||
+ };
|
||||
+
|
||||
+ B53_1: cpu@1 {
|
||||
+ compatible = "brcm,brahma-b53";
|
||||
+ device_type = "cpu";
|
||||
+ reg = <0x0 0x1>;
|
||||
+ next-level-cache = <&L2_0>;
|
||||
+ enable-method = "psci";
|
||||
+ };
|
||||
+
|
||||
+ B53_2: cpu@2 {
|
||||
+ compatible = "brcm,brahma-b53";
|
||||
+ device_type = "cpu";
|
||||
+ reg = <0x0 0x2>;
|
||||
+ next-level-cache = <&L2_0>;
|
||||
+ enable-method = "psci";
|
||||
+ };
|
||||
+
|
||||
+ B53_3: cpu@3 {
|
||||
+ compatible = "brcm,brahma-b53";
|
||||
+ device_type = "cpu";
|
||||
+ reg = <0x0 0x3>;
|
||||
+ next-level-cache = <&L2_0>;
|
||||
+ enable-method = "psci";
|
||||
+ };
|
||||
+ L2_0: l2-cache0 {
|
||||
+ compatible = "cache";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ timer {
|
||||
+ compatible = "arm,armv8-timer";
|
||||
+ interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
|
||||
+ <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
|
||||
+ <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
|
||||
+ <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
|
||||
+ };
|
||||
+
|
||||
+ pmu: pmu {
|
||||
+ compatible = "arm,armv8-pmuv3";
|
||||
+ interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
|
||||
+ <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>,
|
||||
+ <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
|
||||
+ <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ interrupt-affinity = <&B53_0>, <&B53_1>,
|
||||
+ <&B53_2>, <&B53_3>;
|
||||
+ };
|
||||
+
|
||||
+ clocks: clocks {
|
||||
+ periph_clk:periph-clk {
|
||||
+ compatible = "fixed-clock";
|
||||
+ #clock-cells = <0>;
|
||||
+ clock-frequency = <200000000>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ psci {
|
||||
+ compatible = "arm,psci-0.2";
|
||||
+ method = "smc";
|
||||
+ };
|
||||
+
|
||||
+ axi@81000000 {
|
||||
+ compatible = "simple-bus";
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <1>;
|
||||
+ ranges = <0x0 0x0 0x81000000 0x8000>;
|
||||
+
|
||||
+ gic: interrupt-controller@1000 {
|
||||
+ compatible = "arm,gic-400";
|
||||
+ #interrupt-cells = <3>;
|
||||
+ interrupt-controller;
|
||||
+ reg = <0x1000 0x1000>, /* GICD */
|
||||
+ <0x2000 0x2000>, /* GICC */
|
||||
+ <0x4000 0x2000>, /* GICH */
|
||||
+ <0x6000 0x2000>; /* GICV */
|
||||
+ interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) |
|
||||
+ IRQ_TYPE_LEVEL_HIGH)>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ bus@ff800000 {
|
||||
+ compatible = "simple-bus";
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <1>;
|
||||
+ ranges = <0x0 0x0 0xff800000 0x62000>;
|
||||
+
|
||||
+ uart0: serial@640 {
|
||||
+ compatible = "brcm,bcm6345-uart";
|
||||
+ reg = <0x640 0x18>;
|
||||
+ interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ clocks = <&periph_clk>;
|
||||
+ clock-names = "refclk";
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
--- /dev/null
|
||||
+++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm96858.dts
|
||||
@@ -0,0 +1,30 @@
|
||||
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
+/*
|
||||
+ * Copyright 2022 Broadcom Ltd.
|
||||
+ */
|
||||
+
|
||||
+/dts-v1/;
|
||||
+
|
||||
+#include "bcm6858.dtsi"
|
||||
+
|
||||
+/ {
|
||||
+ model = "Broadcom BCM96858 Reference Board";
|
||||
+ compatible = "brcm,bcm96858", "brcm,bcm6858", "brcm,bcmbca";
|
||||
+
|
||||
+ aliases {
|
||||
+ serial0 = &uart0;
|
||||
+ };
|
||||
+
|
||||
+ chosen {
|
||||
+ stdout-path = "serial0:115200n8";
|
||||
+ };
|
||||
+
|
||||
+ memory@0 {
|
||||
+ device_type = "memory";
|
||||
+ reg = <0x0 0x0 0x0 0x08000000>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&uart0 {
|
||||
+ status = "okay";
|
||||
+};
|
@ -19,9 +19,9 @@ Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
|
||||
--- a/arch/arm64/boot/dts/broadcom/bcmbca/Makefile
|
||||
+++ b/arch/arm64/boot/dts/broadcom/bcmbca/Makefile
|
||||
@@ -1,4 +1,5 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
dtb-$(CONFIG_ARCH_BCMBCA) += bcm94912.dtb \
|
||||
@@ -7,4 +7,5 @@ dtb-$(CONFIG_ARCH_BCMBCA) += \
|
||||
bcm4912-asus-gt-ax6000.dtb \
|
||||
bcm94912.dtb \
|
||||
bcm963158.dtb \
|
||||
- bcm96858.dtb
|
||||
+ bcm96858.dtb \
|
||||
|
@ -19,8 +19,8 @@ Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
|
||||
--- a/arch/arm64/boot/dts/broadcom/bcmbca/Makefile
|
||||
+++ b/arch/arm64/boot/dts/broadcom/bcmbca/Makefile
|
||||
@@ -2,4 +2,5 @@
|
||||
dtb-$(CONFIG_ARCH_BCMBCA) += bcm94912.dtb \
|
||||
@@ -8,4 +8,5 @@ dtb-$(CONFIG_ARCH_BCMBCA) += \
|
||||
bcm94912.dtb \
|
||||
bcm963158.dtb \
|
||||
bcm96858.dtb \
|
||||
- bcm963146.dtb
|
||||
|
@ -19,7 +19,7 @@ Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
|
||||
--- a/arch/arm64/boot/dts/broadcom/bcmbca/Makefile
|
||||
+++ b/arch/arm64/boot/dts/broadcom/bcmbca/Makefile
|
||||
@@ -3,4 +3,5 @@ dtb-$(CONFIG_ARCH_BCMBCA) += bcm94912.dt
|
||||
@@ -9,4 +9,5 @@ dtb-$(CONFIG_ARCH_BCMBCA) += \
|
||||
bcm963158.dtb \
|
||||
bcm96858.dtb \
|
||||
bcm963146.dtb \
|
||||
|
@ -9,12 +9,12 @@ The node names should be generic and DT schema expects certain pattern
|
||||
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
|
||||
Link: https://lore.kernel.org/r/20220616005333.18491-6-krzysztof.kozlowski@linaro.org
|
||||
---
|
||||
.../broadcom/bcm4908/bcm4906-tplink-archer-c2300-v1.dts | 8 ++++----
|
||||
.../boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts | 8 ++++----
|
||||
.../broadcom/bcmbca/bcm4906-tplink-archer-c2300-v1.dts | 8 ++++----
|
||||
.../boot/dts/broadcom/bcmbca/bcm4908-asus-gt-ac5300.dts | 8 ++++----
|
||||
2 files changed, 8 insertions(+), 8 deletions(-)
|
||||
|
||||
--- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-tplink-archer-c2300-v1.dts
|
||||
+++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-tplink-archer-c2300-v1.dts
|
||||
--- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm4906-tplink-archer-c2300-v1.dts
|
||||
+++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4906-tplink-archer-c2300-v1.dts
|
||||
@@ -83,25 +83,25 @@
|
||||
compatible = "gpio-keys-polled";
|
||||
poll-interval = <100>;
|
||||
@ -45,8 +45,8 @@ Link: https://lore.kernel.org/r/20220616005333.18491-6-krzysztof.kozlowski@linar
|
||||
label = "Reset";
|
||||
linux,code = <KEY_RESTART>;
|
||||
gpios = <&gpio0 23 GPIO_ACTIVE_LOW>;
|
||||
--- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts
|
||||
+++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts
|
||||
--- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908-asus-gt-ac5300.dts
|
||||
+++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908-asus-gt-ac5300.dts
|
||||
@@ -18,25 +18,25 @@
|
||||
compatible = "gpio-keys-polled";
|
||||
poll-interval = <100>;
|
||||
|
@ -11,11 +11,11 @@ Fixes: c8b404fb05dc ("arm64: dts: broadcom: bcm4908: add BCM4906 Netgear R8000P
|
||||
Signed-off-by: William Zhang <william.zhang@broadcom.com>
|
||||
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
---
|
||||
arch/arm64/boot/dts/broadcom/bcm4908/bcm4906.dtsi | 8 ++++++++
|
||||
arch/arm64/boot/dts/broadcom/bcmbca/bcm4906.dtsi | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
--- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906.dtsi
|
||||
+++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906.dtsi
|
||||
--- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm4906.dtsi
|
||||
+++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4906.dtsi
|
||||
@@ -17,6 +17,14 @@
|
||||
<GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
|
||||
};
|
||||
|
@ -1,54 +0,0 @@
|
||||
From f3f575c4bef95384e68de552c7b29938fd0d9201 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
|
||||
Date: Wed, 13 Jul 2022 22:03:51 +0200
|
||||
Subject: [PATCH] arm64: dts: Add base DTS file for bcmbca device Asus
|
||||
GT-AX6000
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
It's a home router with 1 GiB of RAM, 6 Ethernet ports, 2 USB ports.
|
||||
|
||||
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
|
||||
Acked-by: William Zhang <william.zhang@broadcom.com>
|
||||
Link: https://lore.kernel.org/r/20220713200351.28526-2-zajec5@gmail.com
|
||||
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
---
|
||||
arch/arm64/boot/dts/broadcom/bcmbca/Makefile | 4 +++-
|
||||
.../bcmbca/bcm4912-asus-gt-ax6000.dts | 19 +++++++++++++++++++
|
||||
2 files changed, 22 insertions(+), 1 deletion(-)
|
||||
create mode 100644 arch/arm64/boot/dts/broadcom/bcmbca/bcm4912-asus-gt-ax6000.dts
|
||||
|
||||
--- a/arch/arm64/boot/dts/broadcom/bcmbca/Makefile
|
||||
+++ b/arch/arm64/boot/dts/broadcom/bcmbca/Makefile
|
||||
@@ -1,5 +1,7 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
-dtb-$(CONFIG_ARCH_BCMBCA) += bcm94912.dtb \
|
||||
+dtb-$(CONFIG_ARCH_BCMBCA) += \
|
||||
+ bcm4912-asus-gt-ax6000.dtb \
|
||||
+ bcm94912.dtb \
|
||||
bcm963158.dtb \
|
||||
bcm96858.dtb \
|
||||
bcm963146.dtb \
|
||||
--- /dev/null
|
||||
+++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4912-asus-gt-ax6000.dts
|
||||
@@ -0,0 +1,19 @@
|
||||
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
+
|
||||
+/dts-v1/;
|
||||
+
|
||||
+#include "bcm4912.dtsi"
|
||||
+
|
||||
+/ {
|
||||
+ compatible = "asus,gt-ax6000", "brcm,bcm4912", "brcm,bcmbca";
|
||||
+ model = "Asus GT-AX6000";
|
||||
+
|
||||
+ memory@0 {
|
||||
+ device_type = "memory";
|
||||
+ reg = <0x00 0x00 0x00 0x40000000>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&uart0 {
|
||||
+ status = "okay";
|
||||
+};
|
@ -12,11 +12,11 @@ Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
|
||||
Link: https://lore.kernel.org/r/20220718132100.13277-1-zajec5@gmail.com
|
||||
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
---
|
||||
.../boot/dts/broadcom/bcm4908/bcm4908.dtsi | 75 +++++++++++++++++++
|
||||
.../boot/dts/broadcom/bcmbca/bcm4908.dtsi | 75 +++++++++++++++++++
|
||||
1 file changed, 75 insertions(+)
|
||||
|
||||
--- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi
|
||||
+++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi
|
||||
--- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi
|
||||
+++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi
|
||||
@@ -352,6 +352,61 @@
|
||||
groups = "led_9_grp_a";
|
||||
};
|
||||
|
@ -13,11 +13,11 @@ Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
|
||||
Link: https://lore.kernel.org/r/20220718132100.13277-2-zajec5@gmail.com
|
||||
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
---
|
||||
arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi | 8 ++++++++
|
||||
arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
--- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi
|
||||
+++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi
|
||||
--- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi
|
||||
+++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi
|
||||
@@ -517,6 +517,14 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
@ -12,11 +12,11 @@ Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
|
||||
Link: https://lore.kernel.org/r/20220718132100.13277-3-zajec5@gmail.com
|
||||
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
---
|
||||
.../bcm4908/bcm4908-asus-gt-ac5300.dts | 48 +++++++++++++++++++
|
||||
.../bcmbca/bcm4908-asus-gt-ac5300.dts | 48 +++++++++++++++++++
|
||||
1 file changed, 48 insertions(+)
|
||||
|
||||
--- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts
|
||||
+++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts
|
||||
--- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908-asus-gt-ac5300.dts
|
||||
+++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908-asus-gt-ac5300.dts
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
|
@ -14,14 +14,14 @@ Acked-by: Rafał Miłecki <rafal@milecki.pl>
|
||||
Link: https://lore.kernel.org/r/20220803175455.47638-4-william.zhang@broadcom.com
|
||||
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
---
|
||||
arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-netgear-r8000p.dts | 2 +-
|
||||
.../dts/broadcom/bcm4908/bcm4906-tplink-archer-c2300-v1.dts | 2 +-
|
||||
arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts | 2 +-
|
||||
.../arm64/boot/dts/broadcom/bcm4908/bcm4908-netgear-raxe500.dts | 2 +-
|
||||
arch/arm64/boot/dts/broadcom/bcmbca/bcm4906-netgear-r8000p.dts | 2 +-
|
||||
.../dts/broadcom/bcmbca/bcm4906-tplink-archer-c2300-v1.dts | 2 +-
|
||||
arch/arm64/boot/dts/broadcom/bcmbca/bcm4908-asus-gt-ac5300.dts | 2 +-
|
||||
.../arm64/boot/dts/broadcom/bcmbca/bcm4908-netgear-raxe500.dts | 2 +-
|
||||
4 files changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
--- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-netgear-r8000p.dts
|
||||
+++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-netgear-r8000p.dts
|
||||
--- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm4906-netgear-r8000p.dts
|
||||
+++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4906-netgear-r8000p.dts
|
||||
@@ -7,7 +7,7 @@
|
||||
#include "bcm4906.dtsi"
|
||||
|
||||
@ -31,8 +31,8 @@ Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
model = "Netgear R8000P";
|
||||
|
||||
memory@0 {
|
||||
--- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-tplink-archer-c2300-v1.dts
|
||||
+++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-tplink-archer-c2300-v1.dts
|
||||
--- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm4906-tplink-archer-c2300-v1.dts
|
||||
+++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4906-tplink-archer-c2300-v1.dts
|
||||
@@ -7,7 +7,7 @@
|
||||
#include "bcm4906.dtsi"
|
||||
|
||||
@ -42,8 +42,8 @@ Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
model = "TP-Link Archer C2300 V1";
|
||||
|
||||
memory@0 {
|
||||
--- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts
|
||||
+++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts
|
||||
--- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908-asus-gt-ac5300.dts
|
||||
+++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908-asus-gt-ac5300.dts
|
||||
@@ -7,7 +7,7 @@
|
||||
#include "bcm4908.dtsi"
|
||||
|
||||
@ -53,8 +53,8 @@ Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
model = "Asus GT-AC5300";
|
||||
|
||||
memory@0 {
|
||||
--- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-netgear-raxe500.dts
|
||||
+++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-netgear-raxe500.dts
|
||||
--- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908-netgear-raxe500.dts
|
||||
+++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908-netgear-raxe500.dts
|
||||
@@ -3,7 +3,7 @@
|
||||
#include "bcm4908.dtsi"
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,33 +0,0 @@
|
||||
From 5cca02449490e767289bda38db1577e2c375c084 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
|
||||
Date: Tue, 28 Feb 2023 15:43:58 +0100
|
||||
Subject: [PATCH] arm64: dts: broadcom: bcmbca: bcm4908: fix NAND interrupt
|
||||
name
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
This fixes:
|
||||
arch/arm64/boot/dts/broadcom/bcmbca/bcm94908.dtb: nand-controller@1800: interrupt-names:0: 'nand_ctlrdy' was expected
|
||||
From schema: Documentation/devicetree/bindings/mtd/brcm,brcmnand.yaml
|
||||
arch/arm64/boot/dts/broadcom/bcmbca/bcm94908.dtb: nand-controller@1800: Unevaluated properties are not allowed ('interrupt-names' was unexpected)
|
||||
From schema: Documentation/devicetree/bindings/mtd/brcm,brcmnand.yaml
|
||||
|
||||
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
|
||||
Link: https://lore.kernel.org/all/20230228144400.21689-1-zajec5@gmail.com/
|
||||
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
---
|
||||
arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
--- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi
|
||||
+++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi
|
||||
@@ -556,7 +556,7 @@
|
||||
reg = <0x1800 0x600>, <0x2000 0x10>;
|
||||
reg-names = "nand", "nand-int-base";
|
||||
interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
|
||||
- interrupt-names = "nand";
|
||||
+ interrupt-names = "nand_ctlrdy";
|
||||
status = "okay";
|
||||
|
||||
nandcs: nand@0 {
|
@ -1,30 +0,0 @@
|
||||
From f16a8294dd7a02c7ad042cd2e3acc5ea06698dc1 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
|
||||
Date: Tue, 28 Feb 2023 15:44:00 +0100
|
||||
Subject: [PATCH] arm64: dts: broadcom: bcmbca: bcm4908: fix procmon nodename
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
This fixes:
|
||||
arch/arm64/boot/dts/broadcom/bcmbca/bcm94908.dtb: syscon@280000: $nodename:0: 'syscon@280000' does not match '^([a-z][a-z0-9\\-]+-bus|bus|localbus|soc|axi|ahb|apb)(@.+)?$'
|
||||
From schema: schemas/simple-bus.yaml
|
||||
|
||||
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
|
||||
Link: https://lore.kernel.org/all/20230228144400.21689-3-zajec5@gmail.com/
|
||||
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
---
|
||||
arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
--- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi
|
||||
+++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi
|
||||
@@ -260,7 +260,7 @@
|
||||
};
|
||||
};
|
||||
|
||||
- procmon: syscon@280000 {
|
||||
+ procmon: bus@280000 {
|
||||
compatible = "simple-bus";
|
||||
reg = <0x280000 0x1000>;
|
||||
ranges;
|
@ -25,7 +25,7 @@ Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
|
||||
|
||||
--- a/drivers/mtd/mtdcore.c
|
||||
+++ b/drivers/mtd/mtdcore.c
|
||||
@@ -1229,6 +1229,34 @@ int __get_mtd_device(struct mtd_info *mt
|
||||
@@ -1236,6 +1236,34 @@ int __get_mtd_device(struct mtd_info *mt
|
||||
EXPORT_SYMBOL_GPL(__get_mtd_device);
|
||||
|
||||
/**
|
||||
|
@ -31,7 +31,7 @@ Link: https://lore.kernel.org/linux-mtd/20220629125737.14418-2-kernel@kempniu.pl
|
||||
|
||||
--- a/drivers/mtd/mtdcore.c
|
||||
+++ b/drivers/mtd/mtdcore.c
|
||||
@@ -1669,6 +1669,9 @@ int mtd_read_oob(struct mtd_info *mtd, l
|
||||
@@ -1676,6 +1676,9 @@ int mtd_read_oob(struct mtd_info *mtd, l
|
||||
if (!master->_read_oob && (!master->_read || ops->oobbuf))
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
@ -41,7 +41,7 @@ Link: https://lore.kernel.org/linux-mtd/20220629125737.14418-2-kernel@kempniu.pl
|
||||
if (mtd->flags & MTD_SLC_ON_MLC_EMULATION)
|
||||
ret_code = mtd_io_emulated_slc(mtd, from, true, ops);
|
||||
else
|
||||
@@ -1686,6 +1689,8 @@ int mtd_read_oob(struct mtd_info *mtd, l
|
||||
@@ -1693,6 +1696,8 @@ int mtd_read_oob(struct mtd_info *mtd, l
|
||||
return ret_code;
|
||||
if (mtd->ecc_strength == 0)
|
||||
return 0; /* device lacks ecc */
|
||||
|
@ -1,43 +0,0 @@
|
||||
From 1cd9ceaa5282ff10ea20a7fbadde5a476a1cc99e Mon Sep 17 00:00:00 2001
|
||||
From: Michael Walle <michael@walle.cc>
|
||||
Date: Wed, 8 Mar 2023 09:20:18 +0100
|
||||
Subject: [PATCH] mtd: core: provide unique name for nvmem device, take two
|
||||
|
||||
Commit c048b60d39e1 ("mtd: core: provide unique name for nvmem device")
|
||||
tries to give the nvmem device a unique name, but fails badly if the mtd
|
||||
device doesn't have a "struct device" associated with it, i.e. if
|
||||
CONFIG_MTD_PARTITIONED_MASTER is not set. This will result in the name
|
||||
"(null)-user-otp", which is not unique. It seems the best we can do is
|
||||
to use the compatible name together with a unique identifier added by
|
||||
the nvmem subsystem by using NVMEM_DEVID_AUTO.
|
||||
|
||||
Fixes: c048b60d39e1 ("mtd: core: provide unique name for nvmem device")
|
||||
Cc: stable@vger.kernel.org
|
||||
Signed-off-by: Michael Walle <michael@walle.cc>
|
||||
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
Link: https://lore.kernel.org/linux-mtd/20230308082021.870459-1-michael@walle.cc
|
||||
---
|
||||
drivers/mtd/mtdcore.c | 5 ++---
|
||||
1 file changed, 2 insertions(+), 3 deletions(-)
|
||||
|
||||
--- a/drivers/mtd/mtdcore.c
|
||||
+++ b/drivers/mtd/mtdcore.c
|
||||
@@ -895,8 +895,8 @@ static struct nvmem_device *mtd_otp_nvme
|
||||
|
||||
/* OTP nvmem will be registered on the physical device */
|
||||
config.dev = mtd->dev.parent;
|
||||
- config.name = kasprintf(GFP_KERNEL, "%s-%s", dev_name(&mtd->dev), compatible);
|
||||
- config.id = NVMEM_DEVID_NONE;
|
||||
+ config.name = compatible;
|
||||
+ config.id = NVMEM_DEVID_AUTO;
|
||||
config.owner = THIS_MODULE;
|
||||
config.type = NVMEM_TYPE_OTP;
|
||||
config.root_only = true;
|
||||
@@ -912,7 +912,6 @@ static struct nvmem_device *mtd_otp_nvme
|
||||
nvmem = NULL;
|
||||
|
||||
of_node_put(np);
|
||||
- kfree(config.name);
|
||||
|
||||
return nvmem;
|
||||
}
|
@ -1,47 +0,0 @@
|
||||
From 8bd1d24e6ca3c599dd455b0e1b22f77bab8290eb Mon Sep 17 00:00:00 2001
|
||||
From: Michael Walle <michael@walle.cc>
|
||||
Date: Wed, 8 Mar 2023 09:20:19 +0100
|
||||
Subject: [PATCH] mtd: core: fix nvmem error reporting
|
||||
|
||||
The master MTD will only have an associated device if
|
||||
CONFIG_MTD_PARTITIONED_MASTER is set, thus we cannot use dev_err() on
|
||||
mtd->dev. Instead use the parent device which is the physical flash
|
||||
memory.
|
||||
|
||||
Fixes: 4b361cfa8624 ("mtd: core: add OTP nvmem provider support")
|
||||
Cc: stable@vger.kernel.org
|
||||
Signed-off-by: Michael Walle <michael@walle.cc>
|
||||
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
Link: https://lore.kernel.org/linux-mtd/20230308082021.870459-2-michael@walle.cc
|
||||
---
|
||||
drivers/mtd/mtdcore.c | 5 +++--
|
||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
--- a/drivers/mtd/mtdcore.c
|
||||
+++ b/drivers/mtd/mtdcore.c
|
||||
@@ -946,6 +946,7 @@ static int mtd_nvmem_fact_otp_reg_read(v
|
||||
|
||||
static int mtd_otp_nvmem_add(struct mtd_info *mtd)
|
||||
{
|
||||
+ struct device *dev = mtd->dev.parent;
|
||||
struct nvmem_device *nvmem;
|
||||
ssize_t size;
|
||||
int err;
|
||||
@@ -959,7 +960,7 @@ static int mtd_otp_nvmem_add(struct mtd_
|
||||
nvmem = mtd_otp_nvmem_register(mtd, "user-otp", size,
|
||||
mtd_nvmem_user_otp_reg_read);
|
||||
if (IS_ERR(nvmem)) {
|
||||
- dev_err(&mtd->dev, "Failed to register OTP NVMEM device\n");
|
||||
+ dev_err(dev, "Failed to register OTP NVMEM device\n");
|
||||
return PTR_ERR(nvmem);
|
||||
}
|
||||
mtd->otp_user_nvmem = nvmem;
|
||||
@@ -977,7 +978,7 @@ static int mtd_otp_nvmem_add(struct mtd_
|
||||
nvmem = mtd_otp_nvmem_register(mtd, "factory-otp", size,
|
||||
mtd_nvmem_fact_otp_reg_read);
|
||||
if (IS_ERR(nvmem)) {
|
||||
- dev_err(&mtd->dev, "Failed to register OTP NVMEM device\n");
|
||||
+ dev_err(dev, "Failed to register OTP NVMEM device\n");
|
||||
err = PTR_ERR(nvmem);
|
||||
goto err;
|
||||
}
|
@ -1,55 +0,0 @@
|
||||
From e0489f6e221f5ddee6cb3bd51b992b790c5fa4b9 Mon Sep 17 00:00:00 2001
|
||||
From: Michael Walle <michael@walle.cc>
|
||||
Date: Wed, 8 Mar 2023 09:20:20 +0100
|
||||
Subject: [PATCH] mtd: core: fix error path for nvmem provider
|
||||
|
||||
If mtd_otp_nvmem_add() fails, the partitions won't be removed
|
||||
because there is simply no call to del_mtd_partitions().
|
||||
Unfortunately, add_mtd_partitions() will print all partitions to
|
||||
the kernel console. If mtd_otp_nvmem_add() returns -EPROBE_DEFER
|
||||
this would print the partitions multiple times to the kernel
|
||||
console. Instead move mtd_otp_nvmem_add() to the beginning of the
|
||||
function.
|
||||
|
||||
Fixes: 4b361cfa8624 ("mtd: core: add OTP nvmem provider support")
|
||||
Cc: stable@vger.kernel.org
|
||||
Signed-off-by: Michael Walle <michael@walle.cc>
|
||||
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
Link: https://lore.kernel.org/linux-mtd/20230308082021.870459-3-michael@walle.cc
|
||||
---
|
||||
drivers/mtd/mtdcore.c | 13 ++++++++++---
|
||||
1 file changed, 10 insertions(+), 3 deletions(-)
|
||||
|
||||
--- a/drivers/mtd/mtdcore.c
|
||||
+++ b/drivers/mtd/mtdcore.c
|
||||
@@ -1031,10 +1031,14 @@ int mtd_device_parse_register(struct mtd
|
||||
|
||||
mtd_set_dev_defaults(mtd);
|
||||
|
||||
+ ret = mtd_otp_nvmem_add(mtd);
|
||||
+ if (ret)
|
||||
+ goto out;
|
||||
+
|
||||
if (IS_ENABLED(CONFIG_MTD_PARTITIONED_MASTER)) {
|
||||
ret = add_mtd_device(mtd);
|
||||
if (ret)
|
||||
- return ret;
|
||||
+ goto out;
|
||||
}
|
||||
|
||||
/* Prefer parsed partitions over driver-provided fallback */
|
||||
@@ -1069,9 +1073,12 @@ int mtd_device_parse_register(struct mtd
|
||||
register_reboot_notifier(&mtd->reboot_notifier);
|
||||
}
|
||||
|
||||
- ret = mtd_otp_nvmem_add(mtd);
|
||||
-
|
||||
out:
|
||||
+ if (ret) {
|
||||
+ nvmem_unregister(mtd->otp_user_nvmem);
|
||||
+ nvmem_unregister(mtd->otp_factory_nvmem);
|
||||
+ }
|
||||
+
|
||||
if (ret && device_is_registered(&mtd->dev))
|
||||
del_mtd_device(mtd);
|
||||
|
@ -901,7 +901,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
static void axienet_mac_pcs_get_state(struct phylink_config *config,
|
||||
--- a/drivers/net/pcs/pcs-xpcs.c
|
||||
+++ b/drivers/net/pcs/pcs-xpcs.c
|
||||
@@ -646,7 +646,7 @@ void xpcs_validate(struct dw_xpcs *xpcs,
|
||||
@@ -637,7 +637,7 @@ void xpcs_validate(struct dw_xpcs *xpcs,
|
||||
if (state->interface == PHY_INTERFACE_MODE_NA)
|
||||
return;
|
||||
|
||||
|
@ -71,7 +71,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
ret = stmmac_hw_setup(dev, true);
|
||||
if (ret < 0) {
|
||||
netdev_err(priv->dev, "%s: Hw setup failed\n", __func__);
|
||||
@@ -6424,6 +6417,7 @@ void stmmac_enable_rx_queue(struct stmma
|
||||
@@ -6430,6 +6423,7 @@ void stmmac_enable_rx_queue(struct stmma
|
||||
return;
|
||||
}
|
||||
|
||||
@ -79,7 +79,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
stmmac_clear_rx_descriptors(priv, queue);
|
||||
|
||||
stmmac_init_rx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
|
||||
@@ -6485,6 +6479,7 @@ void stmmac_enable_tx_queue(struct stmma
|
||||
@@ -6491,6 +6485,7 @@ void stmmac_enable_tx_queue(struct stmma
|
||||
return;
|
||||
}
|
||||
|
||||
@ -87,7 +87,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
stmmac_clear_tx_descriptors(priv, queue);
|
||||
|
||||
stmmac_init_tx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
|
||||
@@ -7411,6 +7406,25 @@ int stmmac_suspend(struct device *dev)
|
||||
@@ -7417,6 +7412,25 @@ int stmmac_suspend(struct device *dev)
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(stmmac_suspend);
|
||||
|
||||
@ -113,7 +113,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
/**
|
||||
* stmmac_reset_queues_param - reset queue parameters
|
||||
* @priv: device pointer
|
||||
@@ -7421,22 +7435,11 @@ static void stmmac_reset_queues_param(st
|
||||
@@ -7427,22 +7441,11 @@ static void stmmac_reset_queues_param(st
|
||||
u32 tx_cnt = priv->plat->tx_queues_to_use;
|
||||
u32 queue;
|
||||
|
||||
|
@ -1116,7 +1116,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6398,7 +6402,7 @@ void stmmac_disable_rx_queue(struct stmm
|
||||
@@ -6404,7 +6408,7 @@ void stmmac_disable_rx_queue(struct stmm
|
||||
|
||||
void stmmac_enable_rx_queue(struct stmmac_priv *priv, u32 queue)
|
||||
{
|
||||
@ -1125,7 +1125,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
struct stmmac_channel *ch = &priv->channel[queue];
|
||||
unsigned long flags;
|
||||
u32 buf_size;
|
||||
@@ -6435,7 +6439,7 @@ void stmmac_enable_rx_queue(struct stmma
|
||||
@@ -6441,7 +6445,7 @@ void stmmac_enable_rx_queue(struct stmma
|
||||
rx_q->queue_index);
|
||||
} else {
|
||||
stmmac_set_dma_bfsize(priv, priv->ioaddr,
|
||||
@ -1134,7 +1134,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
rx_q->queue_index);
|
||||
}
|
||||
|
||||
@@ -6461,7 +6465,7 @@ void stmmac_disable_tx_queue(struct stmm
|
||||
@@ -6467,7 +6471,7 @@ void stmmac_disable_tx_queue(struct stmm
|
||||
|
||||
void stmmac_enable_tx_queue(struct stmmac_priv *priv, u32 queue)
|
||||
{
|
||||
@ -1143,7 +1143,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
struct stmmac_channel *ch = &priv->channel[queue];
|
||||
unsigned long flags;
|
||||
int ret;
|
||||
@@ -6511,7 +6515,7 @@ void stmmac_xdp_release(struct net_devic
|
||||
@@ -6517,7 +6521,7 @@ void stmmac_xdp_release(struct net_devic
|
||||
stmmac_disable_all_queues(priv);
|
||||
|
||||
for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
|
||||
@ -1152,7 +1152,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
/* Free the IRQ lines */
|
||||
stmmac_free_irq(dev, REQ_IRQ_ERR_ALL, 0);
|
||||
@@ -6570,7 +6574,7 @@ int stmmac_xdp_open(struct net_device *d
|
||||
@@ -6576,7 +6580,7 @@ int stmmac_xdp_open(struct net_device *d
|
||||
|
||||
/* DMA RX Channel Configuration */
|
||||
for (chan = 0; chan < rx_cnt; chan++) {
|
||||
@ -1161,7 +1161,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
stmmac_init_rx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
|
||||
rx_q->dma_rx_phy, chan);
|
||||
@@ -6588,7 +6592,7 @@ int stmmac_xdp_open(struct net_device *d
|
||||
@@ -6594,7 +6598,7 @@ int stmmac_xdp_open(struct net_device *d
|
||||
rx_q->queue_index);
|
||||
} else {
|
||||
stmmac_set_dma_bfsize(priv, priv->ioaddr,
|
||||
@ -1170,7 +1170,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
rx_q->queue_index);
|
||||
}
|
||||
|
||||
@@ -6597,7 +6601,7 @@ int stmmac_xdp_open(struct net_device *d
|
||||
@@ -6603,7 +6607,7 @@ int stmmac_xdp_open(struct net_device *d
|
||||
|
||||
/* DMA TX Channel Configuration */
|
||||
for (chan = 0; chan < tx_cnt; chan++) {
|
||||
@ -1179,7 +1179,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
stmmac_init_tx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
|
||||
tx_q->dma_tx_phy, chan);
|
||||
@@ -6630,7 +6634,7 @@ int stmmac_xdp_open(struct net_device *d
|
||||
@@ -6636,7 +6640,7 @@ int stmmac_xdp_open(struct net_device *d
|
||||
|
||||
irq_error:
|
||||
for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
|
||||
@ -1188,7 +1188,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
stmmac_hw_teardown(dev);
|
||||
init_error:
|
||||
@@ -6657,8 +6661,8 @@ int stmmac_xsk_wakeup(struct net_device
|
||||
@@ -6663,8 +6667,8 @@ int stmmac_xsk_wakeup(struct net_device
|
||||
queue >= priv->plat->tx_queues_to_use)
|
||||
return -EINVAL;
|
||||
|
||||
@ -1199,7 +1199,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
ch = &priv->channel[queue];
|
||||
|
||||
if (!rx_q->xsk_pool && !tx_q->xsk_pool)
|
||||
@@ -6918,8 +6922,8 @@ int stmmac_reinit_ringparam(struct net_d
|
||||
@@ -6924,8 +6928,8 @@ int stmmac_reinit_ringparam(struct net_d
|
||||
if (netif_running(dev))
|
||||
stmmac_release(dev);
|
||||
|
||||
@ -1210,7 +1210,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
if (netif_running(dev))
|
||||
ret = stmmac_open(dev);
|
||||
@@ -7357,7 +7361,7 @@ int stmmac_suspend(struct device *dev)
|
||||
@@ -7363,7 +7367,7 @@ int stmmac_suspend(struct device *dev)
|
||||
stmmac_disable_all_queues(priv);
|
||||
|
||||
for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
|
||||
@ -1219,7 +1219,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
if (priv->eee_enabled) {
|
||||
priv->tx_path_in_lpi_mode = false;
|
||||
@@ -7408,7 +7412,7 @@ EXPORT_SYMBOL_GPL(stmmac_suspend);
|
||||
@@ -7414,7 +7418,7 @@ EXPORT_SYMBOL_GPL(stmmac_suspend);
|
||||
|
||||
static void stmmac_reset_rx_queue(struct stmmac_priv *priv, u32 queue)
|
||||
{
|
||||
@ -1228,7 +1228,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
rx_q->cur_rx = 0;
|
||||
rx_q->dirty_rx = 0;
|
||||
@@ -7416,7 +7420,7 @@ static void stmmac_reset_rx_queue(struct
|
||||
@@ -7422,7 +7426,7 @@ static void stmmac_reset_rx_queue(struct
|
||||
|
||||
static void stmmac_reset_tx_queue(struct stmmac_priv *priv, u32 queue)
|
||||
{
|
||||
|
@ -1045,7 +1045,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
/* Disable the MAC Rx/Tx */
|
||||
stmmac_mac_set(priv, priv->ioaddr, false);
|
||||
@@ -6397,7 +6513,7 @@ void stmmac_disable_rx_queue(struct stmm
|
||||
@@ -6403,7 +6519,7 @@ void stmmac_disable_rx_queue(struct stmm
|
||||
spin_unlock_irqrestore(&ch->lock, flags);
|
||||
|
||||
stmmac_stop_rx_dma(priv, queue);
|
||||
@ -1054,7 +1054,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
}
|
||||
|
||||
void stmmac_enable_rx_queue(struct stmmac_priv *priv, u32 queue)
|
||||
@@ -6408,21 +6524,21 @@ void stmmac_enable_rx_queue(struct stmma
|
||||
@@ -6414,21 +6530,21 @@ void stmmac_enable_rx_queue(struct stmma
|
||||
u32 buf_size;
|
||||
int ret;
|
||||
|
||||
@ -1080,7 +1080,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
stmmac_init_rx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
|
||||
rx_q->dma_rx_phy, rx_q->queue_index);
|
||||
@@ -6460,7 +6576,7 @@ void stmmac_disable_tx_queue(struct stmm
|
||||
@@ -6466,7 +6582,7 @@ void stmmac_disable_tx_queue(struct stmm
|
||||
spin_unlock_irqrestore(&ch->lock, flags);
|
||||
|
||||
stmmac_stop_tx_dma(priv, queue);
|
||||
@ -1089,7 +1089,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
}
|
||||
|
||||
void stmmac_enable_tx_queue(struct stmmac_priv *priv, u32 queue)
|
||||
@@ -6470,21 +6586,21 @@ void stmmac_enable_tx_queue(struct stmma
|
||||
@@ -6476,21 +6592,21 @@ void stmmac_enable_tx_queue(struct stmma
|
||||
unsigned long flags;
|
||||
int ret;
|
||||
|
||||
@ -1115,7 +1115,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
stmmac_init_tx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
|
||||
tx_q->dma_tx_phy, tx_q->queue_index);
|
||||
@@ -6524,7 +6640,7 @@ void stmmac_xdp_release(struct net_devic
|
||||
@@ -6530,7 +6646,7 @@ void stmmac_xdp_release(struct net_devic
|
||||
stmmac_stop_all_dma(priv);
|
||||
|
||||
/* Release and free the Rx/Tx resources */
|
||||
@ -1124,7 +1124,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
/* Disable the MAC Rx/Tx */
|
||||
stmmac_mac_set(priv, priv->ioaddr, false);
|
||||
@@ -6549,14 +6665,14 @@ int stmmac_xdp_open(struct net_device *d
|
||||
@@ -6555,14 +6671,14 @@ int stmmac_xdp_open(struct net_device *d
|
||||
u32 chan;
|
||||
int ret;
|
||||
|
||||
@ -1141,7 +1141,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
if (ret < 0) {
|
||||
netdev_err(dev, "%s: DMA descriptors initialization failed\n",
|
||||
__func__);
|
||||
@@ -6638,7 +6754,7 @@ irq_error:
|
||||
@@ -6644,7 +6760,7 @@ irq_error:
|
||||
|
||||
stmmac_hw_teardown(dev);
|
||||
init_error:
|
||||
@ -1150,7 +1150,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
dma_desc_error:
|
||||
return ret;
|
||||
}
|
||||
@@ -7503,7 +7619,7 @@ int stmmac_resume(struct device *dev)
|
||||
@@ -7509,7 +7625,7 @@ int stmmac_resume(struct device *dev)
|
||||
stmmac_reset_queues_param(priv);
|
||||
|
||||
stmmac_free_tx_skbufs(priv);
|
||||
|
@ -26,7 +26,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
return -ENODEV;
|
||||
|
||||
/* Name & Type */
|
||||
@@ -369,7 +369,7 @@ int of_device_uevent_modalias(struct dev
|
||||
@@ -372,7 +372,7 @@ int of_device_uevent_modalias(struct dev
|
||||
{
|
||||
int sl;
|
||||
|
||||
|
@ -18,7 +18,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
|
||||
--- a/drivers/of/device.c
|
||||
+++ b/drivers/of/device.c
|
||||
@@ -378,6 +378,8 @@ int of_device_uevent_modalias(struct dev
|
||||
@@ -381,6 +381,8 @@ int of_device_uevent_modalias(struct dev
|
||||
|
||||
sl = of_device_get_modalias(dev, &env->buf[env->buflen-1],
|
||||
sizeof(env->buf) - env->buflen);
|
||||
|
@ -1,70 +0,0 @@
|
||||
From b19a4266c52de78496fe40f0b37580a3b762e67d Mon Sep 17 00:00:00 2001
|
||||
From: Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
Date: Tue, 4 Apr 2023 18:21:09 +0100
|
||||
Subject: [PATCH] of: Fix modalias string generation
|
||||
|
||||
The helper generating an OF based modalias (of_device_get_modalias())
|
||||
works fine, but due to the use of snprintf() internally it needs a
|
||||
buffer one byte longer than what should be needed just for the entire
|
||||
string (excluding the '\0'). Most users of this helper are sysfs hooks
|
||||
providing the modalias string to users. They all provide a PAGE_SIZE
|
||||
buffer which is way above the number of bytes required to fit the
|
||||
modalias string and hence do not suffer from this issue.
|
||||
|
||||
There is another user though, of_device_request_module(), which is only
|
||||
called by drivers/usb/common/ulpi.c. This request module function is
|
||||
faulty, but maybe because in most cases there is an alternative, ULPI
|
||||
driver users have not noticed it.
|
||||
|
||||
In this function, of_device_get_modalias() is called twice. The first
|
||||
time without buffer just to get the number of bytes required by the
|
||||
modalias string (excluding the null byte), and a second time, after
|
||||
buffer allocation, to fill the buffer. The allocation asks for an
|
||||
additional byte, in order to store the trailing '\0'. However, the
|
||||
buffer *length* provided to of_device_get_modalias() excludes this extra
|
||||
byte. The internal use of snprintf() with a length that is exactly the
|
||||
number of bytes to be written has the effect of using the last available
|
||||
byte to store a '\0', which then smashes the last character of the
|
||||
modalias string.
|
||||
|
||||
Provide the actual size of the buffer to of_device_get_modalias() to fix
|
||||
this issue.
|
||||
|
||||
Note: the "str[size - 1] = '\0';" line is not really needed as snprintf
|
||||
will anyway end the string with a null byte, but there is a possibility
|
||||
that this function might be called on a struct device_node without
|
||||
compatible, in this case snprintf() would not be executed. So we keep it
|
||||
just to avoid possible unbounded strings.
|
||||
|
||||
Cc: Stephen Boyd <sboyd@kernel.org>
|
||||
Cc: Peter Chen <peter.chen@kernel.org>
|
||||
Fixes: 9c829c097f2f ("of: device: Support loading a module with OF based modalias")
|
||||
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
Reviewed-by: Rob Herring <robh@kernel.org>
|
||||
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
|
||||
Link: https://lore.kernel.org/r/20230404172148.82422-2-srinivas.kandagatla@linaro.org
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
drivers/of/device.c | 7 +++++--
|
||||
1 file changed, 5 insertions(+), 2 deletions(-)
|
||||
|
||||
--- a/drivers/of/device.c
|
||||
+++ b/drivers/of/device.c
|
||||
@@ -290,12 +290,15 @@ int of_device_request_module(struct devi
|
||||
if (size < 0)
|
||||
return size;
|
||||
|
||||
- str = kmalloc(size + 1, GFP_KERNEL);
|
||||
+ /* Reserve an additional byte for the trailing '\0' */
|
||||
+ size++;
|
||||
+
|
||||
+ str = kmalloc(size, GFP_KERNEL);
|
||||
if (!str)
|
||||
return -ENOMEM;
|
||||
|
||||
of_device_get_modalias(dev, str, size);
|
||||
- str[size] = '\0';
|
||||
+ str[size - 1] = '\0';
|
||||
ret = request_module(str);
|
||||
kfree(str);
|
||||
|
@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
#define PACKET_FANOUT_LB 1
|
||||
--- a/net/packet/af_packet.c
|
||||
+++ b/net/packet/af_packet.c
|
||||
@@ -1825,6 +1825,7 @@ static int packet_rcv_spkt(struct sk_buf
|
||||
@@ -1826,6 +1826,7 @@ static int packet_rcv_spkt(struct sk_buf
|
||||
{
|
||||
struct sock *sk;
|
||||
struct sockaddr_pkt *spkt;
|
||||
@ -38,7 +38,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
/*
|
||||
* When we registered the protocol we saved the socket in the data
|
||||
@@ -1832,6 +1833,7 @@ static int packet_rcv_spkt(struct sk_buf
|
||||
@@ -1833,6 +1834,7 @@ static int packet_rcv_spkt(struct sk_buf
|
||||
*/
|
||||
|
||||
sk = pt->af_packet_priv;
|
||||
@ -46,7 +46,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
/*
|
||||
* Yank back the headers [hope the device set this
|
||||
@@ -1844,7 +1846,7 @@ static int packet_rcv_spkt(struct sk_buf
|
||||
@@ -1845,7 +1847,7 @@ static int packet_rcv_spkt(struct sk_buf
|
||||
* so that this procedure is noop.
|
||||
*/
|
||||
|
||||
@ -55,7 +55,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
goto out;
|
||||
|
||||
if (!net_eq(dev_net(dev), sock_net(sk)))
|
||||
@@ -2092,12 +2094,12 @@ static int packet_rcv(struct sk_buff *sk
|
||||
@@ -2093,12 +2095,12 @@ static int packet_rcv(struct sk_buff *sk
|
||||
unsigned int snaplen, res;
|
||||
bool is_drop_n_account = false;
|
||||
|
||||
@ -71,7 +71,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
if (!net_eq(dev_net(dev), sock_net(sk)))
|
||||
goto drop;
|
||||
|
||||
@@ -2223,12 +2225,12 @@ static int tpacket_rcv(struct sk_buff *s
|
||||
@@ -2224,12 +2226,12 @@ static int tpacket_rcv(struct sk_buff *s
|
||||
BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h2)) != 32);
|
||||
BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h3)) != 48);
|
||||
|
||||
@ -87,7 +87,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
if (!net_eq(dev_net(dev), sock_net(sk)))
|
||||
goto drop;
|
||||
|
||||
@@ -3339,6 +3341,7 @@ static int packet_create(struct net *net
|
||||
@@ -3342,6 +3344,7 @@ static int packet_create(struct net *net
|
||||
mutex_init(&po->pg_vec_lock);
|
||||
po->rollover = NULL;
|
||||
po->prot_hook.func = packet_rcv;
|
||||
@ -96,7 +96,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
if (sock->type == SOCK_PACKET)
|
||||
po->prot_hook.func = packet_rcv_spkt;
|
||||
@@ -3979,6 +3982,16 @@ packet_setsockopt(struct socket *sock, i
|
||||
po->xmit = val ? packet_direct_xmit : dev_queue_xmit;
|
||||
WRITE_ONCE(po->xmit, val ? packet_direct_xmit : dev_queue_xmit);
|
||||
return 0;
|
||||
}
|
||||
+ case PACKET_RECV_TYPE:
|
||||
@ -128,7 +128,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
break;
|
||||
--- a/net/packet/internal.h
|
||||
+++ b/net/packet/internal.h
|
||||
@@ -137,6 +137,7 @@ struct packet_sock {
|
||||
@@ -136,6 +136,7 @@ struct packet_sock {
|
||||
int (*xmit)(struct sk_buff *skb);
|
||||
struct packet_type prot_hook ____cacheline_aligned_in_smp;
|
||||
atomic_t tp_drops ____cacheline_aligned_in_smp;
|
||||
|
@ -1,51 +0,0 @@
|
||||
From 8fafb7e5c041814876266259e5e439f93571dcef Mon Sep 17 00:00:00 2001
|
||||
From: Christian Marangi <ansuelsmth@gmail.com>
|
||||
Date: Thu, 7 Jul 2022 03:09:40 +0200
|
||||
Subject: [PATCH 6/8] ARM: dts: qcom: ipq8064: reduce pci IO size to 64K
|
||||
|
||||
The current value for pci IO is problematic for ath10k wifi card
|
||||
commonly connected to ipq8064 SoC.
|
||||
The current value is probably a typo and is actually uncommon to find
|
||||
1MB IO space even on a x86 arch. Also with recent changes to the pci
|
||||
driver, pci1 and pci2 now fails to function as any connected device
|
||||
fails any reg read/write. Reduce this to 64K as it should be more than
|
||||
enough and 3 * 64K of total IO space doesn't exceed the IO_SPACE_LIMIT
|
||||
hardcoded for the ARM arch.
|
||||
|
||||
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
|
||||
Tested-by: Jonathan McDowell <noodles@earth.li>
|
||||
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
|
||||
Link: https://lore.kernel.org/r/20220707010943.20857-7-ansuelsmth@gmail.com
|
||||
---
|
||||
arch/arm/boot/dts/qcom-ipq8064.dtsi | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
--- a/arch/arm/boot/dts/qcom-ipq8064.dtsi
|
||||
+++ b/arch/arm/boot/dts/qcom-ipq8064.dtsi
|
||||
@@ -885,7 +885,7 @@
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
|
||||
- ranges = <0x81000000 0 0x0fe00000 0x0fe00000 0 0x00100000 /* downstream I/O */
|
||||
+ ranges = <0x81000000 0 0x0fe00000 0x0fe00000 0 0x00010000 /* downstream I/O */
|
||||
0x82000000 0 0x08000000 0x08000000 0 0x07e00000>; /* non-prefetchable memory */
|
||||
|
||||
interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
|
||||
@@ -936,7 +936,7 @@
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
|
||||
- ranges = <0x81000000 0 0x31e00000 0x31e00000 0 0x00100000 /* downstream I/O */
|
||||
+ ranges = <0x81000000 0 0x31e00000 0x31e00000 0 0x00010000 /* downstream I/O */
|
||||
0x82000000 0 0x2e000000 0x2e000000 0 0x03e00000>; /* non-prefetchable memory */
|
||||
|
||||
interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
|
||||
@@ -987,7 +987,7 @@
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
|
||||
- ranges = <0x81000000 0 0x35e00000 0x35e00000 0 0x00100000 /* downstream I/O */
|
||||
+ ranges = <0x81000000 0 0x35e00000 0x35e00000 0 0x00010000 /* downstream I/O */
|
||||
0x82000000 0 0x32000000 0x32000000 0 0x03e00000>; /* non-prefetchable memory */
|
||||
|
||||
interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
|
@ -35,7 +35,7 @@ Link: https://lore.kernel.org/r/20220704113318.623102-1-robimarko@gmail.com
|
||||
watchdog: watchdog@b017000 {
|
||||
compatible = "qcom,kpss-wdt";
|
||||
reg = <0xb017000 0x1000>;
|
||||
@@ -857,4 +849,12 @@
|
||||
@@ -853,4 +845,12 @@
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
@ -37,7 +37,7 @@ Link: https://lore.kernel.org/r/20220818220245.338396-5-robimarko@gmail.com
|
||||
cryptobam: dma-controller@704000 {
|
||||
compatible = "qcom,bam-v1.7.0";
|
||||
reg = <0x00704000 0x20000>;
|
||||
@@ -878,4 +888,90 @@
|
||||
@@ -874,4 +884,90 @@
|
||||
<GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
|
||||
<GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
|
||||
};
|
||||
|
@ -19,7 +19,7 @@ Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
|
||||
|
||||
--- a/drivers/spmi/spmi.c
|
||||
+++ b/drivers/spmi/spmi.c
|
||||
@@ -387,6 +387,23 @@ static struct bus_type spmi_bus_type = {
|
||||
@@ -388,6 +388,23 @@ static struct bus_type spmi_bus_type = {
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -30,7 +30,7 @@ Reviewed-by: Stephen Boyd <swboyd@chromium.org>
|
||||
struct qcom_pcie {
|
||||
struct dw_pcie *pci;
|
||||
void __iomem *parf; /* DT parf */
|
||||
@@ -1469,6 +1473,38 @@ static const struct qcom_pcie_ops ops_1_
|
||||
@@ -1467,6 +1471,38 @@ static const struct qcom_pcie_ops ops_1_
|
||||
.config_sid = qcom_pcie_config_sid_sm8250,
|
||||
};
|
||||
|
||||
@ -69,7 +69,7 @@ Reviewed-by: Stephen Boyd <swboyd@chromium.org>
|
||||
static const struct dw_pcie_ops dw_pcie_ops = {
|
||||
.link_up = qcom_pcie_link_up,
|
||||
.start_link = qcom_pcie_start_link,
|
||||
@@ -1480,6 +1516,7 @@ static int qcom_pcie_probe(struct platfo
|
||||
@@ -1478,6 +1514,7 @@ static int qcom_pcie_probe(struct platfo
|
||||
struct pcie_port *pp;
|
||||
struct dw_pcie *pci;
|
||||
struct qcom_pcie *pcie;
|
||||
@ -77,7 +77,7 @@ Reviewed-by: Stephen Boyd <swboyd@chromium.org>
|
||||
int ret;
|
||||
|
||||
pcie = devm_kzalloc(dev, sizeof(*pcie), GFP_KERNEL);
|
||||
@@ -1501,7 +1538,13 @@ static int qcom_pcie_probe(struct platfo
|
||||
@@ -1499,7 +1536,13 @@ static int qcom_pcie_probe(struct platfo
|
||||
|
||||
pcie->pci = pci;
|
||||
|
||||
@ -92,7 +92,7 @@ Reviewed-by: Stephen Boyd <swboyd@chromium.org>
|
||||
|
||||
pcie->reset = devm_gpiod_get_optional(dev, "perst", GPIOD_OUT_HIGH);
|
||||
if (IS_ERR(pcie->reset)) {
|
||||
@@ -1557,16 +1600,17 @@ err_pm_runtime_put:
|
||||
@@ -1555,16 +1598,17 @@ err_pm_runtime_put:
|
||||
}
|
||||
|
||||
static const struct of_device_id qcom_pcie_match[] = {
|
||||
|
@ -70,7 +70,7 @@ Acked-by: Stanimir Varbanov <svarbanov@mm-sol.com>
|
||||
};
|
||||
|
||||
struct qcom_pcie;
|
||||
@@ -1282,6 +1292,112 @@ static void qcom_pcie_post_deinit_2_7_0(
|
||||
@@ -1280,6 +1290,112 @@ static void qcom_pcie_post_deinit_2_7_0(
|
||||
clk_disable_unprepare(res->pipe_clk);
|
||||
}
|
||||
|
||||
@ -183,7 +183,7 @@ Acked-by: Stanimir Varbanov <svarbanov@mm-sol.com>
|
||||
static int qcom_pcie_link_up(struct dw_pcie *pci)
|
||||
{
|
||||
u16 offset = dw_pcie_find_capability(pci, PCI_CAP_ID_EXP);
|
||||
@@ -1473,6 +1589,15 @@ static const struct qcom_pcie_ops ops_1_
|
||||
@@ -1471,6 +1587,15 @@ static const struct qcom_pcie_ops ops_1_
|
||||
.config_sid = qcom_pcie_config_sid_sm8250,
|
||||
};
|
||||
|
||||
@ -199,7 +199,7 @@ Acked-by: Stanimir Varbanov <svarbanov@mm-sol.com>
|
||||
static const struct qcom_pcie_cfg apq8084_cfg = {
|
||||
.ops = &ops_1_0_0,
|
||||
};
|
||||
@@ -1505,6 +1630,10 @@ static const struct qcom_pcie_cfg sc7280
|
||||
@@ -1503,6 +1628,10 @@ static const struct qcom_pcie_cfg sc7280
|
||||
.ops = &ops_1_9_0,
|
||||
};
|
||||
|
||||
@ -210,7 +210,7 @@ Acked-by: Stanimir Varbanov <svarbanov@mm-sol.com>
|
||||
static const struct dw_pcie_ops dw_pcie_ops = {
|
||||
.link_up = qcom_pcie_link_up,
|
||||
.start_link = qcom_pcie_start_link,
|
||||
@@ -1611,6 +1740,7 @@ static const struct of_device_id qcom_pc
|
||||
@@ -1609,6 +1738,7 @@ static const struct of_device_id qcom_pc
|
||||
{ .compatible = "qcom,pcie-sdm845", .data = &sdm845_cfg },
|
||||
{ .compatible = "qcom,pcie-sm8250", .data = &sm8250_cfg },
|
||||
{ .compatible = "qcom,pcie-sc7280", .data = &sc7280_cfg },
|
||||
|
@ -13,7 +13,7 @@ Signed-off-by: Robert Marko <robimarko@gmail.com>
|
||||
|
||||
--- a/drivers/pci/controller/dwc/pcie-qcom.c
|
||||
+++ b/drivers/pci/controller/dwc/pcie-qcom.c
|
||||
@@ -1735,6 +1735,7 @@ static const struct of_device_id qcom_pc
|
||||
@@ -1733,6 +1733,7 @@ static const struct of_device_id qcom_pc
|
||||
{ .compatible = "qcom,pcie-apq8064", .data = &ipq8064_cfg },
|
||||
{ .compatible = "qcom,pcie-msm8996", .data = &msm8996_cfg },
|
||||
{ .compatible = "qcom,pcie-ipq8074", .data = &ipq8074_cfg },
|
||||
|
@ -21,9 +21,9 @@ Signed-off-by: Robert Marko <robimarko@gmail.com>
|
||||
compatible = "arm,gic-v2m-frame";
|
||||
msi-controller;
|
||||
reg = <0x0 0xffd>;
|
||||
@@ -813,8 +813,7 @@
|
||||
<0x82000000 0 0x10220000 0x10220000
|
||||
0 0xfde0000>; /* non-prefetchable memory */
|
||||
@@ -811,8 +811,7 @@
|
||||
ranges = <0x81000000 0x0 0x00000000 0x10200000 0x0 0x10000>, /* I/O */
|
||||
<0x82000000 0x0 0x10220000 0x10220000 0x0 0xfde0000>; /* MEM */
|
||||
|
||||
- interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
|
||||
- interrupt-names = "msi";
|
||||
@ -31,9 +31,9 @@ Signed-off-by: Robert Marko <robimarko@gmail.com>
|
||||
#interrupt-cells = <1>;
|
||||
interrupt-map-mask = <0 0 0 0x7>;
|
||||
interrupt-map = <0 0 0 1 &intc 0 142
|
||||
@@ -877,8 +876,7 @@
|
||||
<0x82000000 0 0x20220000 0x20220000
|
||||
0 0xfde0000>; /* non-prefetchable memory */
|
||||
@@ -873,8 +872,7 @@
|
||||
ranges = <0x81000000 0x0 0x00000000 0x20200000 0x0 0x10000>, /* I/O */
|
||||
<0x82000000 0x0 0x20220000 0x20220000 0x0 0xfde0000>; /* MEM */
|
||||
|
||||
- interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
|
||||
- interrupt-names = "msi";
|
||||
|
@ -61,7 +61,7 @@ Signed-off-by: Robert Marko <robimarko@gmail.com>
|
||||
spmi_bus: spmi@200f000 {
|
||||
compatible = "qcom,spmi-pmic-arb";
|
||||
reg = <0x0200f000 0x001000>,
|
||||
@@ -917,6 +948,56 @@
|
||||
@@ -913,6 +944,56 @@
|
||||
"axi_s_sticky";
|
||||
status = "disabled";
|
||||
};
|
||||
|
@ -15,7 +15,7 @@ Signed-off-by: Robert Marko <robimarko@gmail.com>
|
||||
|
||||
--- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi
|
||||
+++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
|
||||
@@ -998,6 +998,117 @@
|
||||
@@ -994,6 +994,117 @@
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -10,7 +10,7 @@
|
||||
#define UART_BUG_TXEN BIT(1) /* UART has buggy TX IIR status */
|
||||
--- a/drivers/tty/serial/8250/8250_port.c
|
||||
+++ b/drivers/tty/serial/8250/8250_port.c
|
||||
@@ -288,7 +288,7 @@ static const struct serial8250_config ua
|
||||
@@ -289,7 +289,7 @@ static const struct serial8250_config ua
|
||||
.tx_loadsz = 16,
|
||||
.fcr = UART_FCR_ENABLE_FIFO |
|
||||
UART_FCR_CLEAR_RCVR | UART_FCR_CLEAR_XMIT,
|
||||
@ -19,7 +19,7 @@
|
||||
},
|
||||
[PORT_NPCM] = {
|
||||
.name = "Nuvoton 16550",
|
||||
@@ -2756,6 +2756,11 @@ serial8250_do_set_termios(struct uart_po
|
||||
@@ -2760,6 +2760,11 @@ serial8250_do_set_termios(struct uart_po
|
||||
unsigned long flags;
|
||||
unsigned int baud, quot, frac = 0;
|
||||
|
||||
|
@ -42,7 +42,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
|
||||
/*
|
||||
* The first read of a sensor often contains very high bogus
|
||||
@@ -1075,6 +1073,11 @@ static int mtk_thermal_probe(struct plat
|
||||
@@ -1085,6 +1083,11 @@ static int mtk_thermal_probe(struct plat
|
||||
mtk_thermal_release_periodic_ts(mt, auxadc_base);
|
||||
}
|
||||
|
||||
|
@ -210,7 +210,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
.compatible = "mediatek,mt8183-thermal",
|
||||
.data = (void *)&mt8183_thermal_data,
|
||||
}, {
|
||||
@@ -1068,15 +1186,24 @@ static int mtk_thermal_probe(struct plat
|
||||
@@ -1078,15 +1196,24 @@ static int mtk_thermal_probe(struct plat
|
||||
goto err_disable_clk_auxadc;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user