On Mon, Sep 24, 2012 at 1:34 AM, Rajkumar Manoharan <rmanohar@xxxxxxxxxxxxxxxx> wrote: > Whenever both WLAN and BT in/out sleep mode, sometimes WLAN > is not able to take back the shared LNA control after resumes > from sleep mode. The idea is that for WLAN to check if BT owns > LNA control and BT is in sleep mode when WLAN just resumes from > sleep mode. If the condition is true, do a BTCOEX_RC_WARM_RESET > for WLAN to take back the control of shared LNA. > Now the issue is the BT sleep value read from MCI register is > overlooked by assigning u32 into u8. Hence the above condition never > be met so that WLAN used to report beacon losses and frequent > connection drops. > > Signed-off-by: Rajkumar Manoharan <rmanohar@xxxxxxxxxxxxxxxx> Tested-by: Paul Stewart <pstew@xxxxxxxxxxxx> > --- > drivers/net/wireless/ath/ath9k/ar9003_mci.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/net/wireless/ath/ath9k/ar9003_mci.c b/drivers/net/wireless/ath/ath9k/ar9003_mci.c > index cab2384..d3fae36 100644 > --- a/drivers/net/wireless/ath/ath9k/ar9003_mci.c > +++ b/drivers/net/wireless/ath/ath9k/ar9003_mci.c > @@ -1410,7 +1410,7 @@ void ar9003_mci_set_power_awake(struct ath_hw *ah) > } > REG_WRITE(ah, AR_DIAG_SW, (diag_sw | BIT(27) | BIT(19) | BIT(18))); > lna_ctrl = REG_READ(ah, AR_OBS_BUS_CTRL) & 0x3; > - bt_sleep = REG_READ(ah, AR_MCI_RX_STATUS) & AR_MCI_RX_REMOTE_SLEEP; > + bt_sleep = MS(REG_READ(ah, AR_MCI_RX_STATUS), AR_MCI_RX_REMOTE_SLEEP); > > REG_WRITE(ah, AR_BTCOEX_CTRL2, btcoex_ctrl2); > REG_WRITE(ah, AR_DIAG_SW, diag_sw); > -- > 1.7.12.1 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-wireless" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html