From: Sean Wang <sean.wang@kernel.org>
To: Javier Tia <floss@jetm.me>
Cc: Felix Fietkau <nbd@nbd.name>,
Lorenzo Bianconi <lorenzo@kernel.org>,
Ryder Lee <ryder.lee@mediatek.com>,
Shayne Chen <shayne.chen@mediatek.com>,
Sean Wang <sean.wang@mediatek.com>,
Matthias Brugger <matthias.bgg@gmail.com>,
AngeloGioacchino Del Regno
<angelogioacchino.delregno@collabora.com>,
Ming Yen Hsieh <mingyen.hsieh@mediatek.com>,
Deren Wu <deren.wu@mediatek.com>,
linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-mediatek@lists.infradead.org
Subject: Re: [PATCH v3 12/13] wifi: mt76: mt7925: disable ASPM and runtime PM for MT7927
Date: Thu, 26 Mar 2026 01:14:56 -0500 [thread overview]
Message-ID: <CAGp9LzpdV3TEK2LNrjotgJX10a-WyAb_8P_kpTNYVtUta2Q2MQ@mail.gmail.com> (raw)
In-Reply-To: <20260325-mt7927-wifi-support-v2-v3-12-5ca66c97a755@jetm.me>
Hi, Javier
On Wed, Mar 25, 2026 at 5:13 PM Javier Tia <floss@jetm.me> wrote:
>
> Disable PCIe ASPM unconditionally for MT7927. The CONNINFRA power
> domain and WFDMA register access are unreliable with PCIe L1 active,
> causing throughput to drop from 1+ Gbps to ~200 Mbps.
>
> Disable runtime PM and deep sleep for MT7927. The combo chip shares
> a CONNINFRA power domain between WiFi (PCIe) and BT (USB).
> SET_OWN/CLR_OWN transitions on the LPCTL register crash the BT
> firmware, requiring a full power cycle to recover. PM enablement will
> be addressed in a follow-up once safe power state transitions are
> determined.
>
> Signed-off-by: Javier Tia <floss@jetm.me>
> ---
> drivers/net/wireless/mediatek/mt76/mt7925/init.c | 6 +++++-
> drivers/net/wireless/mediatek/mt76/mt7925/pci.c | 9 +++++++--
> 2 files changed, 12 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/net/wireless/mediatek/mt76/mt7925/init.c b/drivers/net/wireless/mediatek/mt76/mt7925/init.c
> index c4c99380f5b5..89140fc6a2b6 100644
> --- a/drivers/net/wireless/mediatek/mt76/mt7925/init.c
> +++ b/drivers/net/wireless/mediatek/mt76/mt7925/init.c
> @@ -243,7 +243,11 @@ int mt7925_register_device(struct mt792x_dev *dev)
> dev->pm.idle_timeout = MT792x_PM_TIMEOUT;
> dev->pm.stats.last_wake_event = jiffies;
> dev->pm.stats.last_doze_event = jiffies;
> - if (!mt76_is_usb(&dev->mt76)) {
> + /* MT7927: runtime PM disabled. The combo chip shares a CONNINFRA
> + * power domain between WiFi (PCIe) and BT (USB). SET_OWN/CLR_OWN
> + * transitions on the LPCTL register crash BT firmware.
> + */
I think this level of detail is better kept in the commit message. For
the code itself, a short comment should be enough, or even no comment
if the condition is already clear enough.
> + if (!mt76_is_usb(&dev->mt76) && !is_mt7927(&dev->mt76)) {
> dev->pm.enable_user = true;
> dev->pm.enable = true;
> dev->pm.ds_enable_user = true;
> diff --git a/drivers/net/wireless/mediatek/mt76/mt7925/pci.c b/drivers/net/wireless/mediatek/mt76/mt7925/pci.c
> index 393d9f408b84..693e08f35d68 100644
> --- a/drivers/net/wireless/mediatek/mt76/mt7925/pci.c
> +++ b/drivers/net/wireless/mediatek/mt76/mt7925/pci.c
> @@ -530,7 +530,13 @@ static int mt7925_pci_probe(struct pci_dev *pdev,
> if (ret)
> goto err_free_pci_vec;
>
> - if (mt7925_disable_aspm)
> + is_mt7927_hw = (pdev->device == 0x6639 || pdev->device == 0x7927);
> +
> + /* MT7927: CONNINFRA power domain and WFDMA register access are
> + * unreliable with PCIe L1 active, causing throughput to drop
> + * from 1+ Gbps to ~200 Mbps. Disable ASPM unconditionally.
> + */
Ditto
> + if (mt7925_disable_aspm || is_mt7927_hw)
> mt76_pci_disable_aspm(pdev);
>
> ops = mt792x_get_mac80211_ops(&pdev->dev, &mt7925_ops,
> @@ -562,7 +568,6 @@ static int mt7925_pci_probe(struct pci_dev *pdev,
> dev = container_of(mdev, struct mt792x_dev, mt76);
> dev->fw_features = features;
> dev->hif_ops = &mt7925_pcie_ops;
> - is_mt7927_hw = (pdev->device == 0x6639 || pdev->device == 0x7927);
> dev->irq_map = is_mt7927_hw ? &mt7927_irq_map : &irq_map;
> dev->dma_config = is_mt7927_hw ? &mt7927_dma_cfg : &mt7925_dma_cfg;
> mt76_mmio_init(&dev->mt76, pcim_iomap_table(pdev)[0]);
>
> --
> 2.53.0
>
>
next prev parent reply other threads:[~2026-03-26 6:15 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-25 22:10 [PATCH v3 00/13] This series adds support for the MediaTek MT7927 (Filogic 380) combo Javier Tia
2026-03-25 22:10 ` [PATCH v3 01/13] wifi: mt76: mt7925: fix stale pointer comparisons in change_vif_links Javier Tia
2026-03-25 22:10 ` [PATCH v3 02/13] wifi: mt76: mt7925: add 320MHz bandwidth to bss_rlm_tlv Javier Tia
2026-03-25 22:10 ` [PATCH v3 03/13] wifi: mt76: mt7925: handle 320MHz bandwidth in RXV and TXS Javier Tia
2026-03-25 22:10 ` [PATCH v3 04/13] wifi: mt76: mt7925: populate EHT 320MHz MCS map in sta_rec Javier Tia
2026-03-25 22:10 ` [PATCH v3 05/13] wifi: mt76: mt7925: advertise EHT 320MHz capabilities for 6GHz band Javier Tia
2026-03-26 6:08 ` Sean Wang
2026-03-25 22:10 ` [PATCH v3 06/13] wifi: mt76: mt7925: add MT7927 chip ID helpers Javier Tia
2026-03-25 22:10 ` [PATCH v3 07/13] wifi: mt76: mt7925: add MT7927 firmware paths Javier Tia
2026-03-25 22:10 ` [PATCH v3 08/13] wifi: mt76: mt7925: use irq_map for chip-specific interrupt handling Javier Tia
2026-03-25 22:10 ` [PATCH v3 09/13] wifi: mt76: mt7925: add chip-specific DMA configuration Javier Tia
2026-03-25 22:10 ` [PATCH v3 10/13] wifi: mt76: mt7925: add MT7927 hardware initialization Javier Tia
2026-03-25 22:11 ` [PATCH v3 11/13] wifi: mt76: mt7925: fix band_idx for stable 5GHz/6GHz operation Javier Tia
2026-03-25 22:11 ` [PATCH v3 12/13] wifi: mt76: mt7925: disable ASPM and runtime PM for MT7927 Javier Tia
2026-03-26 6:14 ` Sean Wang [this message]
2026-03-25 22:11 ` [PATCH v3 13/13] wifi: mt76: mt7925: enable MT7927 PCI device IDs Javier Tia
2026-03-26 6:26 ` Sean Wang
2026-03-26 5:56 ` [PATCH v3 00/13] This series adds support for the MediaTek MT7927 (Filogic 380) combo Sean Wang
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=CAGp9LzpdV3TEK2LNrjotgJX10a-WyAb_8P_kpTNYVtUta2Q2MQ@mail.gmail.com \
--to=sean.wang@kernel.org \
--cc=angelogioacchino.delregno@collabora.com \
--cc=deren.wu@mediatek.com \
--cc=floss@jetm.me \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=linux-wireless@vger.kernel.org \
--cc=lorenzo@kernel.org \
--cc=matthias.bgg@gmail.com \
--cc=mingyen.hsieh@mediatek.com \
--cc=nbd@nbd.name \
--cc=ryder.lee@mediatek.com \
--cc=sean.wang@mediatek.com \
--cc=shayne.chen@mediatek.com \
/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