diff mbox

b43: LP-PHY: Fix another TX power control abuse

Message ID 4A85D070.6070702@gmail.com (mailing list archive)
State Not Applicable, archived
Headers show

Commit Message

Gábor Stefanik Aug. 14, 2009, 9 p.m. UTC
This should fix the remaining WARN_ON.

Signed-off-by: Gábor Stefanik <netrolller.3d@gmail.com>
---
 drivers/net/wireless/b43/phy_lp.c |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

Comments

Larry Finger Aug. 14, 2009, 9:31 p.m. UTC | #1
Gábor Stefanik wrote:
> This should fix the remaining WARN_ON.
> 
> Signed-off-by: Gábor Stefanik <netrolller.3d@gmail.com>
> ---
> drivers/net/wireless/b43/phy_lp.c |    7 ++++---
> 1 files changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/net/wireless/b43/phy_lp.c
> b/drivers/net/wireless/b43/phy_lp.c
> index bf89173..3872a31 100644
> --- a/drivers/net/wireless/b43/phy_lp.c
> +++ b/drivers/net/wireless/b43/phy_lp.c
> @@ -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);

Yes, this one got rid of the warnings.

Larry

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Gábor Stefanik Aug. 14, 2009, 10 p.m. UTC | #2
2009/8/14 Larry Finger <Larry.Finger@lwfinger.net>:
> Gábor Stefanik wrote:
>> This should fix the remaining WARN_ON.
>>
>> Signed-off-by: Gábor Stefanik <netrolller.3d@gmail.com>
>> ---
>> drivers/net/wireless/b43/phy_lp.c |    7 ++++---
>> 1 files changed, 4 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/net/wireless/b43/phy_lp.c
>> b/drivers/net/wireless/b43/phy_lp.c
>> index bf89173..3872a31 100644
>> --- a/drivers/net/wireless/b43/phy_lp.c
>> +++ b/drivers/net/wireless/b43/phy_lp.c
>> @@ -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);
>
> Yes, this one got rid of the warnings.
>
> Larry
>
>

I guess the device still doesn't TX/RX.
Larry Finger Aug. 14, 2009, 10:12 p.m. UTC | #3
Gábor Stefanik wrote:
> 2009/8/14 Larry Finger <Larry.Finger@lwfinger.net>:
>> 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
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/net/wireless/b43/phy_lp.c b/drivers/net/wireless/b43/phy_lp.c
index bf89173..3872a31 100644
--- a/drivers/net/wireless/b43/phy_lp.c
+++ b/drivers/net/wireless/b43/phy_lp.c
@@ -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);