diff --git a/drivers/bcma/scan.c b/drivers/bcma/scan.c index 4012d8d93e9..79705534217 100644 --- a/drivers/bcma/scan.c +++ b/drivers/bcma/scan.c @@ -312,15 +312,10 @@ static int bcma_get_next_core(struct bcma_bus *bus, u32 __iomem **eromptr, return 0; } -int bcma_bus_scan(struct bcma_bus *bus) +static void bcma_init_bus(struct bcma_bus *bus) { - u32 erombase; - u32 __iomem *eromptr, *eromend; - s32 tmp; - int err; - INIT_LIST_HEAD(&bus->cores); bus->nr_cores = 0; @@ -330,6 +325,16 @@ int bcma_bus_scan(struct bcma_bus *bus) bus->chipinfo.id = (tmp & BCMA_CC_ID_ID) >> BCMA_CC_ID_ID_SHIFT; bus->chipinfo.rev = (tmp & BCMA_CC_ID_REV) >> BCMA_CC_ID_REV_SHIFT; bus->chipinfo.pkg = (tmp & BCMA_CC_ID_PKG) >> BCMA_CC_ID_PKG_SHIFT; +} + +int bcma_bus_scan(struct bcma_bus *bus) +{ + u32 erombase; + u32 __iomem *eromptr, *eromend; + + int err; + + bcma_init_bus(bus); erombase = bcma_scan_read32(bus, 0, BCMA_CC_EROM); eromptr = bus->mmio;