Colin King <colin.king@xxxxxxxxxxxxx> writes: > From: Colin Ian King <colin.king@xxxxxxxxxxxxx> > > BT_Active and BT_State are being masked with 0x00ffffff so it the subsequent > comparisons with 0xffffffff are therefore a buggy check. Instead, check them > against 0x00ffffff. > > Unfortunately I couldn't find a datasheet or hardware to see if 0xffffffff > is an expected invalid bit pattern that should be checked before BT_Active and > BT_State are masked with 0x00ffffff, so for now, this fix seems like the least > risky approach. > > Signed-off-by: Colin Ian King <colin.king@xxxxxxxxxxxxx> > --- > drivers/staging/rtl8723au/hal/rtl8723a_bt-coexist.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) I don't really know about the BT parts here, since I never did anything with that part of the chip. Larry probably knows more. The only question is whether fixing this bug changes behavior that has unexpected side effects? Cheers, Jes > > diff --git a/drivers/staging/rtl8723au/hal/rtl8723a_bt-coexist.c b/drivers/staging/rtl8723au/hal/rtl8723a_bt-coexist.c > index bfcbd7a..6989580 100644 > --- a/drivers/staging/rtl8723au/hal/rtl8723a_bt-coexist.c > +++ b/drivers/staging/rtl8723au/hal/rtl8723a_bt-coexist.c > @@ -9824,7 +9824,7 @@ void BTDM_CheckBTIdleChange1Ant(struct rtw_adapter *padapter) > BT_Polling = rtl8723au_read32(padapter, regBTPolling); > RTPRINT(FBT, BT_TRACE, ("[DM][BT], BT_Polling(0x%x) =%x\n", regBTPolling, BT_Polling)); > > - if (BT_Active == 0xffffffff && BT_State == 0xffffffff && BT_Polling == 0xffffffff) > + if (BT_Active == 0x00ffffff && BT_State == 0x00ffffff && BT_Polling == 0xffffffff) > return; > if (BT_Polling == 0) > return; _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel