* [PATCH 3/7] bcma: scan for extra address space [not found] <1331496505-18697-1-git-send-email-hauke@hauke-m.de> @ 2012-03-11 20:08 ` Hauke Mehrtens 2012-03-11 21:59 ` Julian Calaby 0 siblings, 1 reply; 7+ messages in thread From: Hauke Mehrtens @ 2012-03-11 20:08 UTC (permalink / raw) To: gregkh Cc: stern, linux-mips, ralf, m, linux-usb, Hauke Mehrtens, Rafał Miłecki, linux-wireless 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 i 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> --- drivers/bcma/scan.c | 18 +++++++++++++++++- include/linux/bcma/bcma.h | 1 + 2 files changed, 18 insertions(+), 1 deletions(-) diff --git a/drivers/bcma/scan.c b/drivers/bcma/scan.c index 3a2f672..3c2eeed 100644 --- a/drivers/bcma/scan.c +++ b/drivers/bcma/scan.c @@ -286,6 +286,22 @@ 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) { + pr_info("found bridge"); + return -ENXIO; + } + } + core->addr = tmp; + /* get & parse slave ports */ for (i = 0; i < ports[1]; i++) { for (j = 0; ; j++) { @@ -298,7 +314,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; } } } diff --git a/include/linux/bcma/bcma.h b/include/linux/bcma/bcma.h index 83c209f..7fe41e1 100644 --- a/include/linux/bcma/bcma.h +++ b/include/linux/bcma/bcma.h @@ -138,6 +138,7 @@ struct bcma_device { u8 core_index; u32 addr; + u32 addr1; u32 wrap; void __iomem *io_addr; -- 1.7.5.4 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 3/7] bcma: scan for extra address space 2012-03-11 20:08 ` [PATCH 3/7] bcma: scan for extra address space Hauke Mehrtens @ 2012-03-11 21:59 ` Julian Calaby 2012-03-11 23:34 ` Hauke Mehrtens 0 siblings, 1 reply; 7+ messages in thread From: Julian Calaby @ 2012-03-11 21:59 UTC (permalink / raw) To: Hauke Mehrtens Cc: gregkh, stern, linux-mips, ralf, m, linux-usb, Rafał Miłecki, linux-wireless Hi Hauke, On Mon, Mar 12, 2012 at 07:08, Hauke Mehrtens <hauke@hauke-m.de> wrote: > 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 i 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> > --- > drivers/bcma/scan.c | 18 +++++++++++++++++- > include/linux/bcma/bcma.h | 1 + > 2 files changed, 18 insertions(+), 1 deletions(-) > > diff --git a/drivers/bcma/scan.c b/drivers/bcma/scan.c > index 3a2f672..3c2eeed 100644 > --- a/drivers/bcma/scan.c > +++ b/drivers/bcma/scan.c > @@ -286,6 +286,22 @@ 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) { > + pr_info("found bridge"); > + return -ENXIO; > + } Should this do something if the second bcma_erom_get_addr_desc() call returns an error? We seem to be putting any errors from that call into the addr member of the core structure below. > + } > + core->addr = tmp; > + > /* get & parse slave ports */ > for (i = 0; i < ports[1]; i++) { > for (j = 0; ; j++) { > @@ -298,7 +314,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; > } > } > } > diff --git a/include/linux/bcma/bcma.h b/include/linux/bcma/bcma.h > index 83c209f..7fe41e1 100644 > --- a/include/linux/bcma/bcma.h > +++ b/include/linux/bcma/bcma.h > @@ -138,6 +138,7 @@ struct bcma_device { > u8 core_index; > > u32 addr; > + u32 addr1; > u32 wrap; > > void __iomem *io_addr; > -- > 1.7.5.4 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-wireless" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- Julian Calaby Email: julian.calaby@gmail.com Profile: http://www.google.com/profiles/julian.calaby/ .Plan: http://sites.google.com/site/juliancalaby/ ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 3/7] bcma: scan for extra address space 2012-03-11 21:59 ` Julian Calaby @ 2012-03-11 23:34 ` Hauke Mehrtens 2012-03-12 1:30 ` Julian Calaby 0 siblings, 1 reply; 7+ messages in thread From: Hauke Mehrtens @ 2012-03-11 23:34 UTC (permalink / raw) To: Julian Calaby Cc: gregkh, stern, linux-mips, ralf, m, linux-usb, Rafał Miłecki, linux-wireless On 03/11/2012 10:59 PM, Julian Calaby wrote: > Hi Hauke, > > On Mon, Mar 12, 2012 at 07:08, Hauke Mehrtens <hauke@hauke-m.de> wrote: >> 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 i 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> >> --- >> drivers/bcma/scan.c | 18 +++++++++++++++++- >> include/linux/bcma/bcma.h | 1 + >> 2 files changed, 18 insertions(+), 1 deletions(-) >> >> diff --git a/drivers/bcma/scan.c b/drivers/bcma/scan.c >> index 3a2f672..3c2eeed 100644 >> --- a/drivers/bcma/scan.c >> +++ b/drivers/bcma/scan.c >> @@ -286,6 +286,22 @@ 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) { >> + pr_info("found bridge"); >> + return -ENXIO; >> + } > > Should this do something if the second bcma_erom_get_addr_desc() call > returns an error? We seem to be putting any errors from that call into > the addr member of the core structure below. Yes that's true, we should handle that error. If tmp <= 0 the description entry was malformed and something went wrong and we should handle it, a correctly found bridge should just be ignored. I will fix this, should I resend the hole series or just this patch? > >> + } >> + core->addr = tmp; >> + >> /* get & parse slave ports */ >> for (i = 0; i < ports[1]; i++) { >> for (j = 0; ; j++) { >> @@ -298,7 +314,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; >> } >> } >> } >> diff --git a/include/linux/bcma/bcma.h b/include/linux/bcma/bcma.h >> index 83c209f..7fe41e1 100644 >> --- a/include/linux/bcma/bcma.h >> +++ b/include/linux/bcma/bcma.h >> @@ -138,6 +138,7 @@ struct bcma_device { >> u8 core_index; >> >> u32 addr; >> + u32 addr1; >> u32 wrap; >> >> void __iomem *io_addr; >> -- >> 1.7.5.4 >> >> -- >> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in >> the body of a message to majordomo@vger.kernel.org >> More majordomo info at http://vger.kernel.org/majordomo-info.html > > > ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 3/7] bcma: scan for extra address space 2012-03-11 23:34 ` Hauke Mehrtens @ 2012-03-12 1:30 ` Julian Calaby 2012-03-12 17:41 ` John W. Linville 0 siblings, 1 reply; 7+ messages in thread From: Julian Calaby @ 2012-03-12 1:30 UTC (permalink / raw) To: Hauke Mehrtens Cc: gregkh, stern, linux-mips, ralf, m, linux-usb, Rafał Miłecki, linux-wireless Hi Hauke, On Mon, Mar 12, 2012 at 10:34, Hauke Mehrtens <hauke@hauke-m.de> wrote: > On 03/11/2012 10:59 PM, Julian Calaby wrote: >> Hi Hauke, >> >> On Mon, Mar 12, 2012 at 07:08, Hauke Mehrtens <hauke@hauke-m.de> wrote: >>> 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 i 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> >>> --- >>> drivers/bcma/scan.c | 18 +++++++++++++++++- >>> include/linux/bcma/bcma.h | 1 + >>> 2 files changed, 18 insertions(+), 1 deletions(-) >>> >>> diff --git a/drivers/bcma/scan.c b/drivers/bcma/scan.c >>> index 3a2f672..3c2eeed 100644 >>> --- a/drivers/bcma/scan.c >>> +++ b/drivers/bcma/scan.c >>> @@ -286,6 +286,22 @@ 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) { >>> + pr_info("found bridge"); >>> + return -ENXIO; >>> + } >> >> Should this do something if the second bcma_erom_get_addr_desc() call >> returns an error? We seem to be putting any errors from that call into >> the addr member of the core structure below. > Yes that's true, we should handle that error. If tmp <= 0 the > description entry was malformed and something went wrong and we should > handle it, a correctly found bridge should just be ignored. > > I will fix this, should I resend the hole series or just this patch? I'm not sure the rest of the series made it to linux-wireless, so maybe you should resend everything. Thanks, -- Julian Calaby Email: julian.calaby@gmail.com Profile: http://www.google.com/profiles/julian.calaby/ .Plan: http://sites.google.com/site/juliancalaby/ ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 3/7] bcma: scan for extra address space 2012-03-12 1:30 ` Julian Calaby @ 2012-03-12 17:41 ` John W. Linville 2012-03-12 17:58 ` Florian Fainelli 0 siblings, 1 reply; 7+ messages in thread From: John W. Linville @ 2012-03-12 17:41 UTC (permalink / raw) To: Julian Calaby Cc: Hauke Mehrtens, gregkh, stern, linux-mips, ralf, m, linux-usb, Rafał Miłecki, linux-wireless On Mon, Mar 12, 2012 at 12:30:54PM +1100, Julian Calaby wrote: > Hi Hauke, > > On Mon, Mar 12, 2012 at 10:34, Hauke Mehrtens <hauke@hauke-m.de> wrote: > > I will fix this, should I resend the hole series or just this patch? > > I'm not sure the rest of the series made it to linux-wireless, so > maybe you should resend everything. FWIW, this was the only one I saw... -- John W. Linville Someday the world will need a hero, and you linville@tuxdriver.com might be all we have. Be ready. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 3/7] bcma: scan for extra address space 2012-03-12 17:41 ` John W. Linville @ 2012-03-12 17:58 ` Florian Fainelli 2012-03-12 20:47 ` Hauke Mehrtens 0 siblings, 1 reply; 7+ messages in thread From: Florian Fainelli @ 2012-03-12 17:58 UTC (permalink / raw) To: John W. Linville Cc: Julian Calaby, Hauke Mehrtens, gregkh, stern, linux-mips, ralf, m, linux-usb, Rafał Miłecki, linux-wireless Le 03/12/12 18:41, John W. Linville a écrit : > On Mon, Mar 12, 2012 at 12:30:54PM +1100, Julian Calaby wrote: >> Hi Hauke, >> >> On Mon, Mar 12, 2012 at 10:34, Hauke Mehrtens<hauke@hauke-m.de> wrote: > >>> I will fix this, should I resend the hole series or just this patch? >> >> I'm not sure the rest of the series made it to linux-wireless, so >> maybe you should resend everything. > > FWIW, this was the only one I saw... For some reasons I received it from linux-mips-bounces using another email account, but only patch 3 CC'd linux-wireless. -- Florian ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 3/7] bcma: scan for extra address space 2012-03-12 17:58 ` Florian Fainelli @ 2012-03-12 20:47 ` Hauke Mehrtens 0 siblings, 0 replies; 7+ messages in thread From: Hauke Mehrtens @ 2012-03-12 20:47 UTC (permalink / raw) To: Florian Fainelli Cc: John W. Linville, Julian Calaby, gregkh, stern, linux-mips, ralf, m, linux-usb, Rafał Miłecki, linux-wireless On 03/12/2012 06:58 PM, Florian Fainelli wrote: > > > Le 03/12/12 18:41, John W. Linville a écrit : >> On Mon, Mar 12, 2012 at 12:30:54PM +1100, Julian Calaby wrote: >>> Hi Hauke, >>> >>> On Mon, Mar 12, 2012 at 10:34, Hauke Mehrtens<hauke@hauke-m.de> wrote: >> >>>> I will fix this, should I resend the hole series or just this patch? >>> >>> I'm not sure the rest of the series made it to linux-wireless, so >>> maybe you should resend everything. >> >> FWIW, this was the only one I saw... > > For some reasons I received it from linux-mips-bounces using another > email account, but only patch 3 CC'd linux-wireless. Sorry for the confusion. I didn't send all patches to linux-wireless as the others are just touching usb and mips. The next round will go completely to linux-wireless. Hauke ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2012-03-12 20:48 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <1331496505-18697-1-git-send-email-hauke@hauke-m.de>
2012-03-11 20:08 ` [PATCH 3/7] bcma: scan for extra address space Hauke Mehrtens
2012-03-11 21:59 ` Julian Calaby
2012-03-11 23:34 ` Hauke Mehrtens
2012-03-12 1:30 ` Julian Calaby
2012-03-12 17:41 ` John W. Linville
2012-03-12 17:58 ` Florian Fainelli
2012-03-12 20:47 ` Hauke Mehrtens
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).