Re: [PATCH v2] ALSA: hda/realtek: Add quirks for Unis H3C Desktop B760 & Q760

From: Takashi Iwai
Date: Fri Jun 30 2023 - 04:28:18 EST


On Fri, 30 Jun 2023 06:12:43 +0200,
dengxiang wrote:
>
> These models use NSIWAY amplifiers for internal speaker, but cannot put
> sound outside from these amplifiers. So eapd verbs are needed to initialize
> the amplifiers. They can be added during boot to get working sound out
> of internal speaker.
>
> Reported-by: kernel test robot <lkp@xxxxxxxxx>
> Closes: https://lore.kernel.org/oe-kbuild-all/202306291229.5w2tIZjA-lkp@xxxxxxxxx/
>
> ---
> v2:
> - remove warning about unused variable 'spec' as belows:
>
> Signed-off-by: dengxiang <dengxiang@xxxxxxxxxxxx>
> ---
> sound/pci/hda/patch_realtek.c | 21 +++++++++++++++++++++
> 1 file changed, 21 insertions(+)
>
> diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
> index afe8253f9a4f..82f53af2d08a 100644
> --- a/sound/pci/hda/patch_realtek.c
> +++ b/sound/pci/hda/patch_realtek.c
> @@ -11201,6 +11201,20 @@ static void alc897_fixup_lenovo_headset_mode(struct hda_codec *codec,
> }
> }
>
> +static const struct hda_verb alc897_unis_h3c_x500s_eapd_verbs[] = {
> + {0x14, AC_VERB_SET_EAPD_BTLENABLE, 0},
> + { }
> +};
> +
> +static void alc897_fixup_unis_h3c_x500s(struct hda_codec *codec,
> + const struct hda_fixup *fix, int action)
> +{
> + if (action != HDA_FIXUP_ACT_PRE_PROBE)
> + return;
> +
> + snd_hda_add_verbs(codec, alc897_unis_h3c_x500s_eapd_verbs);
> +}
> +
> static const struct coef_fw alc668_coefs[] = {
> WRITE_COEF(0x01, 0xbebe), WRITE_COEF(0x02, 0xaaaa), WRITE_COEF(0x03, 0x0),
> WRITE_COEF(0x04, 0x0180), WRITE_COEF(0x06, 0x0), WRITE_COEF(0x07, 0x0f80),
> @@ -11286,6 +11300,7 @@ enum {
> ALC897_FIXUP_HP_HSMIC_VERB,
> ALC897_FIXUP_LENOVO_HEADSET_MODE,
> ALC897_FIXUP_HEADSET_MIC_PIN2,
> + ALC897_FIXUP_UNIS_H3C_X500s,
> };
>
> static const struct hda_fixup alc662_fixups[] = {
> @@ -11725,6 +11740,10 @@ static const struct hda_fixup alc662_fixups[] = {
> .chained = true,
> .chain_id = ALC897_FIXUP_LENOVO_HEADSET_MODE
> },
> + [ALC897_FIXUP_UNIS_H3C_X500s] = {
> + .type = HDA_FIXUP_FUNC,
> + .v.func = alc897_fixup_unis_h3c_x500s,

If it's only about verbs, it can be embedded here like:

[ALC897_FIXUP_UNIS_H3C_X500s] = {
.type = HDA_FIXUP_FUNC,
.v.verbs = (const struct hda_verb[]) {
{ 0x14, AC_VERB_SET_EAPD_BTLENABLE, 0 },
{}
},
},

Also, try to keep the capital letters for ALC_* enums.


thanks,

Takashi