ALSA: usb-audio: Allow quirks to handle own resume and proc dump
authorTakashi Iwai <tiwai@suse.de>
Tue, 18 Nov 2014 10:47:04 +0000 (11:47 +0100)
committerTakashi Iwai <tiwai@suse.de>
Fri, 21 Nov 2014 10:56:58 +0000 (11:56 +0100)
commit3360b84b8ed1f08bfb39743465b858a04492fcc3
treefc05e8cf624adf9cd9e25fdca04793c830ff9365
parent5aeee3424fa5926a53885b9defb593971e446d77
ALSA: usb-audio: Allow quirks to handle own resume and proc dump

So far, we blindly assumed that the all usb-audio mixer elements
follow the standard and apply the standard resume method for the
registered elements in the id_elems[] list.  However, some quirks
really need the own resume and it's incomplete for now.

This patch enhances the resume handling in two folds:
- split some fields in struct usb_mixer_elem_info into a smaller
  header struct (usb_mixer_elem_list) for keeping the minimal
  information in the linked-list; the usb_mixer_elem_info embeds this
  header struct instead
- add resume and dump callbacks to usb_mixer_elem_list struct to allow
  quirks providing the own methods

For the standard mixer elements, these new callbacks are set to the
standard ones as default, thus there is no functional change by this
patch yet.

The dump and resume callbacks are typedef'ed for ease of later patches
using arrays of such function pointers.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/usb/mixer.c
sound/usb/mixer.h
sound/usb/mixer_quirks.c
sound/usb/mixer_scarlett.c