diff options
-rw-r--r-- | drivers/net/wireless/b43/main.c | 13 |
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 | ||
4222 | static void b43_imcfglo_timeouts_workaround(struct b43_wldev *dev) | 4222 | static 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 | ||
4227 | static void b43_set_synth_pu_delay(struct b43_wldev *dev, bool idle) | 4238 | static void b43_set_synth_pu_delay(struct b43_wldev *dev, bool idle) |