mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Mario Limonciello <superm1@kernel.org>
To: Andrey Golovko <andrey.golovko@gmail.com>,
	Antoine Monnet <antoine@montane.tech>,
	linux-sound@vger.kernel.org
Cc: Vijendar Mukunda <Vijendar.Mukunda@amd.com>,
	Vinod Koul <vkoul@kernel.org>,
	Bard Liao <yung-chuan.liao@linux.intel.com>,
	Pierre-Louis Bossart <pierre-louis.bossart@linux.dev>,
	Mark Brown <broonie@kernel.org>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Shenghao Ding <shenghao-ding@ti.com>,
	linux-kernel@vger.kernel.org
Subject: Re: SoundWire: amd: all peripherals stay UNATTACHED after s2idle resume (AMD ACP70, ASUS ProArt PX13 HN7306)
Date: Mon, 27 Jul 2026 10:21:56 -0500	[thread overview]
Message-ID: <f452de7b-70de-47d2-adf3-8c1b334430c2@kernel.org> (raw)
In-Reply-To: <d36b1bf93ca7eeae441342cb88d1a2fd@gmail.com>

On 7/27/26 03:12, Andrey Golovko wrote:
> Hi Antoine,
> 
> I have the same machine (ASUS ProArt PX13 HN7306EAC, Ryzen AI MAX+ 395,
> ACP rev 0x70, RT721 + 2x TAS2783 on link 1) and have been chasing this
> since May [1], [2].
> 
> Good news: this is already fixed in mainline.
> 
>    5893013efabb ("ASoC: amd: ps: disable MSI on resume in ACP PCI driver")
>    Vijendar Mukunda, in v7.2-rc4
> 
>> drivers/soundwire/amd_manager.c is byte-identical between v7.1.4 and
>> v7.2-rc3, so I have not test-booted 7.2.
> 
> That is why you missed it - the fix is not in the SoundWire manager at
> all, it is in sound/soc/amd/ps/pci-ps.c, and it landed in rc4, one week
> after the rc3 you diffed against. BIOS/firmware re-enables MSI in the
> ACP's PCI config space on system resume while snd_pci_ps only uses
> legacy INTx. With stale MSI address/data, the device writes interrupts
> to a bogus address: hence the IOMMU IO_PAGE_FAULT at 0xfffffffffffffffc
> and, crucially, the slave status-change interrupt never being delivered.
> No status-change interrupt, no enumeration - which is exactly why a full
> ACP unbind/rebind does not help either: the re-init runs fine, the
> interrupt just never arrives.
> 
> So the conditional clock-resume handshake you flagged is not the cause
> here; that branch behaves the same before and after the fix.
> 
> Results on this hardware, on a v7.2-rc4 based kernel:
> 
>   - 14 s2idle cycles, all three peripherals Attached after every resume
>     (previously: UNATTACHED after the first cycle, 100% of the time)
>   - zero IO_PAGE_FAULT, zero "resume: initialization timed out",
>     zero -110 from acpi_subsys_resume, suspend_stats fail=0
>   - in 11 of those cycles the driver logged the smoking gun:
> 
>       snd_pci_ps 0000:c4:00.5: ACP: MSI unexpectedly enabled after resume
>       (flags=0x00f1), disabling
> 
>     i.e. the BIOS really does re-enable MSI behind the driver's back.
>   - confirmed with real deep S0i3, not just a shallow s2idle: cycles with
>     amd_pmc residency of 51.4 s and 38 s (out of ~57 s / ~43 s of sleep)
>     re-attach just as reliably. Worth stressing, because on this board
>     'amdgpu.dcdebugmask=0xE10' (IPS off) silently keeps the platform out
>     of S0i3 and then the bug does not reproduce at all.
> 
> Vijendar, Mark: the commit carries a Fixes: tag but no Cc: stable, and it
> has not been picked up for 7.1.y (currently v7.1.5). Could it be queued
> for stable? Everyone hitting this so far is on a distro kernel: Antoine
> on Debian 7.1.4, Pasquale Fiorillo on 7.0.x/7.1.3 (bugzilla #221584 [2]),
> and myself on 7.0/7.1. A backport would fix the machine for all of them
> without a mainline rebuild.

FWIW - anyone can send a stable patch.  If you or someone else has 
validated it works on 7.1.y (which I expect it works), feel free to send 
it out.

https://docs.kernel.org/process/stable-kernel-rules.html

> 
> Antoine: attach being fixed is necessary but not sufficient on this
> board - with real S0i3 residency the speakers stayed silent here for two
> further reasons (a stale regmap cache in tas2783-sdw, and the ACP
> SoundWire DMA configuration not being reprogrammed on stream recovery).
> I am replying to your firmware thread [3] with the details, so as not to
> mix them up with this one.
> 
> Happy to test patches or provide register dumps - and thanks for the very
> precise write-ups, they saved me a lot of cross-checking.
> 
> [1] https://lore.kernel.org/all/cab8c5d1-6930-4048-a8d3-720db9b3c0dd@amd.com/
> [2] https://bugzilla.kernel.org/show_bug.cgi?id=221584
> [3] https://lore.kernel.org/all/c66ae00a-e878-4af0-a05a-272e9574eaa5@montane.tech/
> 
> Thanks,
> Andrey


      reply	other threads:[~2026-07-27 15:21 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-20 15:32 Antoine Monnet
2026-07-20 19:30 ` Pierre-Louis Bossart
2026-07-27  8:12 ` Andrey Golovko
2026-07-27 15:21   ` Mario Limonciello [this message]

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=f452de7b-70de-47d2-adf3-8c1b334430c2@kernel.org \
    --to=superm1@kernel.org \
    --cc=Vijendar.Mukunda@amd.com \
    --cc=andrey.golovko@gmail.com \
    --cc=antoine@montane.tech \
    --cc=broonie@kernel.org \
    --cc=lgirdwood@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-sound@vger.kernel.org \
    --cc=pierre-louis.bossart@linux.dev \
    --cc=shenghao-ding@ti.com \
    --cc=vkoul@kernel.org \
    --cc=yung-chuan.liao@linux.intel.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

all inboxes | Powered by JetHome®