[SRU][EOAN][PATCH v2 1/1] alsa/sof: Enable SOF_HDA link and codec

Hui Wang hui.wang at canonical.com
Wed Oct 23 07:14:30 UTC 2019


On 2019/10/23 下午2:34, Khaled Elmously wrote:
> On 2019-10-22 09:38:02 , Seth Forshee wrote:
>> On Mon, Oct 21, 2019 at 04:06:15PM -0500, Seth Forshee wrote:
>>> On Thu, Oct 17, 2019 at 08:28:49PM +0800, Hui Wang wrote:
>>>> BugLink: https://bugs.launchpad.net/bugs/1848490
>>>>
>>>> So far, only OEM-B-OSP1, EOAN and later kernels have the alsa/sof driver,
>>>> and the OEM-B-OSP1 kernel already enabled these CONFIGs.
>>>>
>>>> [Impact]
>>>> We tested the EOAN kernel on the LENOVO or Dell machines which have
>>>> dmic directly connnected to PCH, the dmic didn't work.
>>>>
>>>> [Fix]
>>>> We need to enable SOF_HDA link and codec, then the sof driver
>>>> and Legacy HDA driver work together to make the dmic work.
>>>>
>>>> [Test Case]
>>>> Install the latest 19.10 image, build a new kernel with this
>>>> patch and replace the existing kernel, After installing the blacklist
>>>> package (blacklist snd_hda_intel and snd_soc_skl) and ucm package,
>>>> the dmic and all output devices (speaker/hdmi) work.
>>>>
>>>> [Regression Risk]
>>>> Low, these configs are already enabled in the oem-b-osp1 kernel
>>>> for a long time, and we tested it on many lenovo/dell machines witch
>>>> have or have no dmic, all worked well.
>>> I got an email separately regarding these config problems, this is a
>>> needed change.
>>>
>>> Acked-by: Seth Forshee <seth.forshee at canonical.com>
>> Oh, also these options should be updated in the annotations file and
>> enforced. My ack is contigent on this, whether it's done by sending a v2
>> or by whoever applies the patch.
>>
> Hui, Seth, please see the updated patch that I've come up with. I will assume your +1s unless you tell me otherwise.
>
> Patch inlined here:
>
> ---
>   debian.master/config/annotations          | 22 ++++++++++++++++------
>   debian.master/config/config.common.ubuntu | 19 +++++++++++--------
>   2 files changed, 27 insertions(+), 14 deletions(-)
>
> diff --git a/debian.master/config/annotations b/debian.master/config/annotations
> index 2874f5a68d29..7eb1cfe9f1ff 100644
> --- a/debian.master/config/annotations
> +++ b/debian.master/config/annotations
> @@ -7912,11 +7912,18 @@ CONFIG_SND_SOC_INTEL_SKL                        policy<{'amd64': 'm', 'i386': 'm
>   CONFIG_SND_SOC_INTEL_APL                        policy<{'amd64': 'm', 'i386': 'm'}>
>   CONFIG_SND_SOC_INTEL_KBL                        policy<{'amd64': 'm', 'i386': 'm'}>
>   CONFIG_SND_SOC_INTEL_GLK                        policy<{'amd64': 'm', 'i386': 'm'}>
> -CONFIG_SND_SOC_INTEL_CNL                        policy<{'amd64': 'm', 'i386': 'm'}>
> -CONFIG_SND_SOC_INTEL_CFL                        policy<{'amd64': 'm', 'i386': 'm'}>
> -CONFIG_SND_SOC_INTEL_CML_H                      policy<{'amd64': 'm', 'i386': 'm'}>
> -CONFIG_SND_SOC_INTEL_CML_LP                     policy<{'amd64': 'm', 'i386': 'm'}>
> -CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC      policy<{'amd64': 'y', 'i386': 'y'}>
> +CONFIG_SND_SOC_INTEL_CNL                        note<LP:#1848490>
> +CONFIG_SND_SOC_INTEL_CNL                        policy<{'amd64': 'n', 'i386': 'n'}>
> +CONFIG_SND_SOC_INTEL_CFL                        policy<{'amd64': 'n', 'i386': 'n'}>
> +CONFIG_SND_SOC_INTEL_CML_H                      mark<ENFORCED> note<LP:#1848490>
> +CONFIG_SND_SOC_INTEL_CML_H                      policy<{'amd64': 'n', 'i386': 'n'}>
> +CONFIG_SND_SOC_INTEL_CML_LP                     mark<ENFORCED> note<LP:#1848490>
> +CONFIG_SND_SOC_INTEL_CML_LP                     policy<{'amd64': 'n', 'i386': 'n'}>
> +CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC      mark<ENFORCED> note<LP:#1848490>
> +CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC      policy<{'amd64': 'n', 'i386': 'n'}>
> +CONFIG_SND_SOC_SOF_HDA_LINK                     mark<ENFORCED> note<LP:#1848490>
> +CONFIG_SND_SOC_SOF_HDA_LINK                     policy<{'amd64': 'y', 'i386': 'y'}>
> +CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC              policy<{'amd64': 'y', 'i386': 'y'}>
>   
>   # Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> ALSA for SoC audio support >> Intel ASoC SST drivers >> Intel Machine drivers
>   CONFIG_SND_SOC_INTEL_MACH                       policy<{'amd64': 'y', 'i386': 'y'}>
> @@ -8012,7 +8019,10 @@ CONFIG_SND_SOC_RCAR                             policy<{'arm64': 'm', 'armhf': '
>   CONFIG_SND_SOC_SOF_TOPLEVEL                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
>   CONFIG_SND_SOC_SOF_PCI                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
>   CONFIG_SND_SOC_SOF_ACPI                         policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
> -CONFIG_SND_SOC_SOF_NOCODEC_SUPPORT              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
> +CONFIG_SND_SOC_SOF_NOCODEC                      note<LP:#1848490>
> +CONFIG_SND_SOC_SOF_NOCODEC                      policy<{'amd64': 'n', 'i386': 'n'}>
> +CONFIG_SND_SOC_SOF_NOCODEC_SUPPORT              note<LP:#1848490>
> +CONFIG_SND_SOC_SOF_NOCODEC_SUPPORT              policy<{'amd64': 'n', 'arm64': 'y', 'armhf': 'y', 'i386': 'n', 'ppc64el': 'y'}>
>   CONFIG_SND_SOC_SOF_STRICT_ABI_CHECKS            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
>   
>   # Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> ALSA for SoC audio support >> Sound Open Firmware Support >> SOF debugging features
> diff --git a/debian.master/config/config.common.ubuntu b/debian.master/config/config.common.ubuntu
> index fff3516eeb40..1db9435b96fa 100644
> --- a/debian.master/config/config.common.ubuntu
> +++ b/debian.master/config/config.common.ubuntu
> @@ -9081,14 +9081,14 @@ CONFIG_SND_SOC_INTEL_BYT_CHT_CX2072X_MACH=m
>   CONFIG_SND_SOC_INTEL_BYT_CHT_DA7213_MACH=m
>   CONFIG_SND_SOC_INTEL_BYT_CHT_ES8316_MACH=m
>   # CONFIG_SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH is not set
> -CONFIG_SND_SOC_INTEL_CFL=m
> +# CONFIG_SND_SOC_INTEL_CFL is not set
>   CONFIG_SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH=m
>   CONFIG_SND_SOC_INTEL_CHT_BSW_NAU8824_MACH=m
>   CONFIG_SND_SOC_INTEL_CHT_BSW_RT5645_MACH=m
>   CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH=m
> -CONFIG_SND_SOC_INTEL_CML_H=m
> -CONFIG_SND_SOC_INTEL_CML_LP=m
> -CONFIG_SND_SOC_INTEL_CNL=m
> +# CONFIG_SND_SOC_INTEL_CML_H is not set
> +# CONFIG_SND_SOC_INTEL_CML_LP is not set
> +# CONFIG_SND_SOC_INTEL_CNL is not set
>   CONFIG_SND_SOC_INTEL_GLK=m
>   CONFIG_SND_SOC_INTEL_GLK_RT5682_MAX98357A_MACH=m
>   CONFIG_SND_SOC_INTEL_HASWELL=m
> @@ -9105,10 +9105,10 @@ CONFIG_SND_SOC_INTEL_SKL_HDA_DSP_GENERIC_MACH=m
>   CONFIG_SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH=m
>   CONFIG_SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH=m
>   CONFIG_SND_SOC_INTEL_SKL_RT286_MACH=m
> -CONFIG_SND_SOC_INTEL_SKYLAKE=m
> +# CONFIG_SND_SOC_INTEL_SKYLAKE is not set

Adding this in the annotation? The rest looks fine to me.

Thanks,

Hui.


>   CONFIG_SND_SOC_INTEL_SKYLAKE_COMMON=m
>   CONFIG_SND_SOC_INTEL_SKYLAKE_FAMILY=m
> -CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC=y
> +# CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC is not set
>   CONFIG_SND_SOC_INTEL_SKYLAKE_SSP_CLK=m
>   CONFIG_SND_SOC_INTEL_SOF_RT5682_MACH=m
>   CONFIG_SND_SOC_INTEL_SST=m
> @@ -9248,7 +9248,10 @@ CONFIG_SND_SOC_SOF_COMETLAKE_LP_SUPPORT=y
>   # CONFIG_SND_SOC_SOF_DEBUG is not set
>   CONFIG_SND_SOC_SOF_GEMINILAKE=m
>   CONFIG_SND_SOC_SOF_GEMINILAKE_SUPPORT=y
> +CONFIG_SND_SOC_SOF_HDA=m
> +CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC=y
>   CONFIG_SND_SOC_SOF_HDA_COMMON=m
> +CONFIG_SND_SOC_SOF_HDA_LINK=y
>   CONFIG_SND_SOC_SOF_HDA_LINK_BASELINE=m
>   CONFIG_SND_SOC_SOF_ICELAKE=m
>   CONFIG_SND_SOC_SOF_ICELAKE_SUPPORT=y
> @@ -9260,10 +9263,10 @@ CONFIG_SND_SOC_SOF_INTEL_PCI=m
>   CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL=y
>   CONFIG_SND_SOC_SOF_MERRIFIELD=m
>   CONFIG_SND_SOC_SOF_MERRIFIELD_SUPPORT=y
> -CONFIG_SND_SOC_SOF_NOCODEC=m
> -CONFIG_SND_SOC_SOF_NOCODEC_SUPPORT=y
> +# CONFIG_SND_SOC_SOF_NOCODEC_SUPPORT is not set
>   CONFIG_SND_SOC_SOF_OPTIONS=m
>   CONFIG_SND_SOC_SOF_PCI=m
> +CONFIG_SND_SOC_SOF_PROBE_WORK_QUEUE=y
>   # CONFIG_SND_SOC_SOF_STRICT_ABI_CHECKS is not set
>   CONFIG_SND_SOC_SOF_TOPLEVEL=y
>   CONFIG_SND_SOC_SOF_XTENSA=m
>
>> -- 
>> kernel-team mailing list
>> kernel-team at lists.ubuntu.com
>> https://lists.ubuntu.com/mailman/listinfo/kernel-team



More information about the kernel-team mailing list