aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/wireless/b43/main.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/drivers/net/wireless/b43/main.c b/drivers/net/wireless/b43/main.c
index 1e6a2add2aaf..a96e05a8ef7e 100644
--- a/drivers/net/wireless/b43/main.c
+++ b/drivers/net/wireless/b43/main.c
@@ -4221,7 +4221,18 @@ static void b43_bluetooth_coext_disable(struct b43_wldev *dev)
4221 4221
4222static void b43_imcfglo_timeouts_workaround(struct b43_wldev *dev) 4222static void b43_imcfglo_timeouts_workaround(struct b43_wldev *dev)
4223{ 4223{
4224 /* TODO: implement 80211 core workaround here */ 4224 struct ssb_bus *bus = dev->dev->bus;
4225 u32 tmp;
4226
4227 if ((bus->chip_id == 0x4311 && bus->chip_rev == 2) ||
4228 (bus->chip_id == 0x4312)) {
4229 tmp = ssb_read32(dev->dev, SSB_IMCFGLO);
4230 tmp &= ~SSB_IMCFGLO_REQTO;
4231 tmp &= ~SSB_IMCFGLO_SERTO;
4232 tmp |= 0x3;
4233 ssb_write32(dev->dev, SSB_IMCFGLO, tmp);
4234 ssb_commit_settings(bus);
4235 }
4225} 4236}
4226 4237
4227static void b43_set_synth_pu_delay(struct b43_wldev *dev, bool idle) 4238static void b43_set_synth_pu_delay(struct b43_wldev *dev, bool idle)