diff options
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.patch | 47 |
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 0000000..bd7d643 --- /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; |