diff options
Diffstat (limited to 'target/linux/generic/patches-3.14/026-bcma-sent.patch')
-rw-r--r-- | target/linux/generic/patches-3.14/026-bcma-sent.patch | 247 |
1 files changed, 0 insertions, 247 deletions
diff --git a/target/linux/generic/patches-3.14/026-bcma-sent.patch b/target/linux/generic/patches-3.14/026-bcma-sent.patch deleted file mode 100644 index a205c52792..0000000000 --- a/target/linux/generic/patches-3.14/026-bcma-sent.patch +++ /dev/null @@ -1,247 +0,0 @@ ---- a/arch/mips/bcm47xx/setup.c -+++ b/arch/mips/bcm47xx/setup.c -@@ -202,6 +202,10 @@ static void __init bcm47xx_register_bcma - - err = bcma_host_soc_register(&bcm47xx_bus.bcma); - if (err) -+ panic("Failed to register BCMA bus (err %d)", err); -+ -+ err = bcma_host_soc_init(&bcm47xx_bus.bcma); -+ if (err) - panic("Failed to initialize BCMA bus (err %d)", err); - - bcm47xx_fill_bcma_boardinfo(&bcm47xx_bus.bcma.bus.boardinfo, NULL); ---- a/drivers/bcma/host_pci.c -+++ b/drivers/bcma/host_pci.c -@@ -208,6 +208,9 @@ static int bcma_host_pci_probe(struct pc - bus->boardinfo.vendor = bus->host_pci->subsystem_vendor; - bus->boardinfo.type = bus->host_pci->subsystem_device; - -+ /* Initialize struct, detect chip */ -+ bcma_init_bus(bus); -+ - /* Register */ - err = bcma_bus_register(bus); - if (err) -@@ -282,6 +285,7 @@ static const struct pci_device_id bcma_p - { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x43a9) }, - { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x43aa) }, - { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4727) }, -+ { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 43227) }, /* 0xA8DB */ - { 0, }, - }; - MODULE_DEVICE_TABLE(pci, bcma_pci_bridge_tbl); ---- a/drivers/bcma/host_soc.c -+++ b/drivers/bcma/host_soc.c -@@ -165,7 +165,6 @@ static const struct bcma_host_ops bcma_h - int __init bcma_host_soc_register(struct bcma_soc *soc) - { - struct bcma_bus *bus = &soc->bus; -- int err; - - /* iomap only first core. We have to read some register on this core - * to scan the bus. -@@ -178,7 +177,18 @@ int __init bcma_host_soc_register(struct - bus->hosttype = BCMA_HOSTTYPE_SOC; - bus->ops = &bcma_host_soc_ops; - -- /* Register */ -+ /* Initialize struct, detect chip */ -+ bcma_init_bus(bus); -+ -+ return 0; -+} -+ -+int __init bcma_host_soc_init(struct bcma_soc *soc) -+{ -+ struct bcma_bus *bus = &soc->bus; -+ int err; -+ -+ /* Scan bus and initialize it */ - err = bcma_bus_early_register(bus, &soc->core_cc, &soc->core_mips); - if (err) - iounmap(bus->mmio); ---- a/drivers/bcma/main.c -+++ b/drivers/bcma/main.c -@@ -120,10 +120,53 @@ static void bcma_release_core_dev(struct - kfree(core); - } - --static int bcma_register_cores(struct bcma_bus *bus) -+static bool bcma_is_core_needed_early(u16 core_id) -+{ -+ switch (core_id) { -+ case BCMA_CORE_NS_NAND: -+ case BCMA_CORE_NS_QSPI: -+ return true; -+ } -+ -+ return false; -+} -+ -+static void bcma_register_core(struct bcma_bus *bus, struct bcma_device *core) -+{ -+ int err; -+ -+ 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); -+ -+ 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: -+ core->dev.dma_mask = &core->dev.coherent_dma_mask; -+ core->dma_dev = &core->dev; -+ break; -+ case BCMA_HOSTTYPE_SDIO: -+ break; -+ } -+ -+ err = device_register(&core->dev); -+ if (err) { -+ bcma_err(bus, "Could not register dev for core 0x%03X\n", -+ core->id.id); -+ put_device(&core->dev); -+ return; -+ } -+ core->dev_registered = true; -+} -+ -+static int bcma_register_devices(struct bcma_bus *bus) - { - struct bcma_device *core; -- int err, dev_id = 0; -+ int err; - - list_for_each_entry(core, &bus->cores, list) { - /* We support that cores ourself */ -@@ -138,39 +181,16 @@ static int bcma_register_cores(struct bc - continue; - } - -+ /* Early cores were already registered */ -+ if (bcma_is_core_needed_early(core->id.id)) -+ continue; -+ - /* Only first GMAC core on BCM4706 is connected and working */ - if (core->id.id == BCMA_CORE_4706_MAC_GBIT && - core->core_unit > 0) - continue; - -- core->dev.release = bcma_release_core_dev; -- core->dev.bus = &bcma_bus_type; -- dev_set_name(&core->dev, "bcma%d:%d", bus->num, dev_id); -- -- 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: -- core->dev.dma_mask = &core->dev.coherent_dma_mask; -- core->dma_dev = &core->dev; -- break; -- case BCMA_HOSTTYPE_SDIO: -- break; -- } -- -- err = device_register(&core->dev); -- if (err) { -- bcma_err(bus, -- "Could not register dev for core 0x%03X\n", -- core->id.id); -- put_device(&core->dev); -- continue; -- } -- core->dev_registered = true; -- dev_id++; -+ bcma_register_core(bus, core); - } - - #ifdef CONFIG_BCMA_DRIVER_MIPS -@@ -247,6 +267,12 @@ int bcma_bus_register(struct bcma_bus *b - bcma_core_chipcommon_early_init(&bus->drv_cc); - } - -+ /* Cores providing flash access go before SPROM init */ -+ list_for_each_entry(core, &bus->cores, list) { -+ if (bcma_is_core_needed_early(core->id.id)) -+ bcma_register_core(bus, core); -+ } -+ - /* Try to get SPROM */ - err = bcma_sprom_get(bus); - if (err == -ENOENT) { -@@ -297,7 +323,7 @@ int bcma_bus_register(struct bcma_bus *b - } - - /* Register found cores */ -- bcma_register_cores(bus); -+ bcma_register_devices(bus); - - bcma_info(bus, "Bus registered\n"); - -@@ -334,8 +360,6 @@ int __init bcma_bus_early_register(struc - struct bcma_device *core; - struct bcma_device_id match; - -- bcma_init_bus(bus); -- - match.manuf = BCMA_MANUF_BCM; - match.id = bcma_cc_core_id(bus); - match.class = BCMA_CL_SIM; ---- a/drivers/bcma/scan.c -+++ b/drivers/bcma/scan.c -@@ -438,9 +438,6 @@ void bcma_init_bus(struct bcma_bus *bus) - s32 tmp; - struct bcma_chipinfo *chipinfo = &(bus->chipinfo); - -- if (bus->init_done) -- return; -- - INIT_LIST_HEAD(&bus->cores); - bus->nr_cores = 0; - -@@ -452,8 +449,6 @@ void bcma_init_bus(struct bcma_bus *bus) - chipinfo->pkg = (tmp & BCMA_CC_ID_PKG) >> BCMA_CC_ID_PKG_SHIFT; - bcma_info(bus, "Found chip with id 0x%04X, rev 0x%02X and package 0x%02X\n", - chipinfo->id, chipinfo->rev, chipinfo->pkg); -- -- bus->init_done = true; - } - - int bcma_bus_scan(struct bcma_bus *bus) -@@ -463,8 +458,6 @@ int bcma_bus_scan(struct bcma_bus *bus) - - int err, core_num = 0; - -- bcma_init_bus(bus); -- - erombase = bcma_scan_read32(bus, 0, BCMA_CC_EROM); - if (bus->hosttype == BCMA_HOSTTYPE_SOC) { - eromptr = ioremap_nocache(erombase, BCMA_CORE_SIZE); ---- a/include/linux/bcma/bcma.h -+++ b/include/linux/bcma/bcma.h -@@ -332,7 +332,6 @@ struct bcma_bus { - struct bcma_device *mapped_core; - struct list_head cores; - u8 nr_cores; -- u8 init_done:1; - u8 num; - - struct bcma_drv_cc drv_cc; ---- a/include/linux/bcma/bcma_soc.h -+++ b/include/linux/bcma/bcma_soc.h -@@ -10,6 +10,7 @@ struct bcma_soc { - }; - - int __init bcma_host_soc_register(struct bcma_soc *soc); -+int __init bcma_host_soc_init(struct bcma_soc *soc); - - int bcma_bus_register(struct bcma_bus *bus); - |