Skip to content

Commit

Permalink
bcma: scan for extra address space
Browse files Browse the repository at this point in the history
Some cores like the USB core have two address spaces. In the USB host
controller one address space is used for the OHCI and the other for the
EHCI controller interface. The USB controller is the only core I found
with two address spaces. This code is based on the AI scan function
ai_scan() in shared/aiutils.c in the Broadcom SDK.

CC: Rafał Miłecki <zajec5@gmail.com>
CC: linux-wireless@vger.kernel.org
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
Hauke Mehrtens authored and Greg Kroah-Hartman committed Apr 18, 2012
1 parent af58105 commit e167d9f
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 1 deletion.
19 changes: 18 additions & 1 deletion drivers/bcma/scan.c
Original file line number Diff line number Diff line change
Expand Up @@ -297,6 +297,23 @@ static int bcma_get_next_core(struct bcma_bus *bus, u32 __iomem **eromptr,
return -EILSEQ;
}

/* First Slave Address Descriptor should be port 0:
* the main register space for the core
*/
tmp = bcma_erom_get_addr_desc(bus, eromptr, SCAN_ADDR_TYPE_SLAVE, 0);
if (tmp <= 0) {
/* Try again to see if it is a bridge */
tmp = bcma_erom_get_addr_desc(bus, eromptr,
SCAN_ADDR_TYPE_BRIDGE, 0);
if (tmp <= 0) {
return -EILSEQ;
} else {
pr_info("Bridge found\n");
return -ENXIO;
}
}
core->addr = tmp;

/* get & parse slave ports */
for (i = 0; i < ports[1]; i++) {
for (j = 0; ; j++) {
Expand All @@ -309,7 +326,7 @@ static int bcma_get_next_core(struct bcma_bus *bus, u32 __iomem **eromptr,
break;
} else {
if (i == 0 && j == 0)
core->addr = tmp;
core->addr1 = tmp;
}
}
}
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 @@ -139,6 +139,7 @@ struct bcma_device {
u8 core_unit;

u32 addr;
u32 addr1;
u32 wrap;

void __iomem *io_addr;
Expand Down

0 comments on commit e167d9f

Please sign in to comment.