[alsa-devel] [RFC] ALSA: usb-audio: Add custom mixer status quirks for RME CC devices

Jussi Laako jussi at sonarnerd.net
Fri Sep 21 10:35:49 CEST 2018


> The caching is currently enabled for all elements, but changing it
> should be trivial.  The patch below adds is_volatile flag to the
> element, and you can set it to true in the quirk somehow for uncached
> controls.

This patch looks good and what I need! When trying to figure out where 
it is safe to set the volatile flag I thought that I could set it 
transparently in add_single_ctl_with_resume() in mixer_quirks.c based on 
the SNDRV_CTL_ELEM_ACCESS_VOLATILE flag in provided snd_kcontrol_new 
access-member. However, add_single_ctl_with_resume() is allocating just 
size of usb_mixer_elem_list unlike snd_create_std_mono_ctl_offset() 
which in turn is allocating full usb_mixer_elem_info size. However, the 
mixer code seems to be assuming that the item is always 
usb_mixer_elem_info instead of just list header item. Is this allocation 
behavior correct and is the item turned into usb_mixer_elem_info 
somewhere, or is this some kind of bug? So can I safely turn the 
allocation in add_single_ctl_with_resume() into zero initialized 
usb_mixer_elem_info instead and set the flag there while keeping correct 
behavior, or am I missing something?


Thanks,

	- Jussi



More information about the Alsa-devel mailing list