On 2/23/21 10:14 PM, Kai Vehmanen wrote:
Hi,
thanks for the patch!
On Tue, 23 Feb 2021, Hui Wang wrote:
If the platform set the dyn_pcm_assign to true, it will call
hdmi_find_pcm_slot() to find a pcm slot when hdmi/dp monitor is
connected and need to create a pcm.
[...]
This change comes from the discussion between Takashi and
Kai Vehmanen. Please refer to:
https://github.com/alsa-project/alsa-lib/pull/118
I did propose to merge the alsa-lib change to give us a bit more time to
think about how this should be handled in kernel.
That is not merged yet, and my PM was pushing me to find a solution,
then I wrote this patch.
While this patch certainly solves the problem of kernel picking ALSA PCMs,
which current alsa-lib cannot handle, it leaves us a bit halfway. We'd
create many PCMs that will never be used. And this change is a bit more
involved.
So far only intel_hsw_common_init() and patch_nvhdmi() set the
dyn_pcm_assign to true, here we let tgl platforms assign the pcm slot
dynamically first, if the driver runs for a period of time and there
is no regression reported, we could set no_fixed_assgin to true in
the intel_hsw_common_init(), and then set it to true in the
patch_nvhdmi().
Staged plan sounds good here, although I'd be fairly cautious with this.
People using Pulseaudio/Pipewire+UCM won't notice a thing, but I'm sure
there are people out there assuming a fixed "physical connector -> ALSA
PCM" mapping and not using UCM. Probably at least some way to opt-out
would be needed for older platforms.
+ if (port_num > 6)
+ spec->no_fixed_assign = true;
I think this is magic enough of a number to be defined separately along
with some documentation. So basicly user-space has a max limit of 8 now
and two PCMs are reserved for DP-MST, so that brings us to six, right?
Yes, and also before the TGL, the max number of physical pins is 6 (icl).
This is somewhat arbitrary still. If we simply want to enable the mode for
TGL only, easier and cleaned would be to set this flag in
patch_i915_tgl_hdmi() directly.
OK, will consider it.
Thanks,
Hui.
Br, Kai