Re: [RFC][PATCH 03/10] bcma: add embedded bus
From: Hauke Mehrtens <hauke@hauke-m.de>
Date: 2011-06-06 21:40:18
Also in:
linux-mips
On 06/06/2011 01:22 AM, Julian Calaby wrote:
Hauke, Minor nit: On Mon, Jun 6, 2011 at 08:07, Hauke Mehrtens [off-list ref] wrote:quoted
This patch adds support for using bcma on an embedded bus. An embedded system like the bcm4716 could register this bus and it searches for the bcma cores then. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> ---diff --git a/drivers/bcma/scan.c b/drivers/bcma/scan.c index 70b39f7..9229615 100644 --- a/drivers/bcma/scan.c +++ b/drivers/bcma/scan.c@@ -219,9 +219,34 @@ 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; + bus->nr_cores = (tmp & BCMA_CC_ID_NRCORES) >> BCMA_CC_ID_NRCORES_SHIFT; + + /* If we are an embedded device we now know the number of avaliable + * core and ioremap the correct space. + */ + if (bus->hosttype == BCMA_HOSTTYPE_EMBEDDED) { + iounmap(bus->mmio); + mmio = ioremap(BCMA_ADDR_BASE, BCMA_CORE_SIZE * bus->nr_cores); + if (!mmio) + return -ENOMEM; + bus->mmio = mmio; + + mmio = ioremap(BCMA_WRAP_BASE, BCMA_CORE_SIZE * bus->nr_cores); + if (!mmio) + return -ENOMEM; + bus->host_embedded = mmio; + } + /* reset it to 0 as we use it for counting */ + bus->nr_cores = 0;Would it make sense to use a local variable for nr_cores, and only use it within the BCMA_HOSTTYPE_EMBEDDED if statement, rather than re-using bus->nr_cores and having to reset it?
Yes that looks better. Hauke