2011-08-28 16:08:00

by Rafał Miłecki

[permalink] [raw]
Subject: [PATCH 1/2] ssb: use u16 for storing board rev

Specs say about size 2 (u16) and my 14e4:4727 has board rev 0x1211.

Signed-off-by: Rafał Miłecki <[email protected]>
---
include/linux/ssb/ssb.h | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/include/linux/ssb/ssb.h b/include/linux/ssb/ssb.h
index 8623217..f10ed7b 100644
--- a/include/linux/ssb/ssb.h
+++ b/include/linux/ssb/ssb.h
@@ -25,7 +25,7 @@ struct ssb_sprom {
u8 et1phyaddr; /* MII address for enet1 */
u8 et0mdcport; /* MDIO for enet0 */
u8 et1mdcport; /* MDIO for enet1 */
- u8 board_rev; /* Board revision number from SPROM. */
+ u16 board_rev; /* Board revision number from SPROM. */
u8 country_code; /* Country Code */
u16 leddc_on_time; /* LED Powersave Duty Cycle On Count */
u16 leddc_off_time; /* LED Powersave Duty Cycle Off Count */
--
1.7.3.4



2011-08-28 16:08:07

by Rafał Miłecki

[permalink] [raw]
Subject: [PATCH 2/2] bcma: extract some basic info about board from SPROM


Signed-off-by: Rafał Miłecki <[email protected]>
---
drivers/bcma/sprom.c | 9 +++++++++
1 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/drivers/bcma/sprom.c b/drivers/bcma/sprom.c
index 166ed13..d729239 100644
--- a/drivers/bcma/sprom.c
+++ b/drivers/bcma/sprom.c
@@ -133,6 +133,15 @@ static void bcma_sprom_extract_r8(struct bcma_bus *bus, const u16 *sprom)
v = sprom[SPOFF(SSB_SPROM8_IL0MAC) + i];
*(((__be16 *)bus->sprom.il0mac) + i) = cpu_to_be16(v);
}
+
+ bus->sprom.board_rev = sprom[SPOFF(SSB_SPROM8_BOARDREV)];
+
+ bus->sprom.boardflags_lo = sprom[SPOFF(SSB_SPROM8_BFLLO)];
+ bus->sprom.boardflags_hi = sprom[SPOFF(SSB_SPROM8_BFLHI)];
+ bus->sprom.boardflags2_lo = sprom[SPOFF(SSB_SPROM8_BFL2LO)];
+ bus->sprom.boardflags2_hi = sprom[SPOFF(SSB_SPROM8_BFL2HI)];
+
+ bus->sprom.country_code = sprom[SPOFF(SSB_SPROM8_CCODE)];
}

int bcma_sprom_get(struct bcma_bus *bus)
--
1.7.3.4


2011-08-28 17:03:09

by Larry Finger

[permalink] [raw]
Subject: Re: [PATCH 2/2] bcma: extract some basic info about board from SPROM

On 08/28/2011 11:47 AM, Rafał Miłecki wrote:
>
> Signed-off-by: Rafał Miłecki<[email protected]>
> ---
> drivers/bcma/sprom.c | 9 +++++++++
> 1 files changed, 9 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/bcma/sprom.c b/drivers/bcma/sprom.c
> index 166ed13..d729239 100644
> --- a/drivers/bcma/sprom.c
> +++ b/drivers/bcma/sprom.c
> @@ -133,6 +133,15 @@ static void bcma_sprom_extract_r8(struct bcma_bus *bus, const u16 *sprom)
> v = sprom[SPOFF(SSB_SPROM8_IL0MAC) + i];
> *(((__be16 *)bus->sprom.il0mac) + i) = cpu_to_be16(v);
> }
> +
> + bus->sprom.board_rev = sprom[SPOFF(SSB_SPROM8_BOARDREV)];
> +
> + bus->sprom.boardflags_lo = sprom[SPOFF(SSB_SPROM8_BFLLO)];
> + bus->sprom.boardflags_hi = sprom[SPOFF(SSB_SPROM8_BFLHI)];
> + bus->sprom.boardflags2_lo = sprom[SPOFF(SSB_SPROM8_BFL2LO)];
> + bus->sprom.boardflags2_hi = sprom[SPOFF(SSB_SPROM8_BFL2HI)];
> +
> + bus->sprom.country_code = sprom[SPOFF(SSB_SPROM8_CCODE)];
> }
>
> int bcma_sprom_get(struct bcma_bus *bus)

Does the card in question not need any other info from the SPROM, or is this
just a first step? Is the usual SPROM Rev 8 code part of ssb, and is that the
reason you don't use it here?

Larry


2011-08-28 17:07:27

by Rafał Miłecki

[permalink] [raw]
Subject: Re: [PATCH 2/2] bcma: extract some basic info about board from SPROM

W dniu 28 sierpnia 2011 19:03 użytkownik Larry Finger
<[email protected]> napisał:
> On 08/28/2011 11:47 AM, Rafał Miłecki wrote:
>>
>> Signed-off-by: Rafał Miłecki<[email protected]>
>> ---
>>  drivers/bcma/sprom.c |    9 +++++++++
>>  1 files changed, 9 insertions(+), 0 deletions(-)
>>
>> diff --git a/drivers/bcma/sprom.c b/drivers/bcma/sprom.c
>> index 166ed13..d729239 100644
>> --- a/drivers/bcma/sprom.c
>> +++ b/drivers/bcma/sprom.c
>> @@ -133,6 +133,15 @@ static void bcma_sprom_extract_r8(struct bcma_bus
>> *bus, const u16 *sprom)
>>                v = sprom[SPOFF(SSB_SPROM8_IL0MAC) + i];
>>                *(((__be16 *)bus->sprom.il0mac) + i) = cpu_to_be16(v);
>>        }
>> +
>> +       bus->sprom.board_rev = sprom[SPOFF(SSB_SPROM8_BOARDREV)];
>> +
>> +       bus->sprom.boardflags_lo = sprom[SPOFF(SSB_SPROM8_BFLLO)];
>> +       bus->sprom.boardflags_hi = sprom[SPOFF(SSB_SPROM8_BFLHI)];
>> +       bus->sprom.boardflags2_lo = sprom[SPOFF(SSB_SPROM8_BFL2LO)];
>> +       bus->sprom.boardflags2_hi = sprom[SPOFF(SSB_SPROM8_BFL2HI)];
>> +
>> +       bus->sprom.country_code = sprom[SPOFF(SSB_SPROM8_CCODE)];
>>  }
>>
>>  int bcma_sprom_get(struct bcma_bus *bus)
>
> Does the card in question not need any other info from the SPROM, or is this
> just a first step? Is the usual SPROM Rev 8 code part of ssb, and is that
> the reason you don't use it here?

It will need more info, I just didn't add everything yet. I think we
should review ssb's code anyway, so I didn't copy&paste it. For
example ssb doesn't read board_rev at the moment for SPROM rev 8.

--
Rafał

2011-08-28 16:59:44

by Larry Finger

[permalink] [raw]
Subject: Re: [PATCH 1/2] ssb: use u16 for storing board rev

On 08/28/2011 11:47 AM, Rafał Miłecki wrote:
> Specs say about size 2 (u16) and my 14e4:4727 has board rev 0x1211.
>
> Signed-off-by: Rafał Miłecki<[email protected]>
> ---

ACKed-by: Larry Finger <[email protected]>

> include/linux/ssb/ssb.h | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/include/linux/ssb/ssb.h b/include/linux/ssb/ssb.h
> index 8623217..f10ed7b 100644
> --- a/include/linux/ssb/ssb.h
> +++ b/include/linux/ssb/ssb.h
> @@ -25,7 +25,7 @@ struct ssb_sprom {
> u8 et1phyaddr; /* MII address for enet1 */
> u8 et0mdcport; /* MDIO for enet0 */
> u8 et1mdcport; /* MDIO for enet1 */
> - u8 board_rev; /* Board revision number from SPROM. */
> + u16 board_rev; /* Board revision number from SPROM. */
> u8 country_code; /* Country Code */
> u16 leddc_on_time; /* LED Powersave Duty Cycle On Count */
> u16 leddc_off_time; /* LED Powersave Duty Cycle Off Count */