Hi, On Fri, Nov 19, 2021 at 1:36 PM Jupiter <jupiter.hce@xxxxxxxxx> wrote: > > Hi, > > After days debugging, enabled CONFIG_MMC_DEBUG=y, I suspect the > mwifiex reset issue could still be a mwifiex bug. > > I use firmware sd8801_uapsta.bin, it is able to connect to the WiFi > network, but reset either from WiFi modem or following command killed > WiFi, disabled mwifiex and wiped off /sys/kernel/debug/mwifiex/mlan0: > > # echo 1 > /sys/kernel/debug/mwifiex/mlan0/reset > > [ 416.311114] mwifiex_sdio mmc0:0001:1: Resetting per request > [ 416.333491] mwifiex_sdio mmc0:0001:1: info: successfully > disconnected from 34:08:04:12:b1:a2: reason code 3 > [ 416.366368] mwifiex_sdio mmc0:0001:1: info: shutdown mwifiex... > [ 416.374812] mwifiex_sdio mmc0:0001:1: PREP_CMD: card is removed > [ 416.381431] mwifiex_sdio mmc0:0001:1: deleting the crypto keys > [ 416.387455] mwifiex_sdio mmc0:0001:1: PREP_CMD: card is removed > [ 416.393423] mwifiex_sdio mmc0:0001:1: deleting the crypto keys > [ 416.399401] mwifiex_sdio mmc0:0001:1: PREP_CMD: card is removed > [ 416.405364] mwifiex_sdio mmc0:0001:1: deleting the crypto keys > [ 416.411332] mwifiex_sdio mmc0:0001:1: PREP_CMD: card is removed > [ 416.417410] mwifiex_sdio mmc0:0001:1: deleting the crypto keys > [ 416.423293] mwifiex_sdio mmc0:0001:1: PREP_CMD: card is removed > [ 416.429349] mwifiex_sdio mmc0:0001:1: deleting the crypto keys > root@solar:~# [ 416.546386] mwifiex_sdio mmc0:0001:1: PREP_CMD: card is removed > [ 416.583278] mwifiex_sdio mmc0:0001:1: PREP_CMD: card is removed > [ 416.888906] IPv6: ADDRCONF(NETDEV_UP): sit0: link is not ready > [ 416.894822] IPv6: ADDRCONF(NETDEV_UP): wwan0: link is not ready > [ 417.302781] mwifiex_sdio mmc0:0001:1: WLAN FW already running! Skip FW dnld > [ 417.310149] mwifiex_sdio mmc0:0001:1: WLAN FW is active > [ 427.490344] mwifiex_sdio mmc0:0001:1: mwifiex_cmd_timeout_func: > Timeout cmd id = 0xa9, act = 0x0 > [ 427.499732] mwifiex_sdio mmc0:0001:1: num_data_h2c_failure = 0 > [ 427.505825] mwifiex_sdio mmc0:0001:1: num_cmd_h2c_failure = 0 > [ 427.511751] mwifiex_sdio mmc0:0001:1: is_cmd_timedout = 1 > [ 427.517216] mwifiex_sdio mmc0:0001:1: num_tx_timeout = 0 > [ 427.522686] mwifiex_sdio mmc0:0001:1: last_cmd_index = 1 > [ 427.528063] mwifiex_sdio mmc0:0001:1: last_cmd_id: 28 00 a9 00 07 > 01 07 01 24 00 > [ 427.535612] mwifiex_sdio mmc0:0001:1: last_cmd_act: 13 00 00 00 00 > 00 00 00 34 08 > [ 427.543248] mwifiex_sdio mmc0:0001:1: last_cmd_resp_index = 0 > [ 427.549058] mwifiex_sdio mmc0:0001:1: last_cmd_resp_id: 28 80 07 81 > 07 81 07 81 24 80 > [ 427.557033] mwifiex_sdio mmc0:0001:1: last_event_index = 3 > [ 427.562670] mwifiex_sdio mmc0:0001:1: last_event: 0b 00 0a 00 0b 00 > 0a 00 0a 00 > [ 427.570045] mwifiex_sdio mmc0:0001:1: data_sent=0 cmd_sent=0 > [ 427.575852] mwifiex_sdio mmc0:0001:1: ps_mode=0 ps_state=0 > [ 427.591087] mwifiex_sdio mmc0:0001:1: info: _mwifiex_fw_dpc: > unregister device > > The /sys/kernel/debug/mwifiex/mlan0 was deleted: > > # ls /sys/kernel/debug/mwifiex/ > > Looked at Douglas Anderson post "Fix Marvell WiFi reset by adding SDIO > API to replug card" > https://patchwork.kernel.org/project/linux-mmc/cover/20190716164209.62320-1-dianders@xxxxxxxxxxxx/, > I believe mwifiex should be able to replug card after reset, is it > still buggy or is it the firmware sd8801_uapsta.bin problem? I think I blocked most of this stuff out of my mind and it's also been over 2 years. ;-) ...but any chance that Bluetooth could somehow be involved, too? I seem to remember that things got complicated because we could have both functions going at once. I think I advocated for keeping it simple and always doing a full unplug / replug of the card to reset it, but from notes I guess upstream landed it so you need to handle the two cases (just WiFi vs WiFi+BT) in totally different ways. It looks like there's ongoing discussion going on in https://issuetracker.google.com/172214846. Maybe something there would be helpful? -Doug