[alsa-devel] [PATCH 1/1] Echoaudio: fix broken Mia driver
Takashi Iwai
tiwai at suse.de
Wed Sep 30 08:29:11 CEST 2009
At Tue, 29 Sep 2009 23:39:17 +0200,
Giuliano Pochini wrote:
>
> On Tue, 29 Sep 2009 22:21:28 +0200
> Giuliano Pochini <pochini at shiny.it> wrote:
>
> Same patch with style changes to make checkpatch.pl happy.
>
> ----------
>
> Re-enable the line-out control for the Mia card.
>
> Signed-off-by: Giuliano Pochini <pochini at shiny.it>
Thanks, applied now.
Takashi
>
> diff -u alsa-driver-1.0.21/alsa-kernel/pci/echoaudio__orig/echoaudio.c alsa-driver-1.0.21/alsa-kernel/pci/echoaudio/echoaudio.c
> --- alsa-driver-1.0.21/alsa-kernel/pci/echoaudio__orig/echoaudio.c 2009-08-28 13:41:39.000000000 +0200
> +++ alsa-driver-1.0.21/alsa-kernel/pci/echoaudio/echoaudio.c 2009-09-29 23:00:56.000000000 +0200
> @@ -950,7 +950,7 @@
> Control interface
> ******************************************************************************/
>
> -#ifndef ECHOCARD_HAS_VMIXER
> +#if !defined(ECHOCARD_HAS_VMIXER) || defined(ECHOCARD_HAS_LINE_OUT_GAIN)
>
> /******************* PCM output volume *******************/
> static int snd_echo_output_gain_info(struct snd_kcontrol *kcontrol,
> @@ -1003,6 +1003,19 @@
> return changed;
> }
>
> +#ifdef ECHOCARD_HAS_LINE_OUT_GAIN
> +/* On the Mia this one controls the line-out volume */
> +static struct snd_kcontrol_new snd_echo_line_output_gain __devinitdata = {
> + .name = "Line Playback Volume",
> + .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
> + .access = SNDRV_CTL_ELEM_ACCESS_READWRITE |
> + SNDRV_CTL_ELEM_ACCESS_TLV_READ,
> + .info = snd_echo_output_gain_info,
> + .get = snd_echo_output_gain_get,
> + .put = snd_echo_output_gain_put,
> + .tlv = {.p = db_scale_output_gain},
> +};
> +#else
> static struct snd_kcontrol_new snd_echo_pcm_output_gain __devinitdata = {
> .name = "PCM Playback Volume",
> .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
> @@ -1012,9 +1025,10 @@
> .put = snd_echo_output_gain_put,
> .tlv = {.p = db_scale_output_gain},
> };
> -
> #endif
>
> +#endif /* !ECHOCARD_HAS_VMIXER || ECHOCARD_HAS_LINE_OUT_GAIN */
> +
>
>
> #ifdef ECHOCARD_HAS_INPUT_GAIN
> @@ -2030,10 +2044,18 @@
> snd_echo_vmixer.count = num_pipes_out(chip) * num_busses_out(chip);
> if ((err = snd_ctl_add(chip->card, snd_ctl_new1(&snd_echo_vmixer, chip))) < 0)
> goto ctl_error;
> -#else
> - if ((err = snd_ctl_add(chip->card, snd_ctl_new1(&snd_echo_pcm_output_gain, chip))) < 0)
> +#ifdef ECHOCARD_HAS_LINE_OUT_GAIN
> + err = snd_ctl_add(chip->card,
> + snd_ctl_new1(&snd_echo_line_output_gain, chip));
> + if (err < 0)
> goto ctl_error;
> #endif
> +#else /* ECHOCARD_HAS_VMIXER */
> + err = snd_ctl_add(chip->card,
> + snd_ctl_new1(&snd_echo_pcm_output_gain, chip));
> + if (err < 0)
> + goto ctl_error;
> +#endif /* ECHOCARD_HAS_VMIXER */
>
> #ifdef ECHOCARD_HAS_INPUT_GAIN
> if ((err = snd_ctl_add(chip->card, snd_ctl_new1(&snd_echo_line_input_gain, chip))) < 0)
> diff -u alsa-driver-1.0.21/alsa-kernel/pci/echoaudio__orig/mia.c alsa-driver-1.0.21/alsa-kernel/pci/echoaudio/mia.c
> --- alsa-driver-1.0.21/alsa-kernel/pci/echoaudio__orig/mia.c 2009-08-28 13:41:39.000000000 +0200
> +++ alsa-driver-1.0.21/alsa-kernel/pci/echoaudio/mia.c 2009-09-29 22:19:31.000000000 +0200
> @@ -29,6 +29,7 @@
> #define ECHOCARD_HAS_ADAT FALSE
> #define ECHOCARD_HAS_STEREO_BIG_ENDIAN32
> #define ECHOCARD_HAS_MIDI
> +#define ECHOCARD_HAS_LINE_OUT_GAIN
>
> /* Pipe indexes */
> #define PX_ANALOG_OUT 0 /* 8 */
>
>
>
> --
> Giuliano.
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel at alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
>
More information about the Alsa-devel
mailing list