On Wed, 04 Nov 2015, "Yang, Libin" libin.yang@intel.com wrote:
- Jani, who is from Intel gfx team.
-----Original Message----- From: David Henningsson [mailto:david.henningsson@canonical.com] Sent: Monday, November 02, 2015 3:55 PM To: Yang, Libin; Takashi Iwai Cc: Lin, Mengdong; Raymond Yau; airlied@linux.ie; tanuk@iki.fi; ALSA Development Mailing List; Girdwood, Liam R; Lu, Han Subject: Re: [alsa-devel] DP1.2 MST audio support discussion
On 2015-11-02 08:30, Yang, Libin wrote:
- power management
If we close the PCM when disconnecting monitor, the driver will
return
-ENODEV, and we assume user space will close the PCM at once .
... if we implement it. Actually this behavior (returning -ENODEV) is not mandatory and needs investigation beforehand, whether this breaks any applications, especially PA.
Yes. I heard that PA has dummy PCM and when there is no HW to play the audio, PA can smoothly move the PCM from HW to dummy PCM. If it's true, stopping PCM will not break PA, I think.
Well, in most cases (not all) there will be an analog output available, so we're more likely to move there than to a dummy PCM. The problem is that PA does not currently figure out that a -ENODEV means that one should switch from a digital to an analog profile. So, at least at this point, don't expect a "smooth move".
I'm not sure if this is a good idea or not, but just brainstorming here:
If PA (or other application) tries to play back to a PCM, and that PCM is currently unassigned. What would happen if we actually assigned a converter node at that point, but no pin node connected to that converter node? Would that give a backwards compatible behaviour? I e, audio userspace could successfully play back audio through the converter node, but then the audio goes nowhere because there is no pin node assigned?
GFX team hope us that if there is no monitor connected, audio should release gfx so gfx driver can enter power save mode. Based on the requirement, audio driver may need stop playback as soon as the monitor is disconnected.
Rather, as soon as the userspace responding to hotplug uevents has reacted and disabled the display. See [1] for a better explanation. In other words, it would be desirable that you call the put power hook in response to intel_audio_codec_disable().
BR, Jani.
[1] https://bugs.freedesktop.org/show_bug.cgi?id=90447#c19
(Or perhaps we PA developers should actually start supporting this properly like we said that we should do, for like three years or something...)
// David