On November 3, 2024 12:01:55 PM Stefan Wahren <wahrenst@xxxxxxx> wrote:
Hi,
I'm currently working on s2idle support for Raspberry Pi 3B+ (BCM43455
SDIO). During the tests with I noticed harmless, but annoying error
messages from brcmfmac like this:
[ 383.186640] PM: suspend entry (s2idle)
[ 383.190107] Filesystems sync: 0.003 seconds
[ 383.247470] Freezing user space processes
[ 383.250291] Freezing user space processes completed (elapsed 0.002
seconds)
[ 383.250379] OOM killer disabled.
[ 383.250385] Freezing remaining freezable tasks
[ 383.251677] Freezing remaining freezable tasks completed (elapsed
0.001 seconds)
[ 384.292071] ieee80211 phy0: brcmf_fil_cmd_data: bus is down. we have
nothing to do.
[ 384.292079] ieee80211 phy0: brcmf_cfg80211_get_tx_power: error (-5)
These errors are not new and I assume they have always been there. I'm
not an expert here, so I want to know is the problem here that the SDIO
interface is shutdown before brcmfmac is suspended or lies the issue
within brcmfmac suspend itself?
Hi Stefan,
Upon suspend we execute the remove path and cleaning the interfaces. We
notify cfg80211 about the removal, which in turn will notify userspace,
but is tries to obtain the tx power from brcmfmac. However, at this
stage the communication with the dongle is already gone. These messages
are also seen in the module unload scenario. It seems a bit redundant to
query a device that is going to be removed. So it could be fixed by
chiming down those message or avoid it completely by changing the
behavior in cfg80211.
Regards,
Arend
Here is a calltrace for the error above:
[ 384.291308] brcmf_fil_cmd_data+0xe0/0x114 [brcmfmac] (P)
[ 384.291347] brcmf_fil_iovar_data_get+0xcc/0x134 [brcmfmac] (L)
[ 384.291384] brcmf_fil_iovar_data_get+0xcc/0x134 [brcmfmac]
[ 384.291420] brcmf_cfg80211_get_tx_power+0x58/0xd4 [brcmfmac]
[ 384.291458] nl80211_send_iface+0x1e8/0x584 [cfg80211]
[ 384.291549] nl80211_notify_iface+0x58/0xd4 [cfg80211]
[ 384.291615] _cfg80211_unregister_wdev+0x40/0x27c [cfg80211]
[ 384.291682] cfg80211_unregister_wdev+0x14/0x20 [cfg80211]
[ 384.291748] brcmf_p2p_ifp_removed+0x6c/0x98 [brcmfmac]
[ 384.291785] brcmf_remove_interface+0x170/0x1ec [brcmfmac]
[ 384.291822] brcmf_detach+0x60/0xfc [brcmfmac]
[ 384.291859] brcmf_sdio_remove+0x4c/0x188 [brcmfmac]
[ 384.291896] brcmf_sdiod_remove+0x24/0xa4 [brcmfmac]
[ 384.291933] brcmf_ops_sdio_suspend+0x100/0x1c8 [brcmfmac]
[ 384.291971] pm_generic_suspend+0x2c/0x44
[ 384.291982] dpm_run_callback.constprop.0+0x74/0x134
[ 384.291993] device_suspend+0x110/0x3d0
[ 384.292002] async_suspend+0x24/0x3c
[ 384.292012] async_run_entry_fn+0x34/0xe0
[ 384.292022] process_one_work+0x150/0x294
[ 384.292032] worker_thread+0x2dc/0x3dc
[ 384.292041] kthread+0x118/0x11c
[ 384.292049] ret_from_fork+0x10/0x20
Best regards