[alsa-devel] [PATCH 4/4 v4] ALSA: usb-audio: Scarlett mixer interface for 6i6, 18i6, 18i8 and 18i20

Chris J Arges chris.j.arges at canonical.com
Tue Nov 4 20:51:05 CET 2014


On Tue, Nov 04, 2014 at 02:16:13PM +0100, Tobias Hoffmann wrote:
<snip>
> @Chris:
> The original get_ctl_value (after cleanup:
> snd_usb_get_cur_mix_value) contained this:
> >        // quirk: write 2bytes, but read 1byte
> >        if ( (elem->index == 0x01)||  //  input impedance and
> >input pad switch
> >             ((elem->index == 0x0a)&&(elem->wValue < 0x0200))|| //
> >bus mutes
> >             (elem->index == 0x32)||(elem->index == 0x33) ) { // mux
> >                val_len = 1;
> >        }
> Is it removed(AFAICT) intentionally in your patches?
> The windows mixer software did read-back some values (but only after
> they had been written once, IIRC), and had this asymmetry that
> certain registers used 2-byte writes but 1-byte reads...
> I'm quite unsure about just reading 2 bytes, i.e. whether the device
> would actually return the correct values.
> OTOH, we should only hit the cache because of the zero-initialization(?).
> 
>   Tobias
>

Tobias,
I've notcied that the controls work just fine without this hack (at least on my 18i8);
however I can look more closely into this to see what the extra byte that's being read actually is. 
--chris


More information about the Alsa-devel mailing list