Merge commit 'c039c332f23e794deb6d6f37b9f07ff3b27fb2cf' into md
[deliverable/linux.git] / drivers / bcma / scan.c
index 5ed0718fc66056a9ddb32976f6e5927fca8df573..5672b13d09516f0b257b7c3f704c868c8c5c30c4 100644 (file)
@@ -21,6 +21,7 @@ struct bcma_device_id_name {
 };
 
 static const struct bcma_device_id_name bcma_arm_device_names[] = {
+       { BCMA_CORE_4706_MAC_GBIT_COMMON, "BCM4706 GBit MAC Common" },
        { BCMA_CORE_ARM_1176, "ARM 1176" },
        { BCMA_CORE_ARM_7TDMI, "ARM 7TDMI" },
        { BCMA_CORE_ARM_CM3, "ARM CM3" },
@@ -28,6 +29,11 @@ static const struct bcma_device_id_name bcma_arm_device_names[] = {
 
 static const struct bcma_device_id_name bcma_bcm_device_names[] = {
        { BCMA_CORE_OOB_ROUTER, "OOB Router" },
+       { BCMA_CORE_4706_CHIPCOMMON, "BCM4706 ChipCommon" },
+       { BCMA_CORE_4706_SOC_RAM, "BCM4706 SOC RAM" },
+       { BCMA_CORE_4706_MAC_GBIT, "BCM4706 GBit MAC" },
+       { BCMA_CORE_AMEMC, "AMEMC (DDR)" },
+       { BCMA_CORE_ALTA, "ALTA (I2S)" },
        { BCMA_CORE_INVALID, "Invalid" },
        { BCMA_CORE_CHIPCOMMON, "ChipCommon" },
        { BCMA_CORE_ILINE20, "ILine 20" },
@@ -289,11 +295,15 @@ static int bcma_get_next_core(struct bcma_bus *bus, u32 __iomem **eromptr,
 
        /* check if component is a core at all */
        if (wrappers[0] + wrappers[1] == 0) {
-               /* we could save addrl of the router
-               if (cid == BCMA_CORE_OOB_ROUTER)
-                */
-               bcma_erom_skip_component(bus, eromptr);
-               return -ENXIO;
+               /* Some specific cores don't need wrappers */
+               switch (core->id.id) {
+               case BCMA_CORE_4706_MAC_GBIT_COMMON:
+               /* Not used yet: case BCMA_CORE_OOB_ROUTER: */
+                       break;
+               default:
+                       bcma_erom_skip_component(bus, eromptr);
+                       return -ENXIO;
+               }
        }
 
        if (bcma_erom_is_bridge(bus, eromptr)) {
@@ -334,7 +344,7 @@ static int bcma_get_next_core(struct bcma_bus *bus, u32 __iomem **eromptr,
                if (tmp <= 0) {
                        return -EILSEQ;
                } else {
-                       pr_info("Bridge found\n");
+                       bcma_info(bus, "Bridge found\n");
                        return -ENXIO;
                }
        }
@@ -421,8 +431,8 @@ void bcma_init_bus(struct bcma_bus *bus)
        chipinfo->id = (tmp & BCMA_CC_ID_ID) >> BCMA_CC_ID_ID_SHIFT;
        chipinfo->rev = (tmp & BCMA_CC_ID_REV) >> BCMA_CC_ID_REV_SHIFT;
        chipinfo->pkg = (tmp & BCMA_CC_ID_PKG) >> BCMA_CC_ID_PKG_SHIFT;
-       pr_info("Found chip with id 0x%04X, rev 0x%02X and package 0x%02X\n",
-               chipinfo->id, chipinfo->rev, chipinfo->pkg);
+       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;
 }
@@ -476,13 +486,12 @@ int bcma_bus_scan(struct bcma_bus *bus)
                other_core = bcma_find_core_reverse(bus, core->id.id);
                core->core_unit = (other_core == NULL) ? 0 : other_core->core_unit + 1;
 
-               pr_info("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),
-                       core->id.manuf, core->id.id, core->id.rev,
-                       core->id.class);
+               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),
+                         core->id.manuf, core->id.id, core->id.rev,
+                         core->id.class);
 
-               list_add(&core->list, &bus->cores);
+               list_add_tail(&core->list, &bus->cores);
        }
 
        if (bus->hosttype == BCMA_HOSTTYPE_SOC)
@@ -532,13 +541,12 @@ int __init bcma_bus_scan_early(struct bcma_bus *bus,
 
                core->core_index = core_num++;
                bus->nr_cores++;
-               pr_info("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),
-                       core->id.manuf, core->id.id, core->id.rev,
-                       core->id.class);
+               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),
+                         core->id.manuf, core->id.id, core->id.rev,
+                         core->id.class);
 
-               list_add(&core->list, &bus->cores);
+               list_add_tail(&core->list, &bus->cores);
                err = 0;
                break;
        }
This page took 0.027217 seconds and 5 git commands to generate.