[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <87sedc6t1m.wl-tiwai@suse.de>
Date: Mon, 15 Dec 2025 09:36:05 +0100
From: Takashi Iwai <tiwai@...e.de>
To: Leo Tsai <antivirus621@...il.com>
Cc: perex@...ex.cz,
tiwai@...e.com,
rf@...nsource.cirrus.com,
leo.tsai@...dia.com.tw,
linux-sound@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH] ALSA: hda/cm9825: Add new project GENE_TWL7 for AAEON
On Mon, 15 Dec 2025 09:14:21 +0100,
Leo Tsai wrote:
>
> The GENE_TWL7 project is an AAEON platform with a fixed audio
> configuration consisting of line-out, line-in, and mic-in.
> The audio routing and pin assignments are defined according to
> the board-level hardware design and are not intended to be
> dynamically changed.
>
> Signed-off-by: Leo Tsai <antivirus621@...il.com>
Please put v2 (or later number) prefix when you resubmit a newer
patch (e.g. [PATCH v2] ALSA: hda/cm9825: ....)
One thin I haven't noticed in the previous review:
> @@ -258,6 +506,51 @@ static int cm9825_probe(struct hda_codec *codec, const struct hda_device_id *id)
> spec->chip_hp_present_verbs = cm9825_hp_present_verbs;
> spec->chip_hp_remove_verbs = cm9825_hp_remove_verbs;
>
> + switch (codec->core.subsystem_id) {
> + case QUIRK_CM_STD:
> + snd_hda_codec_set_name(codec, "CM9825 STD");
> + INIT_DELAYED_WORK(&spec->unsol_hp_work,
> + cm9825_unsol_hp_delayed);
> + spec->chip_d0_verbs = cm9825_std_d0_verbs;
> + spec->chip_d3_verbs = cm9825_std_d3_verbs;
> + spec->chip_hp_present_verbs = cm9825_hp_present_verbs;
> + spec->chip_hp_remove_verbs = cm9825_hp_remove_verbs;
> + cm9825_setup_unsol(codec);
> + break;
> + case QUIRK_GENE_TWL7_SSID:
> + snd_hda_codec_set_name(codec, "CM9825 GENE_TWL7");
> + INIT_DELAYED_WORK(&spec->unsol_linein_work,
> + cm9825_unsol_linein_delayed);
> + INIT_DELAYED_WORK(&spec->unsol_lineout_work,
> + cm9825_unsol_lineout_delayed);
> + spec->gen.hp_mic = 0;
> + cfg->line_outs = 1;
> + cfg->line_out_pins[0] = 0x36;
> + cfg->line_out_type = AUTO_PIN_LINE_OUT;
> + cfg->num_inputs = 2;
> + cfg->inputs[0].pin = 0x3b;
> + cfg->inputs[0].type = AUTO_PIN_LINE_IN;
> + cfg->inputs[1].pin = 0x37;
> + cfg->inputs[1].type = AUTO_PIN_MIC;
> + cfg->inputs[1].is_headphone_mic = 1;
You're setting up the autocfg stuff here, but
snd_hda_parse_pin_defcfg() is called after this point.
Wouldn't it override the values set here?
That is, if you'd like to set up a static pin table, it's better to
provide your own default pin table via snd_hda_apply_pincfgs().
It's something like other codecs applying the pin quirks.
Takashi
Powered by blists - more mailing lists