hda: Add dmux to STAC 9228
PATCH 1/1 hda: Add dmux to STAC 9228
Added a dmux to the STAC9228 cards with DMIC support. And added a STAC_DIGITAL_INPUT_SOURCE macro for repeating mixer code.
---
pci/hda/patch_sigmatel.c +13 -8
@@ -430,6 +430,16 @@ static struct hda_verb stac9205_core_ini {} }; +#define STAC_DIGITAL_INPUT_SOURCE (cnt) \ + { \ + .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \ + .name = "Digital Input Source", \ + .count = cnt, \ + .info = stac92xx_dmux_enum_info, \ + .get = stac92xx_dmux_enum_get, \ + .put = stac92xx_dmux_enum_put,\ + } +#define STAC_INPUT_SOURCE (cnt) \ { \ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
@@ -482,14 +492,7 @@ static struct snd_kcontrol_new stac925x_ };static struct snd_kcontrol_new stac9205_mixer[] = { - { - .iface =SNDRV_CTL_ELEM_IFACE_MIXER , - .name ="Digital Input Source" , - .count =1 , - .info = stac92xx_dmux_enum_info, - .get = stac92xx_dmux_enum_get, - .put = stac92xx_dmux_enum_put, - }, +STAC_DIGITAL_INPUT_SOURCE (1 ),STAC_INPUT_SOURCE (2 ),STAC_ANALOG_LOOPBACK (0xFE0 ,0x7E0 ),STAC_VOLKNOB (0x24 ),
@@ -521,6 +524,7 @@ static struct snd_kcontrol_new stac922x_static struct snd_kcontrol_new stac927x_mixer[] = { +STAC_DIGITAL_INPUT_SOURCE (1 ),STAC_INPUT_SOURCE (3 ),STAC_VOLKNOB (0x24 ),STAC_ANALOG_LOOPBACK (0xFEB ,0x7EB ),
@@ -2773,6 +2777,7 @@ static int patch_stac927x(struct hda_codcase 0x10280209 :/* STAC 9228 */ spec->dmic_nids = stac927x_dmic_nids; spec->num_dmics =STAC927X_NUM_DMICS ; + spec->dmux_nid =0x1c ;break ;default : spec->num_dmics =0 ;
_______________________________________________
Alsa-devel mailing list
[email protected]
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
Takashi Iwai
AppliedAt Thu, 18 Oct 2007 17:36:32 -0400,
Quoted 5 lines · Matthew Ranostay
Added a dmux to the STAC9228 cards with DMIC support. And added a
STAC_DIGITAL_INPUT_SOURCEmacro for repeating mixer code.
---Signed-off-by Matthew Ranostay <[email protected]>
Thanks, applied to HG tree now.
Takashi
Quoted 3 lines · Matthew Ranostay
Added a dmux to the STAC9228 cards with DMIC support. And added a
STAC_DIGITAL_INPUT_SOURCEmacro for repeating mixer code.
---
I'm not having any luck with this patch on my XPS M1330. I built against Ubuntu Gutsy (2.6.22 which requires some PIT_TICK_RATE futzing in pcsp.h) from current ALSA repo bits after Takashi applied it to HG. I also removed Gusty l-u-m which contains a conflicting snd-hda-intel.
Audio output works fine. The only record source that appears to work is the external microphone (front input), though it is very faint even with mux 1 cranked to the max.
Can you describe your environment and record applications? Perhaps I'm just missing some assumption.
Signature · 1 line
Tim Gardner [email protected]
Quoted 12 lines · Tim Gardner
Quoted 4 lines · Matthew Ranostay
Added a dmux to the STAC9228 cards with DMIC support. And added a
STAC_DIGITAL_INPUT_SOURCEmacro for repeating mixer code.
---I'm not having any luck with this patch on my XPS M1330. I built against Ubuntu Gutsy (2.6.22 which requires some
PIT_TICK_RATEfutzing inpcsp.h) from current ALSA repo bits after Takashi applied it to HG. I also removed Gusty l-u-m which contains a conflicting snd-hda-intel.
Quoted 8 lines
Audio output works fine. The only record source that appears to work is the external microphone (front input), though it is very faint even with mux 1 cranked to the max.
Can you describe your environment and record applications? Perhaps I'm just missing some assumption.
I think the problem is that I set the dmux to ADC1MUX instead of ADC0MUX, could you test this patch to confirm? Please let me know your results.
Thanks,
Matt Ranostay
pci/hda/patch_sigmatel.c +1 -1
@@ -2777,7 +2777,7 @@ static int patch_stac927x(struct hda_codcase 0x10280209 :/* STAC 9228 */ spec->dmic_nids = stac927x_dmic_nids; spec->num_dmics =STAC927X_NUM_DMICS ; - spec->dmux_nid =0x1c ; + spec->dmux_nid =0x1b ;break ;default : spec->num_dmics =0 ;
_______________________________________________
Alsa-devel mailing list
[email protected]
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
This doesn't seem to make a lot of difference. The external microphone is marginally better, but still not really usable (recognizable but distorted). The Gnome ALSA mixer shows 3 capture sources plus digital and 3 mux's. Only the first capture source records anything. I verified that you must have an external mic plugged in just to make sure the built-in mic wasn't recording.
rtg
Quoted 31 lines · Matthew Ranostay
I think the problem is that I set the dmux to ADC1MUX instead of ADC0MUX, could you test this patch to confirm?
Please let me know your results.Thanks,
Matt Ranostay
------------------------------------------------------------------------
diff -r
7cf5e23f804epci/hda/patch_sigmatel.cpci/hda/patch_sigmatel.c +1
-2@@ -2777,7 +2777,7 @@ static int patch_stac927x(struct hda_codcase 0x10280209 :/* STAC 9228 */ spec->dmic_nids = stac927x_dmic_nids; spec->num_dmics =STAC927X_NUM_DMICS ; - spec->dmux_nid =0x1c ; + spec->dmux_nid =0x1b ;break ;default : spec->num_dmics =0 ; ------------------------------------------------------------------------_______________________________________________
Alsa-devel mailing list
[email protected]
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
Signature · 1 line
Tim Gardner [email protected]
Quoted 36 lines · Tim Gardner
This doesn't seem to make a lot of difference. The external microphone is marginally better, but still not really usable (recognizable but distorted). The Gnome ALSA mixer shows 3 capture sources plus digital and 3 mux's. Only the first capture source records anything. I verified that you must have an external mic plugged in just to make sure the built-in mic wasn't recording.
rtg
Quoted 25 lines · Matthew Ranostay
I think the problem is that I set the dmux to ADC1MUX instead of ADC0MUX, could you test this patch to confirm?
Please let me know your results.Thanks,
Matt Ranostay
------------------------------------------------------------------------
diff -r
7cf5e23f804epci/hda/patch_sigmatel.cpci/hda/patch_sigmatel.c +1
-1@@ -2777,7 +2777,7 @@ static int patch_stac927x(struct hda_codcase 0x10280209 :/* STAC 9228 */ spec->dmic_nids = stac927x_dmic_nids; spec->num_dmics =STAC927X_NUM_DMICS ; - spec->dmux_nid =0x1c ; + spec->dmux_nid =0x1b ;break ;default : spec->num_dmics =0 ;
Quoted 10 lines
Quoted 7 lines
------------------------------------------------------------------------
_______________________________________________
Alsa-devel mailing list
[email protected]
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
Ok it is true that there are 3 mux capture sources, but as of the moment we are only using one of them,
ADC0MUX(which will be the first capture source control).
The reason that you can barely hear any sound recording from a DMIC is that there is no hardware db gain, the
only way you can currently get measurable results is from software gain.
Hope that answers your questions.
Thanks,
Matt Ranostay