b43: LP-PHY: Fix another TX power control abuse
PATCH 1/1 b43: LP-PHY: Fix another TX power control abuse
This should fix the remaining WARN_ON.
---drivers/net/wireless/b43/phy_lp.c | 7 ++++---
1 files changed, 4 insertions(+), 3 deletions(-)
drivers/net/wireless/b43/phy_lp.c +0 -0
@@ -1059,7 +1059,8 @@ static void lpphy_rev0_1_rc_calib(struct b43_wldev *dev)
bool old_txg_ovr; u8 old_bbmult; u16 old_rf_ovr, old_rf_ovrval, old_afe_ovr, old_afe_ovrval, - old_rf2_ovr, old_rf2_ovrval, old_phy_ctl, old_txpctl; + old_rf2_ovr, old_rf2_ovrval, old_phy_ctl; + enum b43_lpphy_txpctl_mode old_txpctl; u32 normal_pwr, ideal_pwr, mean_sq_pwr, tmp = 0, mean_sq_pwr_min = 0; int loopback, i, j, inner_sum;
@@ -1077,8 +1078,8 @@ static void lpphy_rev0_1_rc_calib(struct b43_wldev *dev)
old_rf2_ovr = b43_phy_read(dev, B43_LPPHY_RF_OVERRIDE_2); old_rf2_ovrval = b43_phy_read(dev, B43_LPPHY_RF_OVERRIDE_2_VAL); old_phy_ctl = b43_phy_read(dev, B43_LPPHY_LP_PHY_CTL);
- old_txpctl = b43_phy_read(dev, B43_LPPHY_TX_PWR_CTL_CMD) &
- B43_LPPHY_TX_PWR_CTL_CMD_MODE;
+ lpphy_read_tx_pctl_mode_from_hardware(dev);
+ old_txpctl = lpphy->txpctl_mode;
lpphy_set_tx_power_control(dev, B43_LPPHY_TXPCTL_OFF); lpphy_disable_crs(dev);
Signature · 1 line
1.6.2.4
Quoted 34 lines · Gábor Stefanik
This should fix the remaining
WARN_ON.Signed-off-by Gábor Stefanik <[email protected]>---
drivers/net/wireless/b43/phy_lp.c| 7 ++++---1 files changed, 4 insertions(+), 3 deletions(-)drivers/net/wireless/b43/phy_lp.c +4
-3@@ -1059,7 +1059,8 @@ static void lpphy_rev0_1_rc_calib(struct b43_wldev *dev)bool old_txg_ovr;u8 old_bbmult;u16 old_rf_ovr, old_rf_ovrval, old_afe_ovr, old_afe_ovrval, - old_rf2_ovr, old_rf2_ovrval, old_phy_ctl, old_txpctl; + old_rf2_ovr, old_rf2_ovrval, old_phy_ctl; +enum b43_lpphy_txpctl_mode old_txpctl;u32 normal_pwr, ideal_pwr, mean_sq_pwr, tmp =0 , mean_sq_pwr_min =0 ;int loopback, i, j, inner_sum;@@ -1077,8 +1078,8 @@ static void lpphy_rev0_1_rc_calib(struct b43_wldev *dev) old_rf2_ovr =b43_phy_read (dev,B43_LPPHY_RF_OVERRIDE_2 ); old_rf2_ovrval =b43_phy_read (dev,B43_LPPHY_RF_OVERRIDE_2_VAL ); old_phy_ctl =b43_phy_read (dev,B43_LPPHY_LP_PHY_CTL ); - old_txpctl =b43_phy_read (dev,B43_LPPHY_TX_PWR_CTL_CMD ) & -B43_LPPHY_TX_PWR_CTL_CMD_MODE ; +lpphy_read_tx_pctl_mode_from_hardware (dev); + old_txpctl = lpphy->txpctl_mode;lpphy_set_tx_power_control (dev,B43_LPPHY_TXPCTL_OFF );
Quoted 1 line
lpphy_disable_crs(dev);
Yes, this one got rid of the warnings.
Larry
2009/8/14 Larry Finger <[email protected]>:
Quoted 34 lines
Quoted 33 lines · Gábor Stefanik
This should fix the remaining
WARN_ON.Signed-off-by Gábor Stefanik <[email protected]>---
drivers/net/wireless/b43/phy_lp.c| 7 ++++---1 files changed, 4 insertions(+), 3 deletions(-)drivers/net/wireless/b43/phy_lp.c +4
-3@@ -1059,7 +1059,8 @@ static void lpphy_rev0_1_rc_calib(struct b43_wldev *dev) bool old_txg_ovr; u8 old_bbmult; u16 old_rf_ovr, old_rf_ovrval, old_afe_ovr, old_afe_ovrval, - old_rf2_ovr, old_rf2_ovrval, old_phy_ctl, old_txpctl; + old_rf2_ovr, old_rf2_ovrval, old_phy_ctl; + enum b43_lpphy_txpctl_mode old_txpctl; u32 normal_pwr, ideal_pwr, mean_sq_pwr, tmp = 0, mean_sq_pwr_min = 0; int loopback, i, j, inner_sum;@@ -1077,8 +1078,8 @@ static void lpphy_rev0_1_rc_calib(struct b43_wldev *dev) old_rf2_ovr = b43_phy_read(dev, B43_LPPHY_RF_OVERRIDE_2); old_rf2_ovrval = b43_phy_read(dev, B43_LPPHY_RF_OVERRIDE_2_VAL); old_phy_ctl = b43_phy_read(dev, B43_LPPHY_LP_PHY_CTL); - old_txpctl = b43_phy_read(dev, B43_LPPHY_TX_PWR_CTL_CMD) & - B43_LPPHY_TX_PWR_CTL_CMD_MODE; + lpphy_read_tx_pctl_mode_from_hardware(dev); + old_txpctl = lpphy->txpctl_mode;
Quoted 8 lines
Quoted 2 lines
drivers/net/wireless/b43/phy_lp.c +0
-0lpphy_set_tx_power_control(dev, B43_LPPHY_TXPCTL_OFF);
lpphy_disable_crs(dev);Yes, this one got rid of the warnings.
Larry
I guess the device still doesn't TX/RX.
Signature · 1 line
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
Quoted 9 lines · Gábor Stefanik
2009/8/14 Larry Finger <[email protected]>:
Quoted 5 lines
Yes, this one got rid of the warnings.
Larry
I guess the device still doesn't TX/RX.
Not yet. The fact that it keeps getting shut down/restarted indicates that the TX operations are not completing. I'm currently tracking the path of operations.
Larry