lkml.org 
[lkml]   [2021]   [Nov]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.10 017/121] ALSA: hda/realtek: Add quirk for ASRock NUC Box 1100
    Date
    From: Werner Sembach <wse@tuxedocomputers.com>

    commit 174a7fb3859ae75b0f0e35ef852459d8882b55b5 upstream.

    This applies a SND_PCI_QUIRK(...) to the ASRock NUC Box 1100 series. This
    fixes the issue of the headphone jack not being detected unless warm
    rebooted from a certain other OS.

    When booting a certain other OS some coeff settings are changed that enable
    the audio jack. These settings are preserved on a warm reboot and can be
    easily dumped.

    The relevant indexes and values where gathered by naively diff-ing and
    reading a working and a non-working coeff dump.

    Signed-off-by: Werner Sembach <wse@tuxedocomputers.com>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20211112110704.1022501-1-wse@tuxedocomputers.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    sound/pci/hda/patch_realtek.c | 27 +++++++++++++++++++++++++++
    1 file changed, 27 insertions(+)

    --- a/sound/pci/hda/patch_realtek.c
    +++ b/sound/pci/hda/patch_realtek.c
    @@ -6467,6 +6467,27 @@ static void alc256_fixup_tongfang_reset_
    alc_write_coef_idx(codec, 0x45, 0x5089);
    }

    +static const struct coef_fw alc233_fixup_no_audio_jack_coefs[] = {
    + WRITE_COEF(0x1a, 0x9003), WRITE_COEF(0x1b, 0x0e2b), WRITE_COEF(0x37, 0xfe06),
    + WRITE_COEF(0x38, 0x4981), WRITE_COEF(0x45, 0xd489), WRITE_COEF(0x46, 0x0074),
    + WRITE_COEF(0x49, 0x0149),
    + {}
    +};
    +
    +static void alc233_fixup_no_audio_jack(struct hda_codec *codec,
    + const struct hda_fixup *fix,
    + int action)
    +{
    + /*
    + * The audio jack input and output is not detected on the ASRock NUC Box
    + * 1100 series when cold booting without this fix. Warm rebooting from a
    + * certain other OS makes the audio functional, as COEF settings are
    + * preserved in this case. This fix sets these altered COEF values as
    + * the default.
    + */
    + alc_process_coef_fw(codec, alc233_fixup_no_audio_jack_coefs);
    +}
    +
    enum {
    ALC269_FIXUP_GPIO2,
    ALC269_FIXUP_SONY_VAIO,
    @@ -6685,6 +6706,7 @@ enum {
    ALC287_FIXUP_13S_GEN2_SPEAKERS,
    ALC256_FIXUP_TONGFANG_RESET_PERSISTENT_SETTINGS,
    ALC256_FIXUP_SYSTEM76_MIC_NO_PRESENCE,
    + ALC233_FIXUP_NO_AUDIO_JACK,
    };

    static const struct hda_fixup alc269_fixups[] = {
    @@ -8399,6 +8421,10 @@ static const struct hda_fixup alc269_fix
    .chained = true,
    .chain_id = ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC,
    },
    + [ALC233_FIXUP_NO_AUDIO_JACK] = {
    + .type = HDA_FIXUP_FUNC,
    + .v.func = alc233_fixup_no_audio_jack,
    + },
    };

    static const struct snd_pci_quirk alc269_fixup_tbl[] = {
    @@ -8831,6 +8857,7 @@ static const struct snd_pci_quirk alc269
    SND_PCI_QUIRK(0x17aa, 0x511e, "Thinkpad", ALC298_FIXUP_TPT470_DOCK),
    SND_PCI_QUIRK(0x17aa, 0x511f, "Thinkpad", ALC298_FIXUP_TPT470_DOCK),
    SND_PCI_QUIRK(0x17aa, 0x9e54, "LENOVO NB", ALC269_FIXUP_LENOVO_EAPD),
    + SND_PCI_QUIRK(0x1849, 0x1233, "ASRock NUC Box 1100", ALC233_FIXUP_NO_AUDIO_JACK),
    SND_PCI_QUIRK(0x19e5, 0x3204, "Huawei MACH-WX9", ALC256_FIXUP_HUAWEI_MACH_WX9_PINS),
    SND_PCI_QUIRK(0x1b35, 0x1235, "CZC B20", ALC269_FIXUP_CZC_B20),
    SND_PCI_QUIRK(0x1b35, 0x1236, "CZC TMI", ALC269_FIXUP_CZC_TMI),

    \
     
     \ /
      Last update: 2021-11-29 19:32    [W:4.040 / U:0.268 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site