Skip to contentSkip to conversation

b43: Rewrite PHY API for N-PHY/LP-PHY

PATCH In review Michael Buesch 7 participants 17 messages Aug 15, 2008 – Aug 24, 2008 1 message not in the archive

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 b43: Rewrite PHY API for N-PHY/LP-PHY

This is the first part for the rewrite of the b43 PHY API. This is needed in order to make development of N and LP code possible.

PLEASE TEST TEST TEST TEST TEST

Lots of testing on lots of different devices is needed to ensure this doesn't introduce regressions due to typos.
95% of the patch just moves large parts of the PHY code from one file to another. More move-patches will follow.
5% of the patch introduces an "ops" based PHY API.

Please test on all of your devices.

http://bu3sch.de/patches/wireless-testing/20080816-0023/patches/002-b43-phy-ops.patch
Apply against wireless-testing.git

(Not attached to the mail, as it is really big)

#1 lore raw
Quoted 5 lines · Michael Buesch

This is the first part for the rewrite of the b43 PHY API. This is needed in order to make development of N and LP code possible.

PLEASE TEST TEST TEST TEST TEST

Quoted 7 lines

Lots of testing on lots of different devices is needed to ensure this doesn't introduce regressions due to typos.
95% of the patch just moves large parts of the PHY code from one file to another. More move-patches will follow.
5% of the patch introduces an "ops" based PHY API.

Please test on all of your devices.

The patch works fine on the 802.11g portion of my BCM4312/1, which seems to be the same as a BCM4311/1. This card has a PCIe format. I also tested on my PCMCIA version of a BCM4318. That card works, but the maximum transmit rate is only about 1/2 of what I get without it. The card has a rev 09 802.11 core, a rev 7 PHY, and a rev 3 analog part. I still have to test on a PCI format BCM4306/3 card, but I suspect that you have already tested the 4306.

Larry

#2 lore raw
Quoted 2 lines · Larry Finger

The patch works fine on the 802.11g portion of my BCM4312/1, which seems to be the same as a BCM4311/1. This card has a PCIe format. I also tested on my PCMCIA version of a BCM4318. That card works, but the maximum transmit rate is only about 1/2 of what I get without it. The card has a rev 09 802.11 core, a rev 7 PHY, and a rev 3 analog part. I still have to test on a PCI format BCM4306/3 card, but I suspect that you have already tested the 4306.

Forget what I said about the loss of transmit rate. Once I did a proper test, it is the same with or without the patch. For the BCM4318, the b43 rate is slightly reduced from using bcm43xx. The difference is not really great, but a reproducible reduction from 16.6 to 14.2 Mbs with the iwconfig rate set at 54 Mbs. By comparison, the BCM4312 is over 20 Mbs.

Larry

#3 lore raw
Quoted 10 lines · Larry Finger
Quoted 8 lines · Larry Finger

The patch works fine on the 802.11g portion of my BCM4312/1, which seems to be the same as a BCM4311/1. This card has a PCIe format. I also tested on my PCMCIA version of a BCM4318. That card works, but the maximum transmit rate is only about 1/2 of what I get without it. The card has a rev 09 802.11 core, a rev 7 PHY, and a rev 3 analog part. I still have to test on a PCI format BCM4306/3 card, but I suspect that you have already tested the 4306.

Quoted 6 lines

Forget what I said about the loss of transmit rate. Once I did a proper test, it is the same with or without the patch. For the BCM4318, the b43 rate is slightly reduced from using bcm43xx. The difference is not really great, but a reproducible reduction from 16.6 to 14.2 Mbs with the iwconfig rate set at 54 Mbs. By comparison, the BCM4312 is over 20 Mbs.

Thanks a lot for retesting.
Loss of TX rate would be the worst thing that can happen with this patch, as it's very very hard to debug due to the size.

I didn't test it on all of my devices, yet. I just tried a 4306, where it doesn't cause any regression.

#4 lore raw

Re: [PATCH RFT] b43: Rewrite PHY API for N-PHY/LP-PHY -- good on 4311

In reply to Michael Buesch

Works fine here. iperf same results as prior to patch.

b43-phy0: Broadcom 4311 WLAN found
b43-phy0 debug: Found PHY: Analog 4, Type 2, Revision 8 b43-phy0 debug: Found Radio: Manuf 0x17F, Version 0x2050, Revision 2

2.6.27-rc2-wl on Ubuntu 8.04 (don't even ask how long it takes to build a new kernel and create a debian package and install it...)

Ehud

Quoted 22 lines · Michael Buesch

This is the first part for the rewrite of the b43 PHY API. This is needed in order to make development of N and LP code possible.

PLEASE TEST TEST TEST TEST TEST

Lots of testing on lots of different devices is needed to ensure this doesn't introduce regressions due to typos.
95% of the patch just moves large parts of the PHY code from one file to another. More move-patches will follow.
5% of the patch introduces an "ops" based PHY API.

Please test on all of your devices.

http://bu3sch.de/patches/wireless-testing/20080816-0023/patches/002-b43-phy-ops.patch
Apply against wireless-testing.git

(Not attached to the mail, as it is really big)
_______________________________________________
Bcm43xx-dev mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev

#5 lore raw

Re: [PATCH RFT] b43: Rewrite PHY API for N-PHY/LP-PHY -- good on 4311

Quoted 6 lines · Ehud Gavron

Works fine here. iperf same results as prior to patch.
b43-phy0: Broadcom 4311 WLAN found
b43-phy0 debug: Found PHY: Analog 4, Type 2, Revision 8 b43-phy0 debug: Found Radio: Manuf 0x17F, Version 0x2050, Revision 2

2.6.27-rc2-wl on Ubuntu 8.04 (don't even ask how long it takes to build a new kernel and create a debian package and install it...)

I know, which is one of the reasons I don't use a Debian-based distro. I want nothing to do with one whose stated goal is to make it so difficult to change the kernel that the users won't do it.

Larry

#6 lore raw

Re: [PATCH RFT] b43: Rewrite PHY API for N-PHY/LP-PHY -- good on 4311

Quoted 4 lines

I know, which is one of the reasons I don't use a Debian-based distro. I want nothing to do with one whose stated goal is to make it so difficult to change the kernel that the users won't do it.

Huh? I use "make install modules_install" from my kernel source dir (which I usually get via git) and that works fine, as in every distro on earth.

Hehe, but I seldom use distro kernels, not even when I used Red Hat or Mandrake in old times :-)

#7 lore raw

Re: [PATCH RFT] b43: Rewrite PHY API for N-PHY/LP-PHY -- good on 4311

Quoted 8 lines · On Monday 18 August 2008 09:41:10 Holger Schurig wrote:
Quoted 4 lines

I know, which is one of the reasons I don't use a Debian-based distro. I want nothing to do with one whose stated goal is to make it so difficult to change the kernel that the users won't do it.

Huh? I use "make install modules_install" from my kernel source dir (which I usually get via git) and that works fine, as in every distro on earth.

I can only second that.
I simply ignore any distro specific kernel handling and override the grub/yaboot entries as I desire. I also ignore any rpm or deb for installing a kernel. I do it this way since the very beginning and it works fine on debian and non-debian distros.

In general, I do always ignore the packet manager, but install custom compiled software in a specific directory so it does not interfere in any way with the distro packets.

Signature · 1 line
Greetings Michael.
#8 lore raw

Re: [PATCH RFT] b43: Rewrite PHY API for N-PHY/LP-PHY -- good on 4311

In reply to Holger Schurig
Quoted 3 lines · Holger Schurig

Huh? I use "make install modules_install" from my kernel source dir (which I usually get via git) and that works fine, as in every distro on earth.

Hehe, but I seldom use distro kernels, not even when I used Red Hat or Mandrake in old times :-)

I tried that with Ubuntu 8.04 and the resulting kernel wouldn't boot. Only when I went through the process of making the ".deb" and installing that did the new kernel start properly. I didn't investigate it thoroughly as I was only testing one patch - I quickly fled back to openSUSE.

Larry

#9 lore raw

Re: [PATCH RFT] b43: Rewrite PHY API for N-PHY/LP-PHY -- good on 4311

In reply to Ehud Gavron
Quoted 5 lines · On Sunday 17 August 2008 21:26:21 Ehud Gavron wrote:

Works fine here. iperf same results as prior to patch.

b43-phy0: Broadcom 4311 WLAN found
b43-phy0 debug: Found PHY: Analog 4, Type 2, Revision 8 b43-phy0 debug: Found Radio: Manuf 0x17F, Version 0x2050, Revision 2

Thanks a lot for testing.

I want to encourage people again to test this patch.
This really needs a lot of testing, because a regression caused by this would really really be a bad thing.
Even if you think your card was already tested by somebody else, please test it anyway. There are so many different cards with matching revision numbers that really are slightly different.

Get wireless-testing.git:
git clone git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git

and apply the patch
http://bu3sch.de/patches/wireless-testing/20080816-0023/patches/002-b43-phy-ops.patch

Please test basic features, throughput and longterm stability of the connection.

Signature · 1 line
Greetings Michael.
#10 lore raw
In reply to Michael Buesch
Quoted 5 lines · Michael Buesch

This is the first part for the rewrite of the b43 PHY API. This is needed in order to make development of N and LP code possible.

PLEASE TEST TEST TEST TEST TEST

Quoted 7 lines

Lots of testing on lots of different devices is needed to ensure this doesn't introduce regressions due to typos.
95% of the patch just moves large parts of the PHY code from one file to another. More move-patches will follow.
5% of the patch introduces an "ops" based PHY API.

Please test on all of your devices.

I have now tested on a BCM4311/2 with positive results. The transmit throughput is roughly the same at 20.7 Mbs with a 54 Mbs bulk rate.

Larry

#11 lore raw
Quoted 12 lines · On Thursday 21 August 2008 00:40:32 Larry Finger wrote:
Quoted 11 lines · Michael Buesch

This is the first part for the rewrite of the b43 PHY API. This is needed in order to make development of N and LP code possible.

PLEASE TEST TEST TEST TEST TEST

Lots of testing on lots of different devices is needed to ensure this doesn't introduce regressions due to typos.
95% of the patch just moves large parts of the PHY code from one file to another. More move-patches will follow.
5% of the patch introduces an "ops" based PHY API.

Quoted 4 lines
Quoted 1 line

Please test on all of your devices.

I have now tested on a BCM4311/2 with positive results. The transmit throughput is roughly the same at 20.7 Mbs with a 54 Mbs bulk rate.

Thanks :)

I'll also do more testing and submit the patch soon.

Anybody who didn't test his device, yet, please do so. If you discover a breakage after the merge, that will be _very_ unfortunate and we will have to live with the breakage until it is fixed (which can be very hard to do).

Signature · 1 line
Greetings Michael.

A message that is not in the archive (sent off-list or not yet received): [email protected]

#13 lore raw
Quoted 14 lines · On Thursday 21 August 2008 18:16:23 Sean Hodges wrote:
Quoted 13 lines · Michael Buesch

This is the first part for the rewrite of the b43 PHY API. This is needed in order to make development of N and LP code possible.

PLEASE TEST TEST TEST TEST TEST

Lots of testing on lots of different devices is needed to ensure this doesn't introduce regressions due to typos.
95% of the patch just moves large parts of the PHY code from one file to another. More move-patches will follow.
5% of the patch introduces an "ops" based PHY API.

Please test on all of your devices.

Quoted 7 lines
Quoted 2 lines

http://bu3sch.de/patches/wireless-testing/20080816-0023/patches/002-b43-phy-ops.patch
Apply against wireless-testing.git

As a novice to driver development, is there some way I can help with testing this?

I have no experience of driver development/testing, but have an N-PHY

To say it once again:
Despite the fact that the subject of this email mentiones N and LP PHYs, it implements _nothing_ N and LP related. It just _prepares_ the code for the future when we will add N and LP stuff (and other PHY stuff. Also A/B/G related).

Signature · 1 line
Greetings Michael.
#14 lore raw

Thanks for the repeated explanation, the offer remains when it might be needed.

Sean

Quoted 28 lines · Michael Buesch
Quoted 14 lines · On Thursday 21 August 2008 18:16:23 Sean Hodges wrote:
Quoted 13 lines · Michael Buesch

This is the first part for the rewrite of the b43 PHY API. This is needed in order to make development of N and LP code possible.

PLEASE TEST TEST TEST TEST TEST

Lots of testing on lots of different devices is needed to ensure this doesn't introduce regressions due to typos.
95% of the patch just moves large parts of the PHY code from one file to another. More move-patches will follow.
5% of the patch introduces an "ops" based PHY API.

Please test on all of your devices.

Quoted 7 lines
Quoted 2 lines

http://bu3sch.de/patches/wireless-testing/20080816-0023/patches/002-b43-phy-ops.patch
Apply against wireless-testing.git

As a novice to driver development, is there some way I can help with testing this?

I have no experience of driver development/testing, but have an N-PHY

To say it once again:
Despite the fact that the subject of this email mentiones N and LP PHYs, it implements _nothing_ N and LP related. It just _prepares_ the code for the future when we will add N and LP stuff (and other PHY stuff. Also A/B/G related).

#15 lore raw
In reply to Michael Buesch
Quoted 11 lines · Michael Buesch

This is the first part for the rewrite of the b43 PHY API. This is needed in order to make development of N and LP code possible.

PLEASE TEST TEST TEST TEST TEST

Lots of testing on lots of different devices is needed to ensure this doesn't introduce regressions due to typos.
95% of the patch just moves large parts of the PHY code from one file to another. More move-patches will follow.
5% of the patch introduces an "ops" based PHY API.

Quoted 4 lines

Please test on all of your devices.

http://bu3sch.de/patches/wireless-testing/20080816-0023/patches/002-b43-phy-ops.patch
Apply against wireless-testing.git

As a novice to driver development, is there some way I can help with testing this?

I have no experience of driver development/testing, but have an N-PHY BCM4328 wireless NIC that is just itching to be eventually freed from ndiswrapper :) I'd be happy to lend some help testing new patches and feeding back results, if I could get a few pointers on where to get started...

I'm running 2.6.24-19 kernel release, and my card is listed by lspci as:

06:00.0 Network controller: Broadcom Corporation BCM4328 802.11a/b/g/n (rev 03)

Sean

#16 lore raw
In reply to Michael Buesch

MjAwOC84LzE2IE1pY2hhZWwgQnVlc2NoIDxtYkBidTNzY2guZGU+Ogo+IFRoaXMgaXMgdGhlIGZp cnN0IHBhcnQgZm9yIHRoZSByZXdyaXRlIG9mIHRoZSBiNDMgUEhZIEFQSS4KPiBUaGlzIGlzIG5l ZWRlZCBpbiBvcmRlciB0byBtYWtlIGRldmVsb3BtZW50IG9mIE4gYW5kIExQIGNvZGUgcG9zc2li bGUuCj4KPiBQTEVBU0UgVEVTVCBURVNUIFRFU1QgVEVTVCBURVNUCj4KPiBMb3RzIG9mIHRlc3Rp bmcgb24gbG90cyBvZiBkaWZmZXJlbnQgZGV2aWNlcyBpcyBuZWVkZWQgdG8gZW5zdXJlIHRoaXMK PiBkb2Vzbid0IGludHJvZHVjZSByZWdyZXNzaW9ucyBkdWUgdG8gdHlwb3MuCj4gOTUlIG9mIHRo ZSBwYXRjaCBqdXN0IG1vdmVzIGxhcmdlIHBhcnRzIG9mIHRoZSBQSFkgY29kZSBmcm9tIG9uZSBm aWxlCj4gdG8gYW5vdGhlci4gTW9yZSBtb3ZlLXBhdGNoZXMgd2lsbCBmb2xsb3cuCj4gNSUgb2Yg dGhlIHBhdGNoIGludHJvZHVjZXMgYW4gIm9wcyIgYmFzZWQgUEhZIEFQSS4KPgo+IFBsZWFzZSB0 ZXN0IG9uIGFsbCBvZiB5b3VyIGRldmljZXMuCj4KPiBodHRwOi8vYnUzc2NoLmRlL3BhdGNoZXMv d2lyZWxlc3MtdGVzdGluZy8yMDA4MDgxNi0wMDIzL3BhdGNoZXMvMDAyLWI0My1waHktb3BzLnBh dGNoCj4gQXBwbHkgYWdhaW5zdCB3aXJlbGVzcy10ZXN0aW5nLmdpdAoKQXBwbGllZCB0byB0b2Rh eSB3aXJlbGVzcy10ZXN0aW5nIGdpdC4gQ29ubmVjdGVkIHRvIG15IEFQIHdpdGhvdXQKcHJvYmxl bSwgY29ubmVjdGlvbiBzdGFibGUgZm9yIDkwbWluIGFuZCA2MDBNQiBvZiBkb3dubG9hZC4gSSBk aWRuJ3QKdGVzdCBzcGVlZCBwZXJmb3JtYW5jZSBhcyBteSBhbnRlbm5hIGluIGJyb2tlbi4gU28g ZXZlcnl0aGluZyBzZWVtcyB0bwp3b3JrIGZpbmUgZm9yIG1lLgoKYjQzLXBjaS1icmlkZ2UgMDAw MDowNjowNS4wOiBQQ0kgSU5UIEEgLT4gR1NJIDIxIChsZXZlbCwgbG93KSAtPiBJUlEgMjEKYjQz LXBoeTA6IEJyb2FkY29tIDQzMTggV0xBTiBmb3VuZApiNDMtcGh5MCBkZWJ1ZzogRm91bmQgUEhZ OiBBbmFsb2cgMywgVHlwZSAyLCBSZXZpc2lvbiA3CmI0My1waHkwIGRlYnVnOiBGb3VuZCBSYWRp bzogTWFudWYgMHgxN0YsIFZlcnNpb24gMHgyMDUwLCBSZXZpc2lvbiA4CmlucHV0OiBiNDMtcGh5 MCBhcyAvZGV2aWNlcy92aXJ0dWFsL2lucHV0L2lucHV0OApmaXJtd2FyZTogcmVxdWVzdGluZyBi NDMvdWNvZGU1LmZ3CmZpcm13YXJlOiByZXF1ZXN0aW5nIGI0My9wY201LmZ3CmZpcm13YXJlOiBy ZXF1ZXN0aW5nIGI0My9iMGcwaW5pdHZhbHM1LmZ3CmZpcm13YXJlOiByZXF1ZXN0aW5nIGI0My9i MGcwYnNpbml0dmFsczUuZncKYjQzLXBoeTA6IExvYWRpbmcgZmlybXdhcmUgdmVyc2lvbiA0MTAu MjE2MCAoMjAwNy0wNS0yNiAxNTozMjoxMCkKYjQzLXBoeTAgZGVidWc6IENoaXAgaW5pdGlhbGl6 ZWQKYjQzLXBoeTAgZGVidWc6IDMyLWJpdCBETUEgaW5pdGlhbGl6ZWQKUmVnaXN0ZXJlZCBsZWQg ZGV2aWNlOiBiNDMtcGh5MDo6dHgKUmVnaXN0ZXJlZCBsZWQgZGV2aWNlOiBiNDMtcGh5MDo6cngK UmVnaXN0ZXJlZCBsZWQgZGV2aWNlOiBiNDMtcGh5MDo6cmFkaW8KYjQzLXBoeTAgZGVidWc6IFdp cmVsZXNzIGludGVyZmFjZSBzdGFydGVkCmI0My1waHkwIGRlYnVnOiBBZGRpbmcgSW50ZXJmYWNl IHR5cGUgMgpiNDMtcGh5MDogUmFkaW8gdHVybmVkIG9uIGJ5IHNvZnR3YXJlCgotLSAKUmFmYcWC IE1pxYJlY2tpCg==

#17 lore raw
In reply to Michael Buesch
Quoted 1 line · Michael Buesch

PLEASE TEST TEST TEST TEST TEST

I tested your patch on my 4318, and it seems performance and stability are pretty much the same as unpatched wireless-testing. Here's what dmesg has to say:

# dmesg | grep b43
b43-pci-bridge 0001:10:12.0: enabling device (0004 -> 0006)
b43-phy0: Broadcom 4318 WLAN found
b43-phy0 debug: Found PHY: Analog 3, Type 2, Revision 7
b43-phy0 debug: Found Radio: Manuf 0x17F, Version 0x2050, Revision 8
b43-phy0 debug: DebugFS (CONFIG_DEBUG_FS) not enabled in kernel config
firmware: requesting b43/ucode5.fw
firmware: requesting b43/pcm5.fw
firmware: requesting b43/b0g0initvals5.fw
firmware: requesting b43/b0g0bsinitvals5.fw
b43-phy0: Loading firmware version 410.2160 (2007-05-26 15:32:10)
b43-phy0 debug: Chip initialized
b43-phy0 debug: 32-bit DMA initialized
b43-phy0 debug: Wireless interface started
b43-phy0 debug: Adding Interface type 2
b43-phy0: Radio turned on by software
b43-phy0 debug: Using hardware based encryption for keyidx: 0, mac:
00:16:b6:a3:26:91
b43-phy0 debug: Using hardware based encryption for keyidx: 1, mac:
ff:ff:ff:ff:ff:ff

and the exact description of my card:

# lspci -vn
0001:10:12.0 0280: 14e4:4318 (rev 02)
        Subsystem: 106b:4318
        Flags: bus master, fast devsel, latency 16, IRQ 52
        Memory at 80084000 (32-bit, non-prefetchable) [size=3D8K]
        Kernel driver in use: b43-pci-bridge
        Kernel modules: ssb

I transfered some files around using both patched and unpatched wireless-testing, and I get very similar results in both cases:
around 2.6 MB/s upload and 3.5 MB/s download. This is a couple rooms away from the AP, with a signal quality of 58/100.

I will continue using this kernel for some time, and will report back here if I notice anything peculiar.

I hope I didn't forget anything useful, but the bottom line is that I didn't see any difference between patched and unpatched wireless-testing, and if you need me to run some more tests, I'd be happy to; please let me know.

--
Beno=C3=AEt
--
To unsubscribe from this list: send the line "unsubscribe linux-wireles= s" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html