|
@@ -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)
|