aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic/patches-4.9/072-bcma-from-4.12.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/generic/patches-4.9/072-bcma-from-4.12.patch')
-rw-r--r--target/linux/generic/patches-4.9/072-bcma-from-4.12.patch35
1 files changed, 35 insertions, 0 deletions
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;