diff options
author | Rafał Miłecki <zajec5@gmail.com> | 2014-12-05 16:11:03 +0000 |
---|---|---|
committer | Rafał Miłecki <zajec5@gmail.com> | 2014-12-05 16:11:03 +0000 |
commit | 8033ccc9757fa1aed5a286e1f8992a53611ccfa5 (patch) | |
tree | a968d6cbcfffc76684834828aa969b9ff74350f4 /target/linux/generic | |
parent | e0342d268400cf810c737d98f79dbc12144d53d9 (diff) | |
download | upstream-8033ccc9757fa1aed5a286e1f8992a53611ccfa5.tar.gz upstream-8033ccc9757fa1aed5a286e1f8992a53611ccfa5.tar.bz2 upstream-8033ccc9757fa1aed5a286e1f8992a53611ccfa5.zip |
kernel: update bcma up to 2014-10-27
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
SVN-Revision: 43527
Diffstat (limited to 'target/linux/generic')
-rw-r--r-- | target/linux/generic/patches-3.14/025-bcma_backport.patch | 62 | ||||
-rw-r--r-- | target/linux/generic/patches-3.18/025-bcma_backport.patch | 46 |
2 files changed, 91 insertions, 17 deletions
diff --git a/target/linux/generic/patches-3.14/025-bcma_backport.patch b/target/linux/generic/patches-3.14/025-bcma_backport.patch index 0aff0f7dc7..a27cc8545e 100644 --- a/target/linux/generic/patches-3.14/025-bcma_backport.patch +++ b/target/linux/generic/patches-3.14/025-bcma_backport.patch @@ -248,14 +248,23 @@ /* Register */ err = bcma_bus_register(bus); if (err) -@@ -279,7 +282,10 @@ static const struct pci_device_id bcma_p +@@ -272,14 +275,18 @@ static SIMPLE_DEV_PM_OPS(bcma_pm_ops, bc + static const struct pci_device_id bcma_pci_bridge_tbl[] = { + { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x0576) }, + { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4313) }, +- { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 43224) }, ++ { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 43224) }, /* 0xa8d8 */ + { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4331) }, + { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4353) }, + { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4357) }, { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4358) }, { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4359) }, { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4365) }, + { 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 */ ++ { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 43227) }, /* 0xa8db, BCM43217 (sic!) */ ++ { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 43228) }, /* 0xa8dc */ { 0, }, }; MODULE_DEVICE_TABLE(pci, bcma_pci_bridge_tbl); @@ -269,7 +278,7 @@ MODULE_DESCRIPTION("Broadcom's specific AMBA driver"); MODULE_LICENSE("GPL"); -@@ -120,56 +121,121 @@ static void bcma_release_core_dev(struct +@@ -120,56 +121,124 @@ static void bcma_release_core_dev(struct kfree(core); } @@ -285,7 +294,7 @@ + return false; +} + -+#ifdef CONFIG_OF ++#if defined(CONFIG_OF) && defined(CONFIG_OF_ADDRESS) +static struct device_node *bcma_of_find_child_device(struct platform_device *parent, + struct bcma_device *core) +{ @@ -322,10 +331,8 @@ +} +#endif /* CONFIG_OF */ + -+static void bcma_register_core(struct bcma_bus *bus, struct bcma_device *core) ++void bcma_prepare_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); @@ -349,6 +356,11 @@ + case BCMA_HOSTTYPE_SDIO: + break; + } ++} ++ ++static void bcma_register_core(struct bcma_bus *bus, struct bcma_device *core) ++{ ++ int err; + + err = device_register(&core->dev); + if (err) { @@ -421,7 +433,7 @@ } #ifdef CONFIG_BCMA_DRIVER_MIPS -@@ -246,6 +312,12 @@ int bcma_bus_register(struct bcma_bus *b +@@ -246,6 +315,12 @@ int bcma_bus_register(struct bcma_bus *b bcma_core_chipcommon_early_init(&bus->drv_cc); } @@ -434,7 +446,7 @@ /* Try to get SPROM */ err = bcma_sprom_get(bus); if (err == -ENOENT) { -@@ -260,6 +332,13 @@ int bcma_bus_register(struct bcma_bus *b +@@ -260,6 +335,13 @@ int bcma_bus_register(struct bcma_bus *b bcma_core_chipcommon_init(&bus->drv_cc); } @@ -448,7 +460,7 @@ /* Init MIPS core */ core = bcma_find_core(bus, BCMA_CORE_MIPS_74K); if (core) { -@@ -281,6 +360,13 @@ int bcma_bus_register(struct bcma_bus *b +@@ -281,6 +363,13 @@ int bcma_bus_register(struct bcma_bus *b bcma_core_pci_init(&bus->drv_pci[1]); } @@ -462,7 +474,7 @@ /* Init GBIT MAC COMMON core */ core = bcma_find_core(bus, BCMA_CORE_4706_MAC_GBIT_COMMON); if (core) { -@@ -289,7 +375,7 @@ int bcma_bus_register(struct bcma_bus *b +@@ -289,7 +378,7 @@ int bcma_bus_register(struct bcma_bus *b } /* Register found cores */ @@ -471,7 +483,7 @@ bcma_info(bus, "Bus registered\n"); -@@ -307,6 +393,8 @@ void bcma_bus_unregister(struct bcma_bus +@@ -307,6 +396,8 @@ void bcma_bus_unregister(struct bcma_bus else if (err) bcma_err(bus, "Can not unregister GPIO driver: %i\n", err); @@ -480,7 +492,7 @@ cores[0] = bcma_find_core(bus, BCMA_CORE_MIPS_74K); cores[1] = bcma_find_core(bus, BCMA_CORE_PCIE); cores[2] = bcma_find_core(bus, BCMA_CORE_4706_MAC_GBIT_COMMON); -@@ -326,8 +414,6 @@ int __init bcma_bus_early_register(struc +@@ -326,8 +417,6 @@ int __init bcma_bus_early_register(struc struct bcma_device *core; struct bcma_device_id match; @@ -489,7 +501,7 @@ match.manuf = BCMA_MANUF_BCM; match.id = bcma_cc_core_id(bus); match.class = BCMA_CL_SIM; -@@ -486,6 +572,11 @@ static int __init bcma_modinit(void) +@@ -486,6 +575,11 @@ static int __init bcma_modinit(void) if (err) return err; @@ -501,7 +513,7 @@ #ifdef CONFIG_BCMA_HOST_PCI err = bcma_host_pci_init(); if (err) { -@@ -503,6 +594,7 @@ static void __exit bcma_modexit(void) +@@ -503,6 +597,7 @@ static void __exit bcma_modexit(void) #ifdef CONFIG_BCMA_HOST_PCI bcma_host_pci_exit(); #endif @@ -939,6 +951,14 @@ erombase = bcma_scan_read32(bus, 0, BCMA_CC_EROM); if (bus->hosttype == BCMA_HOSTTYPE_SOC) { eromptr = ioremap_nocache(erombase, BCMA_CORE_SIZE); +@@ -503,6 +505,7 @@ int bcma_bus_scan(struct bcma_bus *bus) + bus->nr_cores++; + other_core = bcma_find_core_reverse(bus, core->id.id); + core->core_unit = (other_core == NULL) ? 0 : other_core->core_unit + 1; ++ bcma_prepare_core(bus, core); + + bcma_info(bus, "Core %d found: %s (manuf 0x%03X, id 0x%03X, rev 0x%02X, class 0x%X)\n", + core->core_index, bcma_device_name(&core->id), --- a/drivers/bcma/host_soc.c +++ b/drivers/bcma/host_soc.c @@ -7,6 +7,9 @@ @@ -1195,7 +1215,15 @@ ohci_addr = 0x18009000; --- a/drivers/bcma/bcma_private.h +++ b/drivers/bcma/bcma_private.h -@@ -50,6 +50,10 @@ void bcma_chipco_serial_init(struct bcma +@@ -24,6 +24,7 @@ struct bcma_bus; + /* main.c */ + bool bcma_wait_value(struct bcma_device *core, u16 reg, u32 mask, u32 value, + int timeout); ++void bcma_prepare_core(struct bcma_bus *bus, struct bcma_device *core); + int bcma_bus_register(struct bcma_bus *bus); + void bcma_bus_unregister(struct bcma_bus *bus); + int __init bcma_bus_early_register(struct bcma_bus *bus, +@@ -50,6 +51,10 @@ void bcma_chipco_serial_init(struct bcma extern struct platform_device bcma_pflash_dev; #endif /* CONFIG_BCMA_DRIVER_MIPS */ @@ -1206,7 +1234,7 @@ /* driver_chipcommon_pmu.c */ u32 bcma_pmu_get_alp_clock(struct bcma_drv_cc *cc); u32 bcma_pmu_get_cpu_clock(struct bcma_drv_cc *cc); -@@ -84,6 +88,20 @@ extern int __init bcma_host_pci_init(voi +@@ -84,6 +89,20 @@ extern int __init bcma_host_pci_init(voi extern void __exit bcma_host_pci_exit(void); #endif /* CONFIG_BCMA_HOST_PCI */ diff --git a/target/linux/generic/patches-3.18/025-bcma_backport.patch b/target/linux/generic/patches-3.18/025-bcma_backport.patch new file mode 100644 index 0000000000..871791e871 --- /dev/null +++ b/target/linux/generic/patches-3.18/025-bcma_backport.patch @@ -0,0 +1,46 @@ +--- a/drivers/bcma/bcma_private.h ++++ b/drivers/bcma/bcma_private.h +@@ -24,6 +24,7 @@ struct bcma_bus; + /* main.c */ + bool bcma_wait_value(struct bcma_device *core, u16 reg, u32 mask, u32 value, + int timeout); ++void bcma_prepare_core(struct bcma_bus *bus, struct bcma_device *core); + int bcma_bus_register(struct bcma_bus *bus); + void bcma_bus_unregister(struct bcma_bus *bus); + int __init bcma_bus_early_register(struct bcma_bus *bus, +--- a/drivers/bcma/main.c ++++ b/drivers/bcma/main.c +@@ -169,10 +169,8 @@ static void bcma_of_fill_device(struct p + } + #endif /* CONFIG_OF */ + +-static void bcma_register_core(struct bcma_bus *bus, struct bcma_device *core) ++void bcma_prepare_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); +@@ -196,6 +194,11 @@ static void bcma_register_core(struct bc + case BCMA_HOSTTYPE_SDIO: + break; + } ++} ++ ++static void bcma_register_core(struct bcma_bus *bus, struct bcma_device *core) ++{ ++ int err; + + err = device_register(&core->dev); + if (err) { +--- a/drivers/bcma/scan.c ++++ b/drivers/bcma/scan.c +@@ -505,6 +505,7 @@ int bcma_bus_scan(struct bcma_bus *bus) + bus->nr_cores++; + other_core = bcma_find_core_reverse(bus, core->id.id); + core->core_unit = (other_core == NULL) ? 0 : other_core->core_unit + 1; ++ bcma_prepare_core(bus, core); + + bcma_info(bus, "Core %d found: %s (manuf 0x%03X, id 0x%03X, rev 0x%02X, class 0x%X)\n", + core->core_index, bcma_device_name(&core->id), |