Skip to content

Commit

Permalink
bcma: add the core unit number
Browse files Browse the repository at this point in the history
Some SoCs have two pcie or gmac cores and we need to know the number of
the specific core on the bus. This is the case for the BCM4706.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
  • Loading branch information
Hauke Mehrtens authored and John W. Linville committed Feb 6, 2012
1 parent 268bd85 commit 5f2d617
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 0 deletions.
14 changes: 14 additions & 0 deletions drivers/bcma/scan.c
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,17 @@ static struct bcma_device *bcma_find_core_by_index(struct bcma_bus *bus,
return NULL;
}

static struct bcma_device *bcma_find_core_reverse(struct bcma_bus *bus, u16 coreid)
{
struct bcma_device *core;

list_for_each_entry_reverse(core, &bus->cores, list) {
if (core->id.id == coreid)
return core;
}
return NULL;
}

static int bcma_get_next_core(struct bcma_bus *bus, u32 __iomem **eromptr,
struct bcma_device_id *match, int core_num,
struct bcma_device *core)
Expand Down Expand Up @@ -392,6 +403,7 @@ int bcma_bus_scan(struct bcma_bus *bus)
bcma_scan_switch_core(bus, erombase);

while (eromptr < eromend) {
struct bcma_device *other_core;
struct bcma_device *core = kzalloc(sizeof(*core), GFP_KERNEL);
if (!core)
return -ENOMEM;
Expand All @@ -411,6 +423,8 @@ int bcma_bus_scan(struct bcma_bus *bus)

core->core_index = core_num++;
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;

pr_info("Core %d found: %s "
"(manuf 0x%03X, id 0x%03X, rev 0x%02X, class 0x%X)\n",
Expand Down
1 change: 1 addition & 0 deletions include/linux/bcma/bcma.h
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,7 @@ struct bcma_device {
bool dev_registered;

u8 core_index;
u8 core_unit;

u32 addr;
u32 wrap;
Expand Down

0 comments on commit 5f2d617

Please sign in to comment.