Commit dc8ecdd3 authored by Rafał Miłecki's avatar Rafał Miłecki Committed by John W. Linville

bcma: move bus struct setup into early part of host specific code

This change is important for SoC host. In future we will want to know
chip ID (needed for early MIPS boot) before doing cores scanning.
Signed-off-by: default avatarRafał Miłecki <zajec5@gmail.com>
Acked-by: default avatarHauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 39e90c77
...@@ -208,6 +208,9 @@ static int bcma_host_pci_probe(struct pci_dev *dev, ...@@ -208,6 +208,9 @@ static int bcma_host_pci_probe(struct pci_dev *dev,
bus->boardinfo.vendor = bus->host_pci->subsystem_vendor; bus->boardinfo.vendor = bus->host_pci->subsystem_vendor;
bus->boardinfo.type = bus->host_pci->subsystem_device; bus->boardinfo.type = bus->host_pci->subsystem_device;
/* Initialize struct, detect chip */
bcma_init_bus(bus);
/* Register */ /* Register */
err = bcma_bus_register(bus); err = bcma_bus_register(bus);
if (err) if (err)
......
...@@ -178,6 +178,9 @@ int __init bcma_host_soc_register(struct bcma_soc *soc) ...@@ -178,6 +178,9 @@ int __init bcma_host_soc_register(struct bcma_soc *soc)
bus->hosttype = BCMA_HOSTTYPE_SOC; bus->hosttype = BCMA_HOSTTYPE_SOC;
bus->ops = &bcma_host_soc_ops; bus->ops = &bcma_host_soc_ops;
/* Initialize struct, detect chip */
bcma_init_bus(bus);
/* Register */ /* Register */
err = bcma_bus_early_register(bus, &soc->core_cc, &soc->core_mips); err = bcma_bus_early_register(bus, &soc->core_cc, &soc->core_mips);
if (err) if (err)
......
...@@ -334,8 +334,6 @@ int __init bcma_bus_early_register(struct bcma_bus *bus, ...@@ -334,8 +334,6 @@ int __init bcma_bus_early_register(struct bcma_bus *bus,
struct bcma_device *core; struct bcma_device *core;
struct bcma_device_id match; struct bcma_device_id match;
bcma_init_bus(bus);
match.manuf = BCMA_MANUF_BCM; match.manuf = BCMA_MANUF_BCM;
match.id = bcma_cc_core_id(bus); match.id = bcma_cc_core_id(bus);
match.class = BCMA_CL_SIM; match.class = BCMA_CL_SIM;
......
...@@ -438,9 +438,6 @@ void bcma_init_bus(struct bcma_bus *bus) ...@@ -438,9 +438,6 @@ void bcma_init_bus(struct bcma_bus *bus)
s32 tmp; s32 tmp;
struct bcma_chipinfo *chipinfo = &(bus->chipinfo); struct bcma_chipinfo *chipinfo = &(bus->chipinfo);
if (bus->init_done)
return;
INIT_LIST_HEAD(&bus->cores); INIT_LIST_HEAD(&bus->cores);
bus->nr_cores = 0; bus->nr_cores = 0;
...@@ -452,8 +449,6 @@ void bcma_init_bus(struct bcma_bus *bus) ...@@ -452,8 +449,6 @@ void bcma_init_bus(struct bcma_bus *bus)
chipinfo->pkg = (tmp & BCMA_CC_ID_PKG) >> BCMA_CC_ID_PKG_SHIFT; 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", bcma_info(bus, "Found chip with id 0x%04X, rev 0x%02X and package 0x%02X\n",
chipinfo->id, chipinfo->rev, chipinfo->pkg); chipinfo->id, chipinfo->rev, chipinfo->pkg);
bus->init_done = true;
} }
int bcma_bus_scan(struct bcma_bus *bus) int bcma_bus_scan(struct bcma_bus *bus)
...@@ -463,8 +458,6 @@ 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; int err, core_num = 0;
bcma_init_bus(bus);
erombase = bcma_scan_read32(bus, 0, BCMA_CC_EROM); erombase = bcma_scan_read32(bus, 0, BCMA_CC_EROM);
if (bus->hosttype == BCMA_HOSTTYPE_SOC) { if (bus->hosttype == BCMA_HOSTTYPE_SOC) {
eromptr = ioremap_nocache(erombase, BCMA_CORE_SIZE); eromptr = ioremap_nocache(erombase, BCMA_CORE_SIZE);
......
...@@ -332,7 +332,6 @@ struct bcma_bus { ...@@ -332,7 +332,6 @@ struct bcma_bus {
struct bcma_device *mapped_core; struct bcma_device *mapped_core;
struct list_head cores; struct list_head cores;
u8 nr_cores; u8 nr_cores;
u8 init_done:1;
u8 num; u8 num;
struct bcma_drv_cc drv_cc; struct bcma_drv_cc drv_cc;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment