Re: [BUG] staging: rtl8192e: W_DISABLE# does not work after stop/start

From: Philipp Hortmann
Date: Thu Apr 13 2023 - 18:17:33 EST


On 4/13/23 11:34, Dan Carpenter wrote:
On Fri, Apr 07, 2023 at 11:02:05PM +0200, Philipp Hortmann wrote:
When loading the driver for rtl8192e, the W_DISABLE# switch is working as
intended. But when the WLAN is turned off in software and then turned on
again the W_DISABLE# does not work anymore.

Reason for this is that in the function _rtl92e_dm_check_rf_ctrl_gpio()
checking this every two seconds is an conditional return.

if (priv->bfirst_after_down) {
priv->bfirst_after_down = true; // PH: useless line
return;
}

tmp1byte = rtl92e_readb(dev, GPI); // PH: GPI for W_DISABLE#

bfirst_after_down is set true when switching the WLAN off in software. But
it is not set to false again when WLAN is turned on again.


Is there a question here? You're like the expert on this driver and you
seem to have figured out the solution... I'm confused.
For me a bug report is always a please to the community to fix. But when nobody likes to start I have to do it by myself...

regards,
dan carpenter


As expected I am not even on the half way. I can set the bfirst_after_down back to false. Then WLAN recovers but not the connection. The os is asking me to enter the WLAN password. I can do so but that does not fix the issue. I need to switch WLAN off and on in software. Then the connection comes back again.

I need to find a way to reset the internal states of the driver accordingly.

Thanks for your support.

No response required - will work on the fix on the weekend....

regards,

Philipp