From: Álvaro Fernández Rojas Date: Tue, 18 Apr 2023 18:11:28 +0000 (+0200) Subject: bmips: pci-bcm6348: load IO resource from DT ranges X-Git-Url: http://git.openwrt.org/openwrt/feeds.git?p=openwrt%2Fstaging%2Fdedeckeh.git;a=commitdiff_plain;h=5ec781c4448b91a0610dbea1a5f25bbd4bb35b73 bmips: pci-bcm6348: load IO resource from DT ranges Correctly load IO resource from DT ranges and remove the specific IO resource. Signed-off-by: Álvaro Fernández Rojas --- diff --git a/target/linux/bmips/dts/bcm6358.dtsi b/target/linux/bmips/dts/bcm6358.dtsi index 606e096d2e..eb8ca0c10d 100644 --- a/target/linux/bmips/dts/bcm6358.dtsi +++ b/target/linux/bmips/dts/bcm6358.dtsi @@ -283,16 +283,14 @@ pci: pci@fffe1000 { compatible = "brcm,bcm6348-pci"; - reg = <0xfffe1000 0x200>, - <0x08000000 0x10000>; - reg-names = "pci", - "pci-io"; + reg = <0xfffe1000 0x200>; #address-cells = <3>; #size-cells = <2>; device_type = "pci"; bus-range = <0x00 0x01>; - ranges = <0x2000000 0 0x30000000 0x30000000 0 0x8000000>; + ranges = <0x2000000 0 0x30000000 0x30000000 0 0x8000000>, + <0x1000000 0 0x08000000 0x08000000 0 0x0010000>; linux,pci-probe-only = <1>; interrupt-parent = <&periph_intc>; diff --git a/target/linux/bmips/dts/bcm6368.dtsi b/target/linux/bmips/dts/bcm6368.dtsi index 2d00434186..baa1c43417 100644 --- a/target/linux/bmips/dts/bcm6368.dtsi +++ b/target/linux/bmips/dts/bcm6368.dtsi @@ -412,16 +412,14 @@ pci: pci@10001000 { compatible = "brcm,bcm6348-pci"; - reg = <0x10001000 0x200>, - <0x08000000 0x10000>; - reg-names = "pci", - "pci-io"; + reg = <0x10001000 0x200>; #address-cells = <3>; #size-cells = <2>; device_type = "pci"; bus-range = <0x00 0x01>; - ranges = <0x2000000 0 0x30000000 0x30000000 0 0x8000000>; + ranges = <0x2000000 0 0x30000000 0x30000000 0 0x8000000>, + <0x1000000 0 0x08000000 0x08000000 0 0x0010000>; linux,pci-probe-only = <1>; interrupt-parent = <&periph_intc>; 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 730068ae79..39050b3de4 100644 --- a/target/linux/bmips/files/drivers/pci/controller/pci-bcm6348.c +++ b/target/linux/bmips/files/drivers/pci/controller/pci-bcm6348.c @@ -335,10 +335,7 @@ static struct pci_ops bcm6348_pci_ops = { .write = bcm6348_pci_write, }; -static struct resource bcm6348_pci_io_resource = { - .name = "BCM6348 PCI IO space", - .flags = IORESOURCE_IO, -}; +static struct resource bcm6348_pci_io_resource; static struct resource bcm6348_pci_mem_resource; static struct resource bcm6348_pci_busn_resource; @@ -732,26 +729,13 @@ static int bcm6348_pci_probe(struct platform_device *pdev) of_pci_check_probe_only(); - res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "pci"); + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); priv->pci = devm_ioremap_resource(dev, res); if (IS_ERR(priv->pci)) return PTR_ERR(priv->pci); priv->pcmcia = priv->pci + PCMCIA_OFFSET; - res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "pci-io"); - if (!res) - return -EINVAL; -#ifdef CONFIG_CARDBUS - bcm6348_pci_io_resource.start = res->start; - bcm6348_pci_io_resource.end = res->end - (resource_size(res) >> 1); - bcm6348_cb_io_resource.start = res->start + (resource_size(res) >> 1); - bcm6348_cb_io_resource.end = res->end; -#else - bcm6348_pci_io_resource.start = res->start; - bcm6348_pci_io_resource.end = res->end; -#endif - priv->irq = platform_get_irq(pdev, 0); if (!priv->irq) return -ENODEV; @@ -773,6 +757,12 @@ static int bcm6348_pci_probe(struct platform_device *pdev) of_pci_parse_bus_range(np, &bcm6348_pci_busn_resource); pci_add_resource(&resources, &bcm6348_pci_busn_resource); +#ifdef CONFIG_CARDBUS + bcm6348_cb_io_resource.start = bcm6348_pci_io_resource.start + (resource_size(&bcm6348_pci_io_resource) >> 1); + bcm6348_cb_io_resource.end = bcm6348_pci_io_resource.end; + bcm6348_pci_io_resource.end = bcm6348_pci_io_resource.end - (resource_size(&bcm6348_pci_io_resource) >> 1); +#endif + /* * Configuration accesses are done through IO space, remap 4 * first bytes to access it from CPU.