diff options
Diffstat (limited to 'drivers/net/wireless/bcm43xx/bcm43xx_radio.c')
-rw-r--r-- | drivers/net/wireless/bcm43xx/bcm43xx_radio.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/drivers/net/wireless/bcm43xx/bcm43xx_radio.c b/drivers/net/wireless/bcm43xx/bcm43xx_radio.c index af19a07032a3..32beb91b7164 100644 --- a/drivers/net/wireless/bcm43xx/bcm43xx_radio.c +++ b/drivers/net/wireless/bcm43xx/bcm43xx_radio.c | |||
@@ -1393,11 +1393,12 @@ u16 bcm43xx_radio_init2050(struct bcm43xx_private *bcm) | |||
1393 | backup[12] = bcm43xx_read16(bcm, BCM43xx_MMIO_CHANNEL_EXT); | 1393 | backup[12] = bcm43xx_read16(bcm, BCM43xx_MMIO_CHANNEL_EXT); |
1394 | 1394 | ||
1395 | // Initialization | 1395 | // Initialization |
1396 | if (phy->version == 0) { | 1396 | if (phy->analog == 0) { |
1397 | bcm43xx_write16(bcm, 0x03E6, 0x0122); | 1397 | bcm43xx_write16(bcm, 0x03E6, 0x0122); |
1398 | } else { | 1398 | } else { |
1399 | if (phy->version >= 2) | 1399 | if (phy->analog >= 2) |
1400 | bcm43xx_write16(bcm, 0x03E6, 0x0040); | 1400 | bcm43xx_phy_write(bcm, 0x0003, (bcm43xx_phy_read(bcm, 0x0003) |
1401 | & 0xFFBF) | 0x0040); | ||
1401 | bcm43xx_write16(bcm, BCM43xx_MMIO_CHANNEL_EXT, | 1402 | bcm43xx_write16(bcm, BCM43xx_MMIO_CHANNEL_EXT, |
1402 | (bcm43xx_read16(bcm, BCM43xx_MMIO_CHANNEL_EXT) | 0x2000)); | 1403 | (bcm43xx_read16(bcm, BCM43xx_MMIO_CHANNEL_EXT) | 0x2000)); |
1403 | } | 1404 | } |
@@ -1405,7 +1406,7 @@ u16 bcm43xx_radio_init2050(struct bcm43xx_private *bcm) | |||
1405 | ret = bcm43xx_radio_calibrationvalue(bcm); | 1406 | ret = bcm43xx_radio_calibrationvalue(bcm); |
1406 | 1407 | ||
1407 | if (phy->type == BCM43xx_PHYTYPE_B) | 1408 | if (phy->type == BCM43xx_PHYTYPE_B) |
1408 | bcm43xx_radio_write16(bcm, 0x0078, 0x0003); | 1409 | bcm43xx_radio_write16(bcm, 0x0078, 0x0026); |
1409 | 1410 | ||
1410 | bcm43xx_phy_write(bcm, 0x0015, 0xBFAF); | 1411 | bcm43xx_phy_write(bcm, 0x0015, 0xBFAF); |
1411 | bcm43xx_phy_write(bcm, 0x002B, 0x1403); | 1412 | bcm43xx_phy_write(bcm, 0x002B, 0x1403); |
@@ -1416,7 +1417,7 @@ u16 bcm43xx_radio_init2050(struct bcm43xx_private *bcm) | |||
1416 | (bcm43xx_radio_read16(bcm, 0x0051) | 0x0004)); | 1417 | (bcm43xx_radio_read16(bcm, 0x0051) | 0x0004)); |
1417 | bcm43xx_radio_write16(bcm, 0x0052, 0x0000); | 1418 | bcm43xx_radio_write16(bcm, 0x0052, 0x0000); |
1418 | bcm43xx_radio_write16(bcm, 0x0043, | 1419 | bcm43xx_radio_write16(bcm, 0x0043, |
1419 | bcm43xx_radio_read16(bcm, 0x0043) | 0x0009); | 1420 | (bcm43xx_radio_read16(bcm, 0x0043) & 0xFFF0) | 0x0009); |
1420 | bcm43xx_phy_write(bcm, 0x0058, 0x0000); | 1421 | bcm43xx_phy_write(bcm, 0x0058, 0x0000); |
1421 | 1422 | ||
1422 | for (i = 0; i < 16; i++) { | 1423 | for (i = 0; i < 16; i++) { |
@@ -1488,7 +1489,7 @@ u16 bcm43xx_radio_init2050(struct bcm43xx_private *bcm) | |||
1488 | bcm43xx_phy_write(bcm, 0x0059, backup[17]); | 1489 | bcm43xx_phy_write(bcm, 0x0059, backup[17]); |
1489 | bcm43xx_phy_write(bcm, 0x0058, backup[18]); | 1490 | bcm43xx_phy_write(bcm, 0x0058, backup[18]); |
1490 | bcm43xx_write16(bcm, 0x03E6, backup[11]); | 1491 | bcm43xx_write16(bcm, 0x03E6, backup[11]); |
1491 | if (phy->version != 0) | 1492 | if (phy->analog != 0) |
1492 | bcm43xx_write16(bcm, BCM43xx_MMIO_CHANNEL_EXT, backup[12]); | 1493 | bcm43xx_write16(bcm, BCM43xx_MMIO_CHANNEL_EXT, backup[12]); |
1493 | bcm43xx_phy_write(bcm, 0x0035, backup[10]); | 1494 | bcm43xx_phy_write(bcm, 0x0035, backup[10]); |
1494 | bcm43xx_radio_selectchannel(bcm, radio->channel, 1); | 1495 | bcm43xx_radio_selectchannel(bcm, radio->channel, 1); |