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