diff options
-rw-r--r-- | drivers/net/wireless/bcm43xx/bcm43xx.h | 3 | ||||
-rw-r--r-- | drivers/net/wireless/bcm43xx/bcm43xx_main.c | 4 | ||||
-rw-r--r-- | drivers/net/wireless/bcm43xx/bcm43xx_phy.c | 8 |
3 files changed, 9 insertions, 6 deletions
diff --git a/drivers/net/wireless/bcm43xx/bcm43xx.h b/drivers/net/wireless/bcm43xx/bcm43xx.h index 95ff175d8f..f8483c179e 100644 --- a/drivers/net/wireless/bcm43xx/bcm43xx.h +++ b/drivers/net/wireless/bcm43xx/bcm43xx.h | |||
@@ -277,11 +277,14 @@ | |||
277 | #define BCM43xx_SBTMSTATELOW_REJECT 0x02 | 277 | #define BCM43xx_SBTMSTATELOW_REJECT 0x02 |
278 | #define BCM43xx_SBTMSTATELOW_CLOCK 0x10000 | 278 | #define BCM43xx_SBTMSTATELOW_CLOCK 0x10000 |
279 | #define BCM43xx_SBTMSTATELOW_FORCE_GATE_CLOCK 0x20000 | 279 | #define BCM43xx_SBTMSTATELOW_FORCE_GATE_CLOCK 0x20000 |
280 | #define BCM43xx_SBTMSTATELOW_G_MODE_ENABLE 0x20000000 | ||
280 | 281 | ||
281 | /* sbtmstatehigh state flags */ | 282 | /* sbtmstatehigh state flags */ |
282 | #define BCM43xx_SBTMSTATEHIGH_SERROR 0x00000001 | 283 | #define BCM43xx_SBTMSTATEHIGH_SERROR 0x00000001 |
283 | #define BCM43xx_SBTMSTATEHIGH_BUSY 0x00000004 | 284 | #define BCM43xx_SBTMSTATEHIGH_BUSY 0x00000004 |
284 | #define BCM43xx_SBTMSTATEHIGH_TIMEOUT 0x00000020 | 285 | #define BCM43xx_SBTMSTATEHIGH_TIMEOUT 0x00000020 |
286 | #define BCM43xx_SBTMSTATEHIGH_G_PHY_AVAIL 0x00010000 | ||
287 | #define BCM43xx_SBTMSTATEHIGH_A_PHY_AVAIL 0x00020000 | ||
285 | #define BCM43xx_SBTMSTATEHIGH_COREFLAGS 0x1FFF0000 | 288 | #define BCM43xx_SBTMSTATEHIGH_COREFLAGS 0x1FFF0000 |
286 | #define BCM43xx_SBTMSTATEHIGH_DMA64BIT 0x10000000 | 289 | #define BCM43xx_SBTMSTATEHIGH_DMA64BIT 0x10000000 |
287 | #define BCM43xx_SBTMSTATEHIGH_GATEDCLK 0x20000000 | 290 | #define BCM43xx_SBTMSTATEHIGH_GATEDCLK 0x20000000 |
diff --git a/drivers/net/wireless/bcm43xx/bcm43xx_main.c b/drivers/net/wireless/bcm43xx/bcm43xx_main.c index a38e7eec0e..5e96bca673 100644 --- a/drivers/net/wireless/bcm43xx/bcm43xx_main.c +++ b/drivers/net/wireless/bcm43xx/bcm43xx_main.c | |||
@@ -1407,7 +1407,7 @@ void bcm43xx_wireless_core_reset(struct bcm43xx_private *bcm, int connect_phy) | |||
1407 | & ~(BCM43xx_SBF_MAC_ENABLED | 0x00000002)); | 1407 | & ~(BCM43xx_SBF_MAC_ENABLED | 0x00000002)); |
1408 | } else { | 1408 | } else { |
1409 | if (connect_phy) | 1409 | if (connect_phy) |
1410 | flags |= 0x20000000; | 1410 | flags |= BCM43xx_SBTMSTATELOW_G_MODE_ENABLE; |
1411 | bcm43xx_phy_connect(bcm, connect_phy); | 1411 | bcm43xx_phy_connect(bcm, connect_phy); |
1412 | bcm43xx_core_enable(bcm, flags); | 1412 | bcm43xx_core_enable(bcm, flags); |
1413 | bcm43xx_write16(bcm, 0x03E6, 0x0000); | 1413 | bcm43xx_write16(bcm, 0x03E6, 0x0000); |
@@ -3604,7 +3604,7 @@ int bcm43xx_select_wireless_core(struct bcm43xx_private *bcm, | |||
3604 | u32 sbtmstatelow; | 3604 | u32 sbtmstatelow; |
3605 | 3605 | ||
3606 | sbtmstatelow = bcm43xx_read32(bcm, BCM43xx_CIR_SBTMSTATELOW); | 3606 | sbtmstatelow = bcm43xx_read32(bcm, BCM43xx_CIR_SBTMSTATELOW); |
3607 | sbtmstatelow |= 0x20000000; | 3607 | sbtmstatelow |= BCM43xx_SBTMSTATELOW_G_MODE_ENABLE; |
3608 | bcm43xx_write32(bcm, BCM43xx_CIR_SBTMSTATELOW, sbtmstatelow); | 3608 | bcm43xx_write32(bcm, BCM43xx_CIR_SBTMSTATELOW, sbtmstatelow); |
3609 | } | 3609 | } |
3610 | err = wireless_core_up(bcm, 1); | 3610 | err = wireless_core_up(bcm, 1); |
diff --git a/drivers/net/wireless/bcm43xx/bcm43xx_phy.c b/drivers/net/wireless/bcm43xx/bcm43xx_phy.c index 72529a440f..c47e19a952 100644 --- a/drivers/net/wireless/bcm43xx/bcm43xx_phy.c +++ b/drivers/net/wireless/bcm43xx/bcm43xx_phy.c | |||
@@ -168,16 +168,16 @@ int bcm43xx_phy_connect(struct bcm43xx_private *bcm, int connect) | |||
168 | 168 | ||
169 | flags = bcm43xx_read32(bcm, BCM43xx_CIR_SBTMSTATEHIGH); | 169 | flags = bcm43xx_read32(bcm, BCM43xx_CIR_SBTMSTATEHIGH); |
170 | if (connect) { | 170 | if (connect) { |
171 | if (!(flags & 0x00010000)) | 171 | if (!(flags & BCM43xx_SBTMSTATEHIGH_G_PHY_AVAIL)) |
172 | return -ENODEV; | 172 | return -ENODEV; |
173 | flags = bcm43xx_read32(bcm, BCM43xx_CIR_SBTMSTATELOW); | 173 | flags = bcm43xx_read32(bcm, BCM43xx_CIR_SBTMSTATELOW); |
174 | flags |= (0x800 << 18); | 174 | flags |= BCM43xx_SBTMSTATELOW_G_MODE_ENABLE; |
175 | bcm43xx_write32(bcm, BCM43xx_CIR_SBTMSTATELOW, flags); | 175 | bcm43xx_write32(bcm, BCM43xx_CIR_SBTMSTATELOW, flags); |
176 | } else { | 176 | } else { |
177 | if (!(flags & 0x00020000)) | 177 | if (!(flags & BCM43xx_SBTMSTATEHIGH_A_PHY_AVAIL)) |
178 | return -ENODEV; | 178 | return -ENODEV; |
179 | flags = bcm43xx_read32(bcm, BCM43xx_CIR_SBTMSTATELOW); | 179 | flags = bcm43xx_read32(bcm, BCM43xx_CIR_SBTMSTATELOW); |
180 | flags &= ~(0x800 << 18); | 180 | flags &= ~BCM43xx_SBTMSTATELOW_G_MODE_ENABLE; |
181 | bcm43xx_write32(bcm, BCM43xx_CIR_SBTMSTATELOW, flags); | 181 | bcm43xx_write32(bcm, BCM43xx_CIR_SBTMSTATELOW, flags); |
182 | } | 182 | } |
183 | out: | 183 | out: |