kernel: update bcma including recent changes for 4.12
[openwrt/openwrt.git] / target / linux / generic / patches-4.9 / 072-bcma-from-4.12.patch
index 1c3efea1720fe1c3c0c04936928b9bf789a1c1e7..23f2656ab5fc8482cbb7cf7d407b1384fe4d2408 100644 (file)
  #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;