|
@@ -2598,9 +2598,9 @@ void snd_usb_mixer_notify_id(struct usb_mixer_interface *mixer, int unitid)
|
|
|
{
|
|
|
struct usb_mixer_elem_list *list;
|
|
|
|
|
|
- for (list = mixer->id_elems[unitid]; list; list = list->next_id_elem) {
|
|
|
+ for_each_mixer_elem(list, mixer, unitid) {
|
|
|
struct usb_mixer_elem_info *info =
|
|
|
- (struct usb_mixer_elem_info *)list;
|
|
|
+ mixer_elem_list_to_info(list);
|
|
|
/* invalidate cache, so the value is read from the device */
|
|
|
info->cached = 0;
|
|
|
snd_ctl_notify(mixer->chip->card, SNDRV_CTL_EVENT_MASK_VALUE,
|
|
@@ -2611,7 +2611,7 @@ void snd_usb_mixer_notify_id(struct usb_mixer_interface *mixer, int unitid)
|
|
|
static void snd_usb_mixer_dump_cval(struct snd_info_buffer *buffer,
|
|
|
struct usb_mixer_elem_list *list)
|
|
|
{
|
|
|
- struct usb_mixer_elem_info *cval = (struct usb_mixer_elem_info *)list;
|
|
|
+ struct usb_mixer_elem_info *cval = mixer_elem_list_to_info(list);
|
|
|
static char *val_types[] = {"BOOLEAN", "INV_BOOLEAN",
|
|
|
"S8", "U8", "S16", "U16"};
|
|
|
snd_iprintf(buffer, " Info: id=%i, control=%i, cmask=0x%x, "
|
|
@@ -2637,8 +2637,7 @@ static void snd_usb_mixer_proc_read(struct snd_info_entry *entry,
|
|
|
mixer->ignore_ctl_error);
|
|
|
snd_iprintf(buffer, "Card: %s\n", chip->card->longname);
|
|
|
for (unitid = 0; unitid < MAX_ID_ELEMS; unitid++) {
|
|
|
- for (list = mixer->id_elems[unitid]; list;
|
|
|
- list = list->next_id_elem) {
|
|
|
+ for_each_mixer_elem(list, mixer, unitid) {
|
|
|
snd_iprintf(buffer, " Unit: %i\n", list->id);
|
|
|
if (list->kctl)
|
|
|
snd_iprintf(buffer,
|
|
@@ -2668,19 +2667,19 @@ static void snd_usb_mixer_interrupt_v2(struct usb_mixer_interface *mixer,
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- for (list = mixer->id_elems[unitid]; list; list = list->next_id_elem)
|
|
|
+ for_each_mixer_elem(list, mixer, unitid)
|
|
|
count++;
|
|
|
|
|
|
if (count == 0)
|
|
|
return;
|
|
|
|
|
|
- for (list = mixer->id_elems[unitid]; list; list = list->next_id_elem) {
|
|
|
+ for_each_mixer_elem(list, mixer, unitid) {
|
|
|
struct usb_mixer_elem_info *info;
|
|
|
|
|
|
if (!list->kctl)
|
|
|
continue;
|
|
|
|
|
|
- info = (struct usb_mixer_elem_info *)list;
|
|
|
+ info = mixer_elem_list_to_info(list);
|
|
|
if (count > 1 && info->control != control)
|
|
|
continue;
|
|
|
|
|
@@ -2946,7 +2945,7 @@ int snd_usb_mixer_suspend(struct usb_mixer_interface *mixer)
|
|
|
|
|
|
static int restore_mixer_value(struct usb_mixer_elem_list *list)
|
|
|
{
|
|
|
- struct usb_mixer_elem_info *cval = (struct usb_mixer_elem_info *)list;
|
|
|
+ struct usb_mixer_elem_info *cval = mixer_elem_list_to_info(list);
|
|
|
int c, err, idx;
|
|
|
|
|
|
if (cval->cmask) {
|
|
@@ -2982,8 +2981,7 @@ int snd_usb_mixer_resume(struct usb_mixer_interface *mixer, bool reset_resume)
|
|
|
if (reset_resume) {
|
|
|
/* restore cached mixer values */
|
|
|
for (id = 0; id < MAX_ID_ELEMS; id++) {
|
|
|
- for (list = mixer->id_elems[id]; list;
|
|
|
- list = list->next_id_elem) {
|
|
|
+ for_each_mixer_elem(list, mixer, id) {
|
|
|
if (list->resume) {
|
|
|
err = list->resume(list);
|
|
|
if (err < 0)
|