Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 243dcfcc authored by Michael Buesch's avatar Michael Buesch Committed by David S. Miller
Browse files

b43: Fix radio ID register reading



This fixes reading of the high 16 bits of the radio ID
on new devices. 2055 radios want lo16 to be read first.

Signed-off-by: default avatarMichael Buesch <mb@bu3sch.de>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 89539ebe
Loading
Loading
Loading
Loading
+3 −4
Original line number Diff line number Diff line
@@ -3139,10 +3139,9 @@ static int b43_phy_versioning(struct b43_wldev *dev)
			tmp = 0x5205017F;
	} else {
		b43_write16(dev, B43_MMIO_RADIO_CONTROL, B43_RADIOCTL_ID);
		tmp = b43_read16(dev, B43_MMIO_RADIO_DATA_HIGH);
		tmp <<= 16;
		tmp = b43_read16(dev, B43_MMIO_RADIO_DATA_LOW);
		b43_write16(dev, B43_MMIO_RADIO_CONTROL, B43_RADIOCTL_ID);
		tmp |= b43_read16(dev, B43_MMIO_RADIO_DATA_LOW);
		tmp |= (u32)b43_read16(dev, B43_MMIO_RADIO_DATA_HIGH) << 16;
	}
	radio_manuf = (tmp & 0x00000FFF);
	radio_ver = (tmp & 0x0FFFF000) >> 12;
@@ -3167,7 +3166,7 @@ static int b43_phy_versioning(struct b43_wldev *dev)
			unsupported = 1;
		break;
	case B43_PHYTYPE_N:
		if (radio_ver != 5)
		if (radio_ver != 0x2055)
			unsupported = 1;
		break;
	default: