[SRU][Focal][PATCH 0/9] alsa/hdmi: support nvidia mst hdmi/dp audio

Hui Wang hui.wang at canonical.com
Thu Aug 13 02:11:14 UTC 2020


On 2020/8/12 下午3:39, Stefan Bader wrote:
> On 12.08.20 07:58, Hui Wang wrote:
>> BugLink: https://bugs.launchpad.net/bugs/1867704
>>
>> This patchset will introduce a big change on hda_jack and hda_hdmi,
>> So I sent the patcheset to oem-b 4 months ago. After 4 months of running
>> oem-b kernel, there is no any regression reported on this patchset,
>> now I am backporting the patchset to our focal kernel since our oem
>> project is waiting for the patchset to be landed to ubuntu 5.4 kernel
>> ASAP.
>>
>> This patchset are already merged to mainline kernel 5.5-rc and 5.6-rc,
>> so there is no need to send the patchset to oem-5.6 or groovy kernel.
>>
>> [Impact]
>> On some LENOVO I+N machines, when setting the graphic mode to discrete,
>> The dp/hdmi audio on the Docking Gen2 can't work with this machine +
>> LENOVO Docking Gen2, users can't find the hdmi audio entry in the
>> gnome-sound-setting.
>>
>> [Fix]
>> Nvidia developer submit the mst audio support to 5.5-rcN and 5.6-RC1,
>> those patches could fix this issue.
>>
>> [Test Case]
>> set the machien to discrete, plug the dock gen2 to it, then boot, after
>> booting, plug hdmi or dp to dock gen2, the hdmi or dp audio works.
>>
>> test other machines without Nvidia graphic or without gen2, their hdmi/dp
>> audio still work, and check other output/input devices like headphone,
>> microphone, they all worked as well as before.
>>
>>
>> [Regression Risk]
>> one regression possibility is the audio jacks (including analogue and hdmi)
>> can't work anymore, that means after users plug a headphone, headset, hdmi
>> monitor or microphone to the audio jacks or hdmi connectors, the audio
>> driver can't detect the plugging event.
>>
>> But regression's possibility is very low:
>>   - this patchset was already applied to oem-b kernel for 4 months, and
>>     oem projects didn't report any regression on the patchset
>>   - I tested the testing focal kernel with this patchset on many machines,
>>     includes a dell hda audio machine, a dell dmic  machine, a Lenovo I+N
>>     hda audio machine, a lenovo I+N dmic machine, a lenovo I hda audio
>>     machine, a lenovo amd hda audio machine. The audio on them all worked
>>     as well as before.
>>
>>
>> Kai Vehmanen (3):
>>    ALSA: hda: hdmi - fix regression in connect list handling
>>    ALSA: hda: hdmi - fix kernel oops caused by invalid PCM idx
>>    ALSA: hda: hdmi - preserve non-MST PCM routing for Intel platforms
>>
>> Nikhil Mahale (5):
>>    ALSA: hda - Rename snd_hda_pin_sense to snd_hda_jack_pin_sense
>>    ALSA: hda - Add DP-MST jack support
>>    ALSA: hda - Add DP-MST support for non-acomp codecs
>>    ALSA: hda - Add DP-MST support for NVIDIA codecs
>>    ALSA: hda - Fix DP-MST support for NVIDIA codecs
>>
>> Takashi Iwai (1):
>>    ALSA: hda: hdmi - Keep old slot assignment behavior for Intel
>>      platforms
>>
>>   sound/pci/hda/hda_jack.c   | 151 ++++++++++-----
>>   sound/pci/hda/hda_jack.h   | 107 +++++++++--
>>   sound/pci/hda/patch_hdmi.c | 384 ++++++++++++++++++++++++-------------
>>   3 files changed, 455 insertions(+), 187 deletions(-)
>>
> Seems like at least some wider range testing has happened. Just double checking,
> when I am looking for DP-MST in the upstream kernel, there is one following your
> patchset:
>
> Commit db8454023b7f9ca6d341cc83ce033a1f0e33d9c3
> Author: Takashi Iwai <tiwai at suse.de>
> Date:   Thu Feb 6 17:28:02 2020 +0100
>
>      ALSA: hda/hdmi: Don't use standard hda_jack for generic HDMI jacks
>
>      The current HDMI codec driver code manages the jack detection in two
>      different ways: for Intel codecs with audio component, the driver
>      creates snd_jack objects by itself while the standard hda_jack stuff
>      is used for the rest.  This was basically because the audio component
>      doesn't need the pin sense reading and the unsol event handling, hence
>      it just needs to report the corresponding jacks directly.
>
>      It was a bit messy but not too messy until the driver got DP-MST
>      support for Nvidia that re-uses the part of dyn_pcm_assign feature
>      while keeping the pin sense and the unsol event handling.  Now, for
>      DP-MST, we use hda_jack for pin sensing and unsol events but use the
>      own snd_jack objects.  Meanwhile for non-DP-MST, hda_jack is used for
>      pin sense and unsol events, and the jacks are bound on hda_jack.
>
>      Moreover, there is a polling mode support where the unsol event isn't
>      used.  For those, we also have special handling.
>
> Could that be something that might be an issue?

This is not an issue, the patch is not for fixing an existing bug,  it 
is just unifying the the snd_jack usage through the patch_hdmi.c, and it 
is not only for nvidia dp-mst, it is for all hdmi codecs (mst or no-mst; 
component or non-component), this patch is more like a cleanup or sth 
similar to it.

Without this patch, the patch_hdmi still works.

Thanks,

Hui.


>
> -Stefan
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20200813/81e7c321/attachment.html>


More information about the kernel-team mailing list