At Mon, 11 Feb 2008 16:46:55 +0100, Daniele (Mastro) wrote: > > Tobin Davis ha scritto: > > Ok, I'm going to dive into this one this weekend. I have a test board > > ready to run. > > > > Daniele, please email me off list to keep the noise level down. I'm > > also tracking this in bugzilla. > > since 16/01 i haven't any news from Tobin Davis in private email.. > > i sent him 3 mails in 3 weeks waiting for a reply without gettin any one > > you can find all the news at the bug report: > > https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3659 > > the last time i sent him an email with some remind on what's are, still, > my problems.. > > can someone else take care of this problem? i'll try to help as best as > i can... > you can find on the bug report the debug ( detect ) info with "test" > module parameter > > note: things still missing.. microphone don't work in recording, the 56k > modem isn't recognized and i've some error in dmesg: Note that these are no errors but just debug information. Try the patch below. This should fix the capture source problem on ALC268. The modem is a different problem. There are only certain model chips that can work with slmodemd. Non si3054-compatible (typically conexant ones) don't work. Takashi --- diff -r 29ae582df0ee pci/hda/patch_realtek.c --- a/pci/hda/patch_realtek.c Mon Feb 11 16:35:02 2008 +0100 +++ b/pci/hda/patch_realtek.c Mon Feb 11 17:06:19 2008 +0100 @@ -238,6 +238,7 @@ struct alc_spec { /* capture */ unsigned int num_adc_nids; hda_nid_t *adc_nids; + hda_nid_t *capsrc_nids; hda_nid_t dig_in_nid; /* digital-in NID; optional */ /* capture source */ @@ -291,6 +292,7 @@ struct alc_config_preset { hda_nid_t hp_nid; /* optional */ unsigned int num_adc_nids; hda_nid_t *adc_nids; + hda_nid_t *capsrc_nids; hda_nid_t dig_in_nid; unsigned int num_channel_mode; const struct hda_channel_mode *channel_mode; @@ -337,9 +339,10 @@ static int alc_mux_enum_put(struct snd_k struct alc_spec *spec = codec->spec; unsigned int adc_idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); unsigned int mux_idx = adc_idx >= spec->num_mux_defs ? 0 : adc_idx; + hda_nid_t capsrc = spec->capsrc_nids ? + spec->capsrc_nids[adc_idx] : spec->adc_nids[adc_idx]; return snd_hda_input_mux_put(codec, &spec->input_mux[mux_idx], ucontrol, - spec->adc_nids[adc_idx], - &spec->cur_mux[adc_idx]); + capsrc, &spec->cur_mux[adc_idx]); } @@ -708,6 +711,7 @@ static void setup_preset(struct alc_spec spec->num_adc_nids = preset->num_adc_nids; spec->adc_nids = preset->adc_nids; + spec->capsrc_nids = preset->capsrc_nids; spec->dig_in_nid = preset->dig_in_nid; spec->unsol_event = preset->unsol_event; @@ -9527,6 +9531,10 @@ static hda_nid_t alc268_adc_nids_alt[1] 0x08 }; +static hda_nid_t alc268_capsrc_nids[2] = { + 0x23, 0x24 +}; + static struct snd_kcontrol_new alc268_base_mixer[] = { /* output mixer control */ HDA_CODEC_VOLUME("Front Playback Volume", 0x2, 0x0, HDA_OUTPUT), @@ -10140,6 +10148,7 @@ static struct alc_config_preset alc268_p .dac_nids = alc268_dac_nids, .num_adc_nids = ARRAY_SIZE(alc268_adc_nids_alt), .adc_nids = alc268_adc_nids_alt, + .capsrc_nids = alc268_capsrc_nids, .hp_nid = 0x03, .dig_out_nid = ALC268_DIGOUT_NID, .num_channel_mode = ARRAY_SIZE(alc268_modes), @@ -10154,6 +10163,7 @@ static struct alc_config_preset alc268_p .dac_nids = alc268_dac_nids, .num_adc_nids = ARRAY_SIZE(alc268_adc_nids_alt), .adc_nids = alc268_adc_nids_alt, + .capsrc_nids = alc268_capsrc_nids, .hp_nid = 0x03, .num_channel_mode = ARRAY_SIZE(alc268_modes), .channel_mode = alc268_modes, @@ -10169,6 +10179,7 @@ static struct alc_config_preset alc268_p .dac_nids = alc268_dac_nids, .num_adc_nids = ARRAY_SIZE(alc268_adc_nids_alt), .adc_nids = alc268_adc_nids_alt, + .capsrc_nids = alc268_capsrc_nids, .hp_nid = 0x02, .num_channel_mode = ARRAY_SIZE(alc268_modes), .channel_mode = alc268_modes, @@ -10197,6 +10208,7 @@ static struct alc_config_preset alc268_p .dac_nids = alc268_dac_nids, .num_adc_nids = ARRAY_SIZE(alc268_adc_nids_alt), .adc_nids = alc268_adc_nids_alt, + .capsrc_nids = alc268_capsrc_nids, .hp_nid = 0x03, .dig_out_nid = ALC268_DIGOUT_NID, .num_channel_mode = ARRAY_SIZE(alc268_modes), @@ -10214,6 +10226,7 @@ static struct alc_config_preset alc268_p .dac_nids = alc268_dac_nids, .num_adc_nids = ARRAY_SIZE(alc268_adc_nids_alt), .adc_nids = alc268_adc_nids_alt, + .capsrc_nids = alc268_capsrc_nids, .hp_nid = 0x03, .dig_out_nid = ALC268_DIGOUT_NID, .num_channel_mode = ARRAY_SIZE(alc268_modes), @@ -10289,6 +10302,7 @@ static int patch_alc268(struct hda_codec alc268_capture_mixer; spec->num_mixers++; } + spec->capsrc_nids = alc268_capsrc_nids; } spec->vmaster_nid = 0x02; _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel