@@ -1493,8 +1493,8 @@ static void b43_nphy_workarounds_rev3plus(struct b43_wldev *dev)
1493
1493
struct ssb_sprom * sprom = dev -> dev -> bus_sprom ;
1494
1494
1495
1495
/* TX to RX */
1496
- u8 tx2rx_events [9 ] = { 0x4 , 0x3 , 0x6 , 0x5 , 0x2 , 0x1 , 0x8 , 0x1F };
1497
- u8 tx2rx_delays [9 ] = { 8 , 4 , 2 , 2 , 4 , 4 , 6 , 1 };
1496
+ u8 tx2rx_events [8 ] = { 0x4 , 0x3 , 0x6 , 0x5 , 0x2 , 0x1 , 0x8 , 0x1F };
1497
+ u8 tx2rx_delays [8 ] = { 8 , 4 , 2 , 2 , 4 , 4 , 6 , 1 };
1498
1498
/* RX to TX */
1499
1499
u8 rx2tx_events_ipa [9 ] = { 0x0 , 0x1 , 0x2 , 0x8 , 0x5 , 0x6 , 0xF , 0x3 ,
1500
1500
0x1F };
@@ -1505,6 +1505,9 @@ static void b43_nphy_workarounds_rev3plus(struct b43_wldev *dev)
1505
1505
u16 tmp16 ;
1506
1506
u32 tmp32 ;
1507
1507
1508
+ b43_phy_write (dev , 0x23f , 0x1f8 );
1509
+ b43_phy_write (dev , 0x240 , 0x1f8 );
1510
+
1508
1511
tmp32 = b43_ntab_read (dev , B43_NTAB32 (30 , 0 ));
1509
1512
tmp32 &= 0xffffff ;
1510
1513
b43_ntab_write (dev , B43_NTAB32 (30 , 0 ), tmp32 );
@@ -1520,20 +1523,22 @@ static void b43_nphy_workarounds_rev3plus(struct b43_wldev *dev)
1520
1523
b43_phy_write (dev , 0x2AE , 0x000C );
1521
1524
1522
1525
/* TX to RX */
1523
- b43_nphy_set_rf_sequence (dev , 1 , tx2rx_events , tx2rx_delays , 9 );
1526
+ b43_nphy_set_rf_sequence (dev , 1 , tx2rx_events , tx2rx_delays ,
1527
+ ARRAY_SIZE (tx2rx_events ));
1524
1528
1525
1529
/* RX to TX */
1526
1530
if (b43_nphy_ipa (dev ))
1527
- b43_nphy_set_rf_sequence (dev , 1 , rx2tx_events_ipa ,
1528
- rx2tx_delays_ipa , 9 );
1531
+ b43_nphy_set_rf_sequence (dev , 0 , rx2tx_events_ipa ,
1532
+ rx2tx_delays_ipa , ARRAY_SIZE ( rx2tx_events_ipa ) );
1529
1533
if (nphy -> hw_phyrxchain != 3 &&
1530
1534
nphy -> hw_phyrxchain != nphy -> hw_phytxchain ) {
1531
1535
if (b43_nphy_ipa (dev )) {
1532
1536
rx2tx_delays [5 ] = 59 ;
1533
1537
rx2tx_delays [6 ] = 1 ;
1534
1538
rx2tx_events [7 ] = 0x1F ;
1535
1539
}
1536
- b43_nphy_set_rf_sequence (dev , 1 , rx2tx_events , rx2tx_delays , 9 );
1540
+ b43_nphy_set_rf_sequence (dev , 1 , rx2tx_events , rx2tx_delays ,
1541
+ ARRAY_SIZE (rx2tx_events ));
1537
1542
}
1538
1543
1539
1544
tmp16 = (b43_current_band (dev -> wl ) == IEEE80211_BAND_2GHZ ) ?
@@ -1547,8 +1552,8 @@ static void b43_nphy_workarounds_rev3plus(struct b43_wldev *dev)
1547
1552
1548
1553
b43_nphy_gain_ctrl_workarounds (dev );
1549
1554
1550
- b43_ntab_write (dev , B43_NTAB32 (8 , 0 ), 2 );
1551
- b43_ntab_write (dev , B43_NTAB32 (8 , 16 ), 2 );
1555
+ b43_ntab_write (dev , B43_NTAB16 (8 , 0 ), 2 );
1556
+ b43_ntab_write (dev , B43_NTAB16 (8 , 16 ), 2 );
1552
1557
1553
1558
/* TODO */
1554
1559
@@ -1560,6 +1565,8 @@ static void b43_nphy_workarounds_rev3plus(struct b43_wldev *dev)
1560
1565
b43_radio_write (dev , B2056_RX1 | B2056_RX_MIXA_BIAS_AUX , 0x07 );
1561
1566
b43_radio_write (dev , B2056_RX0 | B2056_RX_MIXA_LOB_BIAS , 0x88 );
1562
1567
b43_radio_write (dev , B2056_RX1 | B2056_RX_MIXA_LOB_BIAS , 0x88 );
1568
+ b43_radio_write (dev , B2056_RX0 | B2056_RX_MIXA_CMFB_IDAC , 0x00 );
1569
+ b43_radio_write (dev , B2056_RX1 | B2056_RX_MIXA_CMFB_IDAC , 0x00 );
1563
1570
b43_radio_write (dev , B2056_RX0 | B2056_RX_MIXG_CMFB_IDAC , 0x00 );
1564
1571
b43_radio_write (dev , B2056_RX1 | B2056_RX_MIXG_CMFB_IDAC , 0x00 );
1565
1572
0 commit comments