mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
To: John Glotzer <jglotzer@gmail.com>, sergio.callegari@unibo.it
Cc: Aaron.Hou@mediatek.com, Chris.Lu@mediatek.com,
	Deren.Wu@mediatek.com, Hao.Qin@mediatek.com,
	Sean.Wang@mediatek.com, johan.hedberg@gmail.com,
	linux-bluetooth@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-mediatek@lists.infradead.org, luiz.dentz@gmail.com,
	marc.payne@mdpsys.co.uk, marcel@holtmann.org,
	regressions@lists.linux.dev, steve.lee@mediatek.com,
	tiwai@suse.de
Subject: Re: [PATCH] Bluetooth: btmtk: Remove resetting mt7921 before downloading the fw
Date: Tue, 28 Jan 2025 02:04:37 +0200	[thread overview]
Message-ID: <585f1075-a662-489b-bd5c-cf9f24291804@gmail.com> (raw)
In-Reply-To: <20250118165840.73110-1-jglotzer@gmail.com>

On 18/01/2025 18:58, John Glotzer wrote:
> (Note: additional discussion has taken place under
> Re: [REGRESSION] bluetooth: mt7921: Crash on Resume From Suspend And Hibernate)
> 
> Hi,
> 
> I have dug further into this issue and I think I have a root cause analysis that
> makes sense (at least it does for me :) ).
> The TLDR is that the root cause is the following commit that was introduced with the 6.11 kernel.
> 
> https://github.com/torvalds/linux/commit/d53ab629cff57
> 
> Furthermore, the problem must be the call to usleep_range() in
> drivers/net/wireless/mediatek/mt76/mt792x_core.c as this is the only behavioral change.
> 
> Notice that this commit first shows up in v6.11-rc1 and is present for all subsequent releases,
> which matches perfectly the breakage pattern seen by the user community.
> 
> What, then, is the evidence for this?
> 
> First of all the entire community has been unanimous in the observation that the issue
> started with the 6.11 kernel. The universal experience has been that any kernel prior
> to that had no issues, and all kernels starting with 6.11 were affected. Also no attempts
> to mitigate the issue in code by attacking the problem via the firmware download code paths have
> been fruitful.
> 
> The next piece of solid data is outlined here:
> 
> https://github.com/alimert-t/suspend-freeze-fix-for-mt7921e
> 
> Here the lead paragraph states:
> "A suspend/resume issue occurs on systems with the MediaTek MT7921 Wi-Fi adapter when
> running on Kernel 6.11.-. After suspending, the system fails to resume / freezes and requires a hard
> reset."
> 
> The mitigation for this issue has consisted of one of two approches:
> 
> - rfkill bluetooth and wifi on sleep and reverse the process on wake
> - add the parameter mt7921e.disable_aspm=y to the kernel command line
> (anecdotally I have seen reports of people doing things like turning off bluetooth
>  and/or wifi before suspending or for that matter rmmod mt7921e before suspending).
> 
> I personally have used both of these methods with a sucess rate of 100%.
> 
> The way to unlock the puzzle is to examine the 6.11 code with an eye towards
> - what changed between v6.10 and v6.11?
> - what is the intersection between this changeset and the disable_aspm paramter?
> 
> To cut to the chase the answer to both these questions is just the contents of
> https://github.com/torvalds/linux/commit/d53ab629cff57. I confirmed this by
> diffing v6.10 and v6.11 and then going through the diff looking for disable_aspm.
> 
> The following lines were added to drivers/net/wireless/mediatek/mt76/mt7921/pci.c
> 
> 	if (!mt7921_disable_aspm && mt76_pci_aspm_supported(pdev))
> 		dev->aspm_supported = true;
> 
> The bitfield aspm_supported was added to the struct mt792x_dev in drivers/net/wireless/mediatek/mt76/mt792x.h
> 
> and if this bitfield is true then the call to usleep_range is made in  __mt792xe_mcu_drv_pmctrl()
> in drivers/net/wireless/mediatek/mt76/mt792x_core.c.
> 
> 		if (dev->aspm_supported)
> 			usleep_range(2000, 3000);
> 
> By setting mt7921e.disable_aspm=y on the kernel command line, this code pathway is avoided
> and no crash or lockup happens when the device is woken back up.
> 
> Disclaimers:
> 
> - I don't claim to know the root cause for why the call to usleep_range() leads to a crash or a
>   freeze.
> 
> - I don't know the details of the specific issue the code for commit d53ab629cff57 was designed
>   to fix, hence I don't know the consequences of removing the call to usleep_range(). However,
>   I do know that the user experience has been significantly impacted negatively by the introduction
>   of d53ab629cff57 into the 6.11 kernel.
> 
> Thanks for your attention,
> 
> John Glotzer
> 
> 

John and Sergio, have y'all tried kernel 6.12.8 or newer?
People say the suspend problem is fixed:

https://bugzilla.kernel.org/show_bug.cgi?id=219514#c11

  reply	other threads:[~2025-01-28  0:04 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-22  5:23 Hao Qin
2024-09-10 17:09 ` Marc Payne
2024-09-12  7:09   ` Chris Lu (陸稚泓)
2024-09-17 19:53     ` marc.payne
     [not found]       ` <9bfbbf24ac2480d94d3455f7e33e4b5502b38ced.camel@mediatek.com>
2024-09-18 13:37         ` Luiz Augusto von Dentz
2024-09-19  3:26           ` Chris Lu (陸稚泓)
2024-09-19 22:25             ` marc.payne
2024-09-20  6:27               ` Chris Lu (陸稚泓)
2024-10-14  9:29                 ` Linux regression tracking (Thorsten Leemhuis)
2024-10-22 10:56                   ` Takashi Iwai
2024-10-30  9:21                     ` Thorsten Leemhuis
2024-10-30 11:03                       ` Chris Lu (陸稚泓)
2024-10-30 11:29                         ` Thorsten Leemhuis
2024-11-01  7:11                           ` Chris Lu (陸稚泓)
2024-11-01 14:22                             ` Thorsten Leemhuis
2024-11-02 10:04                               ` Takashi Iwai
2024-11-11  9:21                                 ` Linux regression tracking (Thorsten Leemhuis)
2025-01-13 22:18                                   ` Sergio Callegari
2025-01-18 16:58                                     ` John Glotzer
2025-01-28  0:04                                       ` Bitterblue Smith [this message]
2025-01-29 18:31                                         ` John Glotzer
2024-11-27 23:14                               ` [REGRESSION] bluetooth: mt7921: Crash on Resume From Suspend And Hibernate John Glotzer
2024-12-05 12:59                                 ` Sergio Callegari
2024-12-06  2:29                                   ` John Glotzer
2024-12-21  9:52                                   ` Sergio Callegari
2024-09-18 16:02         ` [PATCH] Bluetooth: btmtk: Remove resetting mt7921 before downloading the fw marc.payne
2025-01-10  9:55 Hao Qin
2025-01-14 17:20 ` patchwork-bot+bluetooth

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=585f1075-a662-489b-bd5c-cf9f24291804@gmail.com \
    --to=rtl8821cerfe2@gmail.com \
    --cc=Aaron.Hou@mediatek.com \
    --cc=Chris.Lu@mediatek.com \
    --cc=Deren.Wu@mediatek.com \
    --cc=Hao.Qin@mediatek.com \
    --cc=Sean.Wang@mediatek.com \
    --cc=jglotzer@gmail.com \
    --cc=johan.hedberg@gmail.com \
    --cc=linux-bluetooth@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=luiz.dentz@gmail.com \
    --cc=marc.payne@mdpsys.co.uk \
    --cc=marcel@holtmann.org \
    --cc=regressions@lists.linux.dev \
    --cc=sergio.callegari@unibo.it \
    --cc=steve.lee@mediatek.com \
    --cc=tiwai@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome