diff options
author | Rafał Miłecki <zajec5@gmail.com> | 2011-05-10 20:10:59 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-05-11 14:50:42 -0400 |
commit | 0fd82eafe3aa70937905b7e19e256409ae48477e (patch) | |
tree | 034dfaa99d0724b27604265d8ce17b27ea1f9fd5 /drivers/net/wireless/b43/main.c | |
parent | 8576f815d5c8beb8b10f96abe31831b90af3d352 (diff) |
b43: implement timeouts workaround
Documented in: <4DCA7E40.9070709@lwfinger.net>
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/b43/main.c')
-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) |