summaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
authorRafał Miłecki <zajec5@gmail.com>2011-07-06 20:27:25 +0200
committerJohn W. Linville <linville@tuxdriver.com>2011-07-08 11:11:23 -0400
commit544e5d8bcd7ab305494e57cfa388b2d06a43c520 (patch)
tree117672d111e36b75b1c3a8b5de5f3440c199cafd /drivers/net
parent3fd48508d0d3d8e5423cab6b52a3b818085b6245 (diff)
b43: read radio ID on new cores
Signed-off-by: Rafał Miłecki <zajec5@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/wireless/b43/main.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/drivers/net/wireless/b43/main.c b/drivers/net/wireless/b43/main.c
index 074765a1e67..bff08707c43 100644
--- a/drivers/net/wireless/b43/main.c
+++ b/drivers/net/wireless/b43/main.c
@@ -4219,7 +4219,19 @@ static int b43_phy_versioning(struct b43_wldev *dev)
/* Get RADIO versioning */
if (dev->dev->core_rev >= 24) {
- /* TODO */
+ u16 radio24[3];
+
+ for (tmp = 0; tmp < 3; tmp++) {
+ b43_write16(dev, B43_MMIO_RADIO24_CONTROL, tmp);
+ radio24[tmp] = b43_read16(dev, B43_MMIO_RADIO24_DATA);
+ }
+
+ /* Broadcom uses "id" for our "ver" and has separated "ver" */
+ /* radio_ver = (radio24[0] & 0xF0) >> 4; */
+
+ radio_manuf = 0x17F;
+ radio_ver = (radio24[2] << 8) | radio24[1];
+ radio_rev = (radio24[0] & 0xF);
} else {
if (dev->dev->chip_id == 0x4317) {
if (dev->dev->chip_rev == 0)