Re: [PATCH 1/3] ALSA: hda/tegra: Skip reset on BPMP devices

From: Sameer Pujar
Date: Tue Dec 14 2021 - 02:22:50 EST




On 12/14/2021 11:39 AM, Dmitry Osipenko wrote:
14.12.2021 09:02, Sameer Pujar пишет:

On 12/8/2021 5:35 PM, Dmitry Osipenko wrote:
08.12.2021 08:22, Sameer Pujar пишет:
On 12/7/2021 11:32 PM, Dmitry Osipenko wrote
If display is already active, then shared power domain is already
ungated.
If display is already active, then shared power domain is already
ungated. HDA reset is already applied during this ungate. In other
words, HDA would be reset as well when display ungates power-domain.
Now, if you'll reload the HDA driver module while display is active,
you'll get a different reset behaviour. HDA hardware will be reset on
pre-T186, on T186+ it won't be reset.
How the reset behavior is different? At this point when HDA driver is
loaded the HW is already reset during display ungate. What matters,
during HDA driver load, is whether the HW is in predictable state or not
and the answer is yes. So I am not sure what problem you are referring
to. Question is, if BPMP already ensures this, then why driver needs to
take care of it.
1. Enable display
2. Play audio over HDMI

3. HDA hardware now is in dirty state

Why this would be a dirty state? It is rather a functional state. Isn't it? Power-domain is ON while all this happens.

Another point is, with present logic the reset is not applied for every runtime PM resume of HDA device, which is confusing. It depends on the state of 'chip->running' flag and I don't see this getting cleared anywhere. Would you say subsequent HDA playback happen under a dirty state?