From 8fae77fc9bb783fcaeb58d94e1ce05ef41fe193c Mon Sep 17 00:00:00 2001 From: =?utf8?q?Rafa=C5=82=20Mi=C5=82ecki?= Date: Tue, 21 Mar 2017 09:26:02 +0100 Subject: [PATCH] kernel: update bcma including recent changes for 4.12 MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit This adds support for describing GPIO chips placed on PCIe cards. Thanks to this we get working 2.4 GHz LED on Tenda AC9. Signed-off-by: Rafał Miłecki --- .../905-BCM53573-minor-hacks.patch | 4 +-- .../905-BCM53573-minor-hacks.patch | 4 +-- .../patches-4.4/026-bcma-from-4.12.patch | 35 +++++++++++++++++++ .../patches-4.9/072-bcma-from-4.12.patch | 35 +++++++++++++++++++ 4 files changed, 74 insertions(+), 4 deletions(-) diff --git a/target/linux/bcm53xx/patches-4.4/905-BCM53573-minor-hacks.patch b/target/linux/bcm53xx/patches-4.4/905-BCM53573-minor-hacks.patch index e48d3aa678..52a32a00c2 100644 --- a/target/linux/bcm53xx/patches-4.4/905-BCM53573-minor-hacks.patch +++ b/target/linux/bcm53xx/patches-4.4/905-BCM53573-minor-hacks.patch @@ -29,7 +29,7 @@ Signed-off-by: Rafał Miłecki #size-cells = <1>; --- a/drivers/bcma/main.c +++ b/drivers/bcma/main.c -@@ -352,14 +352,6 @@ static int bcma_register_devices(struct +@@ -348,14 +348,6 @@ static int bcma_register_devices(struct } #endif @@ -44,7 +44,7 @@ Signed-off-by: Rafał Miłecki #ifdef CONFIG_BCMA_NFLASH if (bus->drv_cc.nflash.present) { err = platform_device_register(&bcma_nflash_dev); -@@ -440,6 +432,14 @@ int bcma_bus_register(struct bcma_bus *b +@@ -436,6 +428,14 @@ int bcma_bus_register(struct bcma_bus *b bcma_register_core(bus, core); } diff --git a/target/linux/bcm53xx/patches-4.9/905-BCM53573-minor-hacks.patch b/target/linux/bcm53xx/patches-4.9/905-BCM53573-minor-hacks.patch index fad36a6655..a2f15e56b2 100644 --- a/target/linux/bcm53xx/patches-4.9/905-BCM53573-minor-hacks.patch +++ b/target/linux/bcm53xx/patches-4.9/905-BCM53573-minor-hacks.patch @@ -29,7 +29,7 @@ Signed-off-by: Rafał Miłecki #size-cells = <1>; --- a/drivers/bcma/main.c +++ b/drivers/bcma/main.c -@@ -352,14 +352,6 @@ static int bcma_register_devices(struct +@@ -348,14 +348,6 @@ static int bcma_register_devices(struct } #endif @@ -44,7 +44,7 @@ Signed-off-by: Rafał Miłecki #ifdef CONFIG_BCMA_NFLASH if (bus->drv_cc.nflash.present) { err = platform_device_register(&bcma_nflash_dev); -@@ -440,6 +432,14 @@ int bcma_bus_register(struct bcma_bus *b +@@ -436,6 +428,14 @@ int bcma_bus_register(struct bcma_bus *b bcma_register_core(bus, core); } diff --git a/target/linux/generic/patches-4.4/026-bcma-from-4.12.patch b/target/linux/generic/patches-4.4/026-bcma-from-4.12.patch index ab8a212940..bd7d643cbb 100644 --- a/target/linux/generic/patches-4.4/026-bcma-from-4.12.patch +++ b/target/linux/generic/patches-4.4/026-bcma-from-4.12.patch @@ -10,3 +10,38 @@ #endif switch (bus->chipinfo.id) { case BCMA_CHIP_ID_BCM4707: +--- a/drivers/bcma/main.c ++++ b/drivers/bcma/main.c +@@ -201,9 +201,6 @@ static void bcma_of_fill_device(struct d + { + struct device_node *node; + +- if (!IS_ENABLED(CONFIG_OF_IRQ)) +- return; +- + node = bcma_of_find_child_device(parent, core); + if (node) + core->dev.of_node = node; +@@ -242,19 +239,18 @@ void bcma_prepare_core(struct bcma_bus * + core->dev.release = bcma_release_core_dev; + core->dev.bus = &bcma_bus_type; + dev_set_name(&core->dev, "bcma%d:%d", bus->num, core->core_index); ++ core->dev.parent = bcma_bus_get_host_dev(bus); ++ if (core->dev.parent) ++ bcma_of_fill_device(core->dev.parent, core); + + switch (bus->hosttype) { + case BCMA_HOSTTYPE_PCI: +- core->dev.parent = &bus->host_pci->dev; + core->dma_dev = &bus->host_pci->dev; + core->irq = bus->host_pci->irq; + break; + case BCMA_HOSTTYPE_SOC: + if (IS_ENABLED(CONFIG_OF) && bus->host_pdev) { + core->dma_dev = &bus->host_pdev->dev; +- core->dev.parent = &bus->host_pdev->dev; +- if (core->dev.parent) +- bcma_of_fill_device(core->dev.parent, core); + } else { + core->dev.dma_mask = &core->dev.coherent_dma_mask; + core->dma_dev = &core->dev; diff --git a/target/linux/generic/patches-4.9/072-bcma-from-4.12.patch b/target/linux/generic/patches-4.9/072-bcma-from-4.12.patch index 1c3efea172..23f2656ab5 100644 --- a/target/linux/generic/patches-4.9/072-bcma-from-4.12.patch +++ b/target/linux/generic/patches-4.9/072-bcma-from-4.12.patch @@ -10,3 +10,38 @@ #endif switch (bus->chipinfo.id) { case BCMA_CHIP_ID_BCM4707: +--- a/drivers/bcma/main.c ++++ b/drivers/bcma/main.c +@@ -201,9 +201,6 @@ static void bcma_of_fill_device(struct d + { + struct device_node *node; + +- if (!IS_ENABLED(CONFIG_OF_IRQ)) +- return; +- + node = bcma_of_find_child_device(parent, core); + if (node) + core->dev.of_node = node; +@@ -242,19 +239,18 @@ void bcma_prepare_core(struct bcma_bus * + core->dev.release = bcma_release_core_dev; + core->dev.bus = &bcma_bus_type; + dev_set_name(&core->dev, "bcma%d:%d", bus->num, core->core_index); ++ core->dev.parent = bcma_bus_get_host_dev(bus); ++ if (core->dev.parent) ++ bcma_of_fill_device(core->dev.parent, core); + + switch (bus->hosttype) { + case BCMA_HOSTTYPE_PCI: +- core->dev.parent = &bus->host_pci->dev; + core->dma_dev = &bus->host_pci->dev; + core->irq = bus->host_pci->irq; + break; + case BCMA_HOSTTYPE_SOC: + if (IS_ENABLED(CONFIG_OF) && bus->host_pdev) { + core->dma_dev = &bus->host_pdev->dev; +- core->dev.parent = &bus->host_pdev->dev; +- if (core->dev.parent) +- bcma_of_fill_device(core->dev.parent, core); + } else { + core->dev.dma_mask = &core->dev.coherent_dma_mask; + core->dma_dev = &core->dev; -- 2.25.1