All of lore.kernel.org
 help / color / mirror / Atom feed
From: Takashi Iwai <tiwai@suse.de>
To: Omari Stephens <xsdg@xsdg.org>
Cc: alsa-devel@alsa-project.org
Subject: Re: [PATCH] New quirk for USB DAC 08bb:2704
Date: Mon, 14 Feb 2011 18:10:32 +0100	[thread overview]
Message-ID: <s5htyg6k0dz.wl%tiwai@suse.de> (raw)
In-Reply-To: <4D570F65.6000108@xsdg.org>

At Sat, 12 Feb 2011 22:53:25 +0000,
Omari Stephens wrote:
> 
> Howdy, all
> 
> I have one of these:
> http://www.chordelectronics.co.uk/products_detail.asp?id=63
> 
> It's got one of these USB DACs inside
> ID 08bb:2704 Texas Instruments Japan
> 
> The DAC has a single mixer control, Master, which allows you to adjust 
> volume and mute/unmute.  The fun thing is that the volume adjustment has 
> no effect whatsoever.  On machines running pulse, this means that output 
> will be at 0dB pretty much all the time.  (Of course, this is true of 
> non-pulse machines also).
> 
> The attached patch disables the Master control, which causes pulse to 
> control levels entirely in software, as it should for this device.
> 
> The main downside to this patch is that, while the volume part of the 
> Master control is non-functional, the mute/unmute aspect does work as 
> expected.  I couldn't figure out how to change the Master control to 
> just a mute/unmute control, but if someone has suggestions on what to 
> do, that'd be appreciated.  Judging by the comments in the code (and 
> contrary to what I wrote in the map comment), I presume the mute/unmute 
> control is the only reason why 08bb:2702 isn't doing this same thing.

The patch looks good to me.  Could you give your sign-off?


thanks,

Takashi

> 
> Cheers,
> --xsdg
> [2 0001-Add-a-quirk-to-ignore-the-Master-volume-control-on-0.patch <text/x-patch (7bit)>]
> >From 3061b0fa281ea812f0767bc9df6bae7b8016d0d0 Mon Sep 17 00:00:00 2001
> From: Omari Stephens <xsdg@xsdg.org>
> Date: Sat, 12 Feb 2011 20:36:04 +0000
> Subject: [PATCH] Add a quirk to ignore the Master volume control on 08bb:2704
> 
> ---
>  mixer.c      |    6 ++++++
>  mixer_maps.c |   19 ++++++++++++++++++-
>  2 files changed, 24 insertions(+), 1 deletions(-)
> 
> diff --git a/mixer.c b/mixer.c
> index 3ed3901..38d5d77 100644
> --- a/mixer.c
> +++ b/mixer.c
> @@ -1192,6 +1192,12 @@ static int parse_audio_feature_unit(struct mixer_build *state, int unitid, void
>  		/* disable non-functional volume control */
>  		master_bits &= ~UAC_CONTROL_BIT(UAC_FU_VOLUME);
>  		break;
> +	case USB_ID(0x08bb, 0x2704):
> +		snd_printk(KERN_INFO
> +			   "usbmixer: master volume quirk for PCM2704 chip\n");
> +		/* disable non-functional volume control */
> +		master_bits &= ~UAC_CONTROL_BIT(UAC_FU_VOLUME);
> +		break;
>  	}
>  	if (channels > 0)
>  		first_ch_bits = snd_usb_combine_bytes(bmaControls + csize, csize);
> diff --git a/mixer_maps.c b/mixer_maps.c
> index f1324c4..40edd9b 100644
> --- a/mixer_maps.c
> +++ b/mixer_maps.c
> @@ -208,11 +208,23 @@ static struct usbmix_name_map live24ext_map[] = {
>  /* LineX FM Transmitter entry - needed to bypass controls bug */
>  static struct usbmix_name_map linex_map[] = {
>  	/* 1: IT pcm */
> -	/* 2: OT Speaker */ 
> +	/* 2: OT Speaker */
>  	{ 3, "Master" }, /* FU: master volume - left / right / mute */
>  	{ 0 } /* terminator */
>  };
>  
> +/* This DAC (08bb:2704) has a single "Volume" control which isn't actually
> + * connected to anything.  The 08bb:2702 device is based off the LineX map, so
> + * presumably the 2704 one is similar but more broken.
> + */
> +static struct usbmix_name_map ti_broken_usb_dac_map[] = {
> +	/* 1: IT pcm */
> +	/* 2: OT Speaker */
> +	{ 3, NULL }, /* Master (not connected to anything) */
> +	{ 0 }
> +};
> +
> +
>  static struct usbmix_name_map maya44_map[] = {
>  	/* 1: IT line */
>  	{ 2, "Line Playback" }, /* FU */
> @@ -355,6 +367,11 @@ static struct usbmix_ctl_map usbmix_ctl_maps[] = {
>  		.ignore_ctl_error = 1,
>  	},
>  	{
> +		.id = USB_ID(0x08bb, 0x2704),
> +		.map = ti_broken_usb_dac_map,
> +		.ignore_ctl_error = 1,
> +	},
> +	{
>  		.id = USB_ID(0x0a92, 0x0091),
>  		.map = maya44_map,
>  	},
> -- 
> 1.7.2.3
> 
> [3  <text/plain; us-ascii (7bit)>]
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel@alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

  reply	other threads:[~2011-02-14 17:10 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-12 22:53 [PATCH] New quirk for USB DAC 08bb:2704 Omari Stephens
2011-02-14 17:10 ` Takashi Iwai [this message]
2011-02-14 21:16   ` Omari Stephens
2011-02-14 22:32     ` Takashi Iwai

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=s5htyg6k0dz.wl%tiwai@suse.de \
    --to=tiwai@suse.de \
    --cc=alsa-devel@alsa-project.org \
    --cc=xsdg@xsdg.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.