Message ID | 20200824093225.13689-1-kai.heng.feng@canonical.com |
---|---|
State | New |
Headers | show |
Series | rtw88: pci: Power cycle device during shutdown | expand |
> On Aug 26, 2020, at 08:27, Brian Norris <briannorris@chromium.org> wrote: > > On Mon, Aug 24, 2020 at 2:32 AM Kai-Heng Feng > <kai.heng.feng@canonical.com> wrote: >> >> Sometimes system freeze on cold/warm boot when rtw88 is probing. >> >> According to [1], platform firmware may not properly power manage the >> device during shutdown. I did some expirements and putting the device to >> D3 can workaround the issue. >> >> So let's power cycle the device by putting the device to D3 at shutdown >> to prevent the issue from happening. >> >> [1] https://bugzilla.kernel.org/show_bug.cgi?id=206411#c9 >> >> Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com> > > Can you at least include some more details, like which hardware > version and firmware? 8723DE, 8822BE and 8822CE are affected [1]. > And which platform? Many x86 laptops. Some users claim BIOS update can fix the issue, however some are still affected. > It seems a bit harsh to > include a platform workaround to run for everyone, unless there's > truly no downside. But even then, it's good to log what you're working > with, in case there are ever problems with this in the future. Ok. I can send V2 with more detailed commit message. [1] https://bugs.launchpad.net/bugs/1872984 Kai-Heng > > Brian
diff --git a/drivers/net/wireless/realtek/rtw88/pci.c b/drivers/net/wireless/realtek/rtw88/pci.c index 3413973bc475..7f1f5073b9f4 100644 --- a/drivers/net/wireless/realtek/rtw88/pci.c +++ b/drivers/net/wireless/realtek/rtw88/pci.c @@ -1599,6 +1599,8 @@ void rtw_pci_shutdown(struct pci_dev *pdev) if (chip->ops->shutdown) chip->ops->shutdown(rtwdev); + + pci_set_power_state(pdev, PCI_D3hot); } EXPORT_SYMBOL(rtw_pci_shutdown);
Sometimes system freeze on cold/warm boot when rtw88 is probing. According to [1], platform firmware may not properly power manage the device during shutdown. I did some expirements and putting the device to D3 can workaround the issue. So let's power cycle the device by putting the device to D3 at shutdown to prevent the issue from happening. [1] https://bugzilla.kernel.org/show_bug.cgi?id=206411#c9 Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com> --- drivers/net/wireless/realtek/rtw88/pci.c | 2 ++ 1 file changed, 2 insertions(+)