b43: Add LP-PHY firmware loading support
PATCH 1/1 b43: Add LP-PHY firmware loading support
Add support for loading LP-PHY firmware to b43_try_request_fw.
---
For anyone hoping that the channel switch patches will make their LP card work - this is also definitely required.
Mark, this doesn't fix your problem specifically, but it will be needed after your problem is fixed.
drivers/net/wireless/b43/main.c | 24 +++++++++++++++++++++++-
1 files changed, 23 insertions(+), 1 deletions(-)
drivers/net/wireless/b43/main.c +0 -0
@@ -2062,8 +2062,12 @@ static int b43_try_request_fw(struct b43_request_fw_context *ctx)
filename = "ucode5"; else if ((rev >= 11) && (rev <= 12)) filename = "ucode11"; - else if (rev >= 13) + else if (rev == 13) filename = "ucode13"; + else if (rev == 14) + filename = "ucode14"; + else if (rev >= 15) + filename = "ucode15"; else goto err_no_ucode; err = b43_do_request_fw(ctx, filename, &fw->ucode); @@ -2111,6 +2115,15 @@ static int b43_try_request_fw(struct b43_request_fw_context *ctx) else goto err_no_initvals; break;
+ case B43_PHYTYPE_LP:
+ if (rev == 13)
+ filename = "lp0initvals13";
+ else if (rev == 14)
+ filename = "lp0initvals14";
+ else if (rev >= 15)
+ filename = "lp0initvals15";
+ else
+ goto err_no_initvals; default: goto err_no_initvals; } @@ -2145,6 +2158,15 @@ static int b43_try_request_fw(struct b43_request_fw_context *ctx) else goto err_no_initvals; break;
+ case B43_PHYTYPE_LP:
+ if (rev == 13)
+ filename = "lp0bsinitvals13";
+ else if (rev == 14)
+ filename = "lp0bsinitvals14";
+ else if (rev >= 15)
+ filename = "lp0bsinitvals15";
+ else
+ goto err_no_initvals; default: goto err_no_initvals; }
Signature · 1 line
1.6.2.4
Missing break in initval case switches, see below.
Quoted 33 lines · Gábor Stefanik
Add support for loading LP-PHY firmware to
b43_try_request_fw.Signed-off-by Gábor Stefanik <[email protected]>---
For anyone hoping that the channel switch patches will make their LP card work - this is also definitely required.Mark, this doesn't fix your problem specifically, but it will be needed after your problem is fixed.
drivers/net/wireless/b43/main.c | 24 +++++++++++++++++++++++- 1 files changed, 23 insertions(+), 1 deletions(-)drivers/net/wireless/b43/main.c +5
-1@@ -2062,8 +2062,12 @@ static int b43_try_request_fw(struct b43_request_fw_context *ctx) filename ="ucode5" ; else if ((rev >= 11) && (rev <= 12)) filename = "ucode11"; - else if (rev >= 13) + else if (rev == 13) filename = "ucode13"; + else if (rev == 14) + filename = "ucode14"; + else if (rev >= 15) + filename = "ucode15"; else goto err_no_ucode; err = b43_do_request_fw(ctx, filename, &fw->ucode);@@ -2111,6 +2115,15 @@ static int b43_try_request_fw(struct b43_request_fw_context *ctx)else goto err_no_initvals;break ;
drivers/net/wireless/b43/main.c static int b43_try_request_fw(struct b43_request_fw_context *ctx) · line 2127
Quoted 10 lines
drivers/net/wireless/b43/main.c +9
-0+case B43_PHYTYPE_LP : +if (rev ==13 ) + filename ="lp0initvals13" ; +else if (rev ==14 ) + filename ="lp0initvals14" ; +else if (rev >=15 ) + filename ="lp0initvals15" ; +else + goto err_no_initvals;
break;
Quoted 7 lines
drivers/net/wireless/b43/main.c +0
-0default : goto err_no_initvals;drivers/net/wireless/b43/main.c +0
-0}@@ -2145,6 +2158,15 @@ static int b43_try_request_fw(struct b43_request_fw_context *ctx)else goto err_no_initvals;break ;
drivers/net/wireless/b43/main.c static int b43_try_request_fw(struct b43_request_fw_context *ctx) · line 2170
Quoted 10 lines
drivers/net/wireless/b43/main.c +9
-0+case B43_PHYTYPE_LP : +if (rev ==13 ) + filename ="lp0bsinitvals13" ; +else if (rev ==14 ) + filename ="lp0bsinitvals14" ; +else if (rev >=15 ) + filename ="lp0bsinitvals15" ; +else + goto err_no_initvals;
break;
Quoted 4 lines
drivers/net/wireless/b43/main.c +0
-0default : goto err_no_initvals;}
Quoted 20 lines · Gábor Stefanik
Add support for loading LP-PHY firmware to
b43_try_request_fw.Signed-off-by Gábor Stefanik <[email protected]>---
For anyone hoping that the channel switch patches will make their LP card work - this is also definitely required.Mark, this doesn't fix your problem specifically, but it will be needed after your problem is fixed.
drivers/net/wireless/b43/main.c| 24 +++++++++++++++++++++++-1 files changed, 23 insertions(+), 1 deletions(-)drivers/net/wireless/b43/main.c +0
-0@@ -2062,8 +2062,12 @@ static int b43_try_request_fw(struct b43_request_fw_context *ctx)
drivers/net/wireless/b43/main.c static int b43_try_request_fw(struct · line 2071
Quoted 10 lines
drivers/net/wireless/b43/main.c +5
-1filename ="ucode5" ; else if ((rev >= 11) && (rev <= 12)) filename = "ucode11"; - else if (rev >= 13) + else if (rev == 13) filename = "ucode13"; + else if (rev == 14) + filename = "ucode14"; + else if (rev >= 15) + filename = "ucode15";
As shown by http://bcm-v4.sipsolutions.net/802.11/Init/Firmware, one should also have "ucode16".
Quoted 6 lines
drivers/net/wireless/b43/main.c +0
-0else goto err_no_ucode;err = b43_do_request_fw(ctx, filename, &fw->ucode);drivers/net/wireless/b43/main.c +0
-0@@ -2111,6 +2115,15 @@ static int b43_try_request_fw(struct b43_request_fw_context *ctx) else
drivers/net/wireless/b43/main.c static int b43_try_request_fw(struct · line 2126
Quoted 10 lines
drivers/net/wireless/b43/main.c +8
-0goto err_no_initvals;break ; +case B43_PHYTYPE_LP : +if (rev ==13 ) + filename ="lp0initvals13" ; +else if (rev ==14 ) + filename ="lp0initvals14" ; +else if (rev >=15 ) + filename ="lp0initvals15" ; +else
Same for lp0initvals16.
Quoted 6 lines
drivers/net/wireless/b43/main.c +1
-0+ goto err_no_initvals;default : goto err_no_initvals;}drivers/net/wireless/b43/main.c +0
-0@@ -2145,6 +2158,15 @@ static int b43_try_request_fw(struct b43_request_fw_context *ctx)
drivers/net/wireless/b43/main.c static int b43_try_request_fw(struct · line 2168
Quoted 10 lines
drivers/net/wireless/b43/main.c +7
-0else goto err_no_initvals;break ; +case B43_PHYTYPE_LP : +if (rev ==13 ) + filename ="lp0bsinitvals13" ; +else if (rev ==14 ) + filename ="lp0bsinitvals14" ; +else if (rev >=15 ) + filename ="lp0bsinitvals15" ;
and lp0bsinitvals16.
Quoted 5 lines
drivers/net/wireless/b43/main.c +2
-0+else + goto err_no_initvals;default : goto err_no_initvals;}
Larry
2009/8/14 Larry Finger <[email protected]>:
Quoted 73 lines
Quoted 20 lines · Gábor Stefanik
Add support for loading LP-PHY firmware to
b43_try_request_fw.Signed-off-by Gábor Stefanik <[email protected]>---
For anyone hoping that the channel switch patches will make their LP card work - this is also definitely required.Mark, this doesn't fix your problem specifically, but it will be needed after your problem is fixed.
drivers/net/wireless/b43/main.c| 24 +++++++++++++++++++++++-1 files changed, 23 insertions(+), 1 deletions(-)drivers/net/wireless/b43/main.c +0
-0@@ -2062,8 +2062,12 @@ static int b43_try_request_fw(struct b43_request_fw_context *ctx)drivers/net/wireless/b43/main.c static int b43_try_request_fw(struct · line 2071
Quoted 10 lines
drivers/net/wireless/b43/main.c +5
-1filename = "ucode5"; else if ((rev >= 11) && (rev <= 12)) filename = "ucode11"; - else if (rev >= 13) + else if (rev == 13) filename = "ucode13"; + else if (rev == 14) + filename = "ucode14"; + else if (rev >= 15) + filename = "ucode15";As shown by http://bcm-v4.sipsolutions.net/802.11/Init/Firmware, one should also have "ucode16".
Quoted 8 lines
else
gotoerr_no_ucode;
err =b43_do_request_fw(ctx, filename, &fw->ucode);drivers/net/wireless/b43/main.c +0
-0@@ -2111,6 +2115,15 @@ static int b43_try_request_fw(struct b43_request_fw_context *ctx)else
gotoerr_no_initvals;
break;Quoted 8 lines
+ case
B43_PHYTYPE_LP:
+ if (rev == 13)
+ filename = "lp0initvals13";
+ else if (rev == 14)
+ filename = "lp0initvals14";
+ else if (rev >= 15)
+ filename = "lp0initvals15";
+ elseSame for lp0initvals16.
Quoted 8 lines
+ goto
err_no_initvals;
default:
gotoerr_no_initvals;
}drivers/net/wireless/b43/main.c +0
-0@@ -2145,6 +2158,15 @@ static int b43_try_request_fw(struct b43_request_fw_context *ctx)else
gotoerr_no_initvals;Quoted 8 lines
break;
+ caseB43_PHYTYPE_LP:
+ if (rev == 13)
+ filename = "lp0bsinitvals13";
+ else if (rev == 14)
+ filename = "lp0bsinitvals14";
+ else if (rev >= 15)
+ filename = "lp0bsinitvals15";and lp0bsinitvals16.
Quoted 8 lines
Quoted 5 lines
+ else
+ gotoerr_no_initvals;
default:
gotoerr_no_initvals;
}Larry
Is rev.16 firmware available anywhere?
Signature · 1 line
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
Quoted 3 lines · Gábor Stefanik
Is rev.16 firmware available anywhere?
finger@larrylap:~/wireless-testing> ls /lib/firmware/b43
a0b0bsinitvals4.fw a0g1bsinitvals5.fw b0g0initvals13.fw
lp0initvals13.fw n0initvals16.fw ucode15.fw
a0b0gsinitvals5.fw a0g1bsinitvals9.fw b0g0initvals13.fw_save
lp0initvals14.fw pcm4.fw ucode16.fw
a0g0bsinitvals4.fw a0g1initvals13.fw b0g0initvals4.fw
lp0initvals15.fw pcm5.fw ucode4.fw
a0g0bsinitvals5.fw a0g1initvals5.fw b0g0initvals5.fw
lp0initvals16.fw sslpn0bsinitvals16.fw ucode5.fw
a0g0bsinitvals9.fw a0g1initvals9.fw b0g0initvals9.fw
n0absinitvals11.fw sslpn0initvals16.fw ucode9.fw
a0g0initvals4.fw b0g0bsinitvals13.fw lp0bsinitvals13.fw
n0absinitvals13.fw ucode11.fw
a0g0initvals5.fw b0g0bsinitvals4.fw lp0bsinitvals14.fw
n0bsinitvals11.fw ucode13.fw
a0g0initvals9.fw b0g0bsinitvals5.fw lp0bsinitvals15.fw
n0bsinitvals16.fw ucode13.fw_save
a0g1bsinitvals13.fw b0g0bsinitvals9.fw lp0bsinitvals16.fw
n0initvals11.fw ucode14.fw
I installed my firmware using openSUSE's script called /usr/sbin/install_bcm43xx_firmware, which uses the driver file broadcom-wl-4.150.10.5.tar.bz2, and rev 16 firmware is there.
Larry
A message that is not in the archive (sent off-list or not yet received): [email protected]
A message that is not in the archive (sent off-list or not yet received): [email protected]
(Restored CCs.)
2009/8/14 Larry Finger <[email protected]>:
Quoted 6 lines
Quoted 4 lines · Gábor Stefanik
On http://bu3sch.de/gitweb?p=b43-tools.git;a=blob;f=fwcutter/fwcutter_list.h;hb=HEAD,
it doesn't look like v4.150.10.5 contains rev16 - there is one version that does have it, but the link to that file is dead.
Quoted 8 lines
The rev 16 firmware definitely is in driver 4.174.64.19, but not in 4.150.10.5. I'll have to figure out where I got it, and what modifications are needed in fwcutter to make it available.
I suggest that you do the mods to the firmware loading. If Broadcom has it in their driver, there must be hardware that needs it.
Larry
I would say that's a goal for later - the FIFO sizes are different, so it would clearly need more work than just loading the firmware to support rev16 devices.
Signature · 1 line
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
Quoted 3 lines · On Friday 14 August 2009 13:51:59 Gábor Stefanik wrote:
Add support for loading LP-PHY firmware to
b43_try_request_fw.Signed-off-by Gábor Stefanik <[email protected]>
ack
Signature · 1 line
Greetings, Michael.
2009/8/14 Michael Buesch <[email protected]>:
Quoted 9 lines · On Friday 14 August 2009 13:51:59 Gábor Stefanik wrote:
Quoted 3 lines
Add support for loading LP-PHY firmware to
b43_try_request_fw.Signed-off-by Gábor Stefanik <[email protected]>ack
--
Greetings, Michael.
This version is broken - ack "v3 this time really" instead.
Signature · 1 line
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
Quoted 4 lines · On Friday 14 August 2009 22:20:55 Gábor Stefanik wrote:
2009/8/14 Michael Buesch <[email protected]>:
Quoted 3 lines · On Friday 14 August 2009 13:51:59 Gábor Stefanik wrote:
Quoted 2 lines
Add support for loading LP-PHY firmware to
b43_try_request_fw.
Quoted 9 lines
Quoted 6 lines
Quoted 1 line
Signed-off-by Gábor Stefanik <[email protected]>ack
--
Greetings, Michael.This version is broken - ack "v3 this time really" instead.
yeah whatever
Signature · 1 line
Greetings, Michael.