aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic/pending-4.4/026-bcma-from-4.12.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/generic/pending-4.4/026-bcma-from-4.12.patch')
-rw-r--r--target/linux/generic/pending-4.4/026-bcma-from-4.12.patch47
1 files changed, 47 insertions, 0 deletions
diff --git a/target/linux/generic/pending-4.4/026-bcma-from-4.12.patch b/target/linux/generic/pending-4.4/026-bcma-from-4.12.patch
new file mode 100644
index 0000000000..bd7d643cbb
--- /dev/null
+++ b/target/linux/generic/pending-4.4/026-bcma-from-4.12.patch
@@ -0,0 +1,47 @@
+--- a/drivers/bcma/driver_gpio.c
++++ b/drivers/bcma/driver_gpio.c
+@@ -190,8 +190,7 @@ int bcma_gpio_init(struct bcma_drv_cc *c
+ chip->owner = THIS_MODULE;
+ chip->dev = bcma_bus_get_host_dev(bus);
+ #if IS_BUILTIN(CONFIG_OF)
+- if (cc->core->bus->hosttype == BCMA_HOSTTYPE_SOC)
+- chip->of_node = cc->core->dev.of_node;
++ chip->of_node = cc->core->dev.of_node;
+ #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;