alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
* Regression apparently caused by commit 088a40980efbc2c449b72f0f2c7ebd82f71d08e2 "ASoC: amd: acp: add pm ops support for acp pci driver"
@ 2023-08-03 19:22 Marian Postevca
  2023-08-03 19:42 ` Mark Brown
                   ` (2 more replies)
  0 siblings, 3 replies; 13+ messages in thread
From: Marian Postevca @ 2023-08-03 19:22 UTC (permalink / raw)
  To: Syed Saba Kareem
  Cc: broonie, alsa-devel, Vijendar.Mukunda, Basavaraj.Hiregoudar,
	Sunil-kumar.Dommati, Liam Girdwood, Jaroslav Kysela, Takashi Iwai,
	Yang Yingliang, Venkata Prasad Potturu, V sujith kumar Reddy,
	ye xingchen, linux-kernel

I'm trying to develop a sound machine driver based on the acp legacy driver.
The first version of the driver was sent for review on the alsa mailing list this
spring: https://lore.kernel.org/all/20230320203519.20137-1-posteuca@mutex.one

I'm trying to fix some of the issues that were brought up during the review back then,
but when I ported the patches to the latest commit on the for-next
branch, I noticed a regression where I couldn't hear any sound at all.

So I started a bisect session and found that the first bad commit is:
ASoC: amd: acp: add pm ops support for acp pci driver
commit 088a40980efbc2c449b72f0f2c7ebd82f71d08e2
https://lore.kernel.org/lkml/20230622152406.3709231-11-Syed.SabaKareem@amd.com

If I revert this commit sound works as expected. So I started tinkering a little bit
with it and I believe that what happens is that the acp pci driver
enters the autosuspend state and never leaves this state at all.
I noticed this because if I increase the autosuspend delay to a much
larger value, then the sound works until that delay passes.
I added traces and I can see that when the delay expires the suspend callback snd_acp_suspend()
gets called, but the resume callback snd_acp_resume() never gets called.

I'm no expert in runtime power management (though I did read a bit on it), so I don't understand
all the things that happen underneath, but one thing that is not clear to me is who's supposed
to mark activity on this device and keep it from entering autosuspend if the user wants to play
some sound? Shouldn't there be some counterpart that calls pm_runtime_mark_last_busy() ?
I looked through the code and can't find who's calling pm_runtime_mark_last_busy().

Some help here would be welcome. Is there something missing in my machine driver code, or
is the runtime pm handling in acp pci driver wrong?

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2023-12-05 13:33 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-08-03 19:22 Regression apparently caused by commit 088a40980efbc2c449b72f0f2c7ebd82f71d08e2 "ASoC: amd: acp: add pm ops support for acp pci driver" Marian Postevca
2023-08-03 19:42 ` Mark Brown
2023-08-04 14:08 ` syed saba kareem
2023-11-02 21:30   ` Marian Postevca
2023-11-02 23:11 ` Bagas Sanjaya
2023-11-03 13:30   ` syed saba kareem
2023-11-03 13:43     ` Bagas Sanjaya
2023-11-22  8:55     ` Linux regression tracking (Thorsten Leemhuis)
2023-11-22  9:32       ` syed saba kareem
2023-11-22 10:27         ` Linux regression tracking (Thorsten Leemhuis)
2023-11-22 21:55         ` Marian Postevca
2023-11-23 13:58           ` syed saba kareem
2023-12-05 13:32             ` Linux regression tracking (Thorsten Leemhuis)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).