* [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).