From 6a1e7c767f197b80385f4be9ac7a4b5af27cb4ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Date: Wed, 18 May 2022 22:52:06 +0200 Subject: bmips: add linux v5.15 support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Build system: x86_64 Build-tested: generic, nand Run-tested: generic/AR-5387un, nand/VR-3032u Signed-off-by: Álvaro Fernández Rojas --- target/linux/bmips/files/drivers/pci/controller/pci-bcm6348.c | 9 +++++++++ .../linux/bmips/files/drivers/pci/controller/pcie-bcm6318.c | 11 ++++++++++- .../linux/bmips/files/drivers/pci/controller/pcie-bcm6328.c | 11 ++++++++++- 3 files changed, 29 insertions(+), 2 deletions(-) (limited to 'target/linux/bmips/files/drivers') diff --git a/target/linux/bmips/files/drivers/pci/controller/pci-bcm6348.c b/target/linux/bmips/files/drivers/pci/controller/pci-bcm6348.c index c1d3bde5df..085cc30eba 100644 --- a/target/linux/bmips/files/drivers/pci/controller/pci-bcm6348.c +++ b/target/linux/bmips/files/drivers/pci/controller/pci-bcm6348.c @@ -21,6 +21,7 @@ #include #include #include +#include #include #include "../pci.h" @@ -346,7 +347,9 @@ static struct pci_controller bcm6348_pci_controller = { .pci_ops = &bcm6348_pci_ops, .io_resource = &bcm6348_pci_io_resource, .mem_resource = &bcm6348_pci_mem_resource, +#if LINUX_VERSION_CODE < KERNEL_VERSION(5,13,0) .busn_resource = &bcm6348_pci_busn_resource, +#endif }; #ifdef CONFIG_CARDBUS @@ -729,6 +732,9 @@ static int bcm6348_pci_probe(struct platform_device *pdev) struct device_node *np = dev->of_node; struct bcm6348_pci *priv = &bcm6348_pci; struct resource *res; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,13,0) + LIST_HEAD(resources); +#endif of_pci_check_probe_only(); @@ -771,6 +777,9 @@ static int bcm6348_pci_probe(struct platform_device *pdev) return -EINVAL; of_pci_parse_bus_range(np, &bcm6348_pci_busn_resource); +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,13,0) + pci_add_resource(&resources, &bcm6348_pci_busn_resource); +#endif /* * Configuration accesses are done through IO space, remap 4 diff --git a/target/linux/bmips/files/drivers/pci/controller/pcie-bcm6318.c b/target/linux/bmips/files/drivers/pci/controller/pcie-bcm6318.c index 1df67b8389..21d8e50063 100644 --- a/target/linux/bmips/files/drivers/pci/controller/pcie-bcm6318.c +++ b/target/linux/bmips/files/drivers/pci/controller/pcie-bcm6318.c @@ -19,6 +19,7 @@ #include #include #include +#include #include #include "../pci.h" @@ -168,7 +169,7 @@ static int bcm6318_pcie_can_access(struct pci_bus *bus, int devfn) if (PCI_SLOT(devfn) == 0) return __raw_readl(priv->base + PCIE_DLSTATUS_REG) & DLSTATUS_PHYLINKUP; - /* else, fall through */ + fallthrough; default: return false; } @@ -226,7 +227,9 @@ static struct pci_controller bcm6318_pcie_controller = { .pci_ops = &bcm6318_pcie_ops, .io_resource = &bcm6318_pcie_io_resource, .mem_resource = &bcm6318_pcie_mem_resource, +#if LINUX_VERSION_CODE < KERNEL_VERSION(5,13,0) .busn_resource = &bcm6318_pcie_busn_resource, +#endif }; static void bcm6318_pcie_reset(struct bcm6318_pcie *priv) @@ -305,6 +308,9 @@ static int bcm6318_pcie_probe(struct platform_device *pdev) struct bcm6318_pcie *priv = &bcm6318_pcie; struct resource *res; int ret; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,13,0) + LIST_HEAD(resources); +#endif of_pci_check_probe_only(); @@ -370,6 +376,9 @@ static int bcm6318_pcie_probe(struct platform_device *pdev) return -EINVAL; of_pci_parse_bus_range(np, &bcm6318_pcie_busn_resource); +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,13,0) + pci_add_resource(&resources, &bcm6318_pcie_busn_resource); +#endif bcm6318_pcie_reset(priv); bcm6318_pcie_setup(priv); diff --git a/target/linux/bmips/files/drivers/pci/controller/pcie-bcm6328.c b/target/linux/bmips/files/drivers/pci/controller/pcie-bcm6328.c index 4c0d3723b8..4c032cf3d9 100644 --- a/target/linux/bmips/files/drivers/pci/controller/pcie-bcm6328.c +++ b/target/linux/bmips/files/drivers/pci/controller/pcie-bcm6328.c @@ -23,6 +23,7 @@ #include #include #include +#include #include #include "../pci.h" @@ -151,7 +152,7 @@ static int bcm6328_pcie_can_access(struct pci_bus *bus, int devfn) if (PCI_SLOT(devfn) == 0) return __raw_readl(priv->base + PCIE_DLSTATUS_REG) & DLSTATUS_PHYLINKUP; - /* else, fall through */ + fallthrough; default: return false; } @@ -209,7 +210,9 @@ static struct pci_controller bcm6328_pcie_controller = { .pci_ops = &bcm6328_pcie_ops, .io_resource = &bcm6328_pcie_io_resource, .mem_resource = &bcm6328_pcie_mem_resource, +#if LINUX_VERSION_CODE < KERNEL_VERSION(5,13,0) .busn_resource = &bcm6328_pcie_busn_resource, +#endif }; static void bcm6328_pcie_reset(struct bcm6328_pcie *priv) @@ -294,6 +297,9 @@ static int bcm6328_pcie_probe(struct platform_device *pdev) struct resource *res; unsigned int i; int ret; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,13,0) + LIST_HEAD(resources); +#endif pm_runtime_enable(dev); pm_runtime_no_callbacks(dev); @@ -380,6 +386,9 @@ static int bcm6328_pcie_probe(struct platform_device *pdev) return -EINVAL; of_pci_parse_bus_range(np, &bcm6328_pcie_busn_resource); +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,13,0) + pci_add_resource(&resources, &bcm6328_pcie_busn_resource); +#endif bcm6328_pcie_reset(priv); bcm6328_pcie_setup(priv); -- cgit v1.2.3