diff options
Diffstat (limited to 'sound/usb/mixer.h')
| -rw-r--r-- | sound/usb/mixer.h | 24 | 
1 files changed, 23 insertions, 1 deletions
diff --git a/sound/usb/mixer.h b/sound/usb/mixer.h index 26c636c5c93..73b1f649447 100644 --- a/sound/usb/mixer.h +++ b/sound/usb/mixer.h @@ -3,6 +3,7 @@  struct usb_mixer_interface {  	struct snd_usb_audio *chip; +	struct usb_host_interface *hostif;  	struct list_head list;  	unsigned int ignore_ctl_error;  	struct urb *urb; @@ -24,7 +25,16 @@ struct usb_mixer_interface {  	u8 xonar_u1_status;  }; -#define MAX_CHANNELS	10	/* max logical channels */ +#define MAX_CHANNELS	16	/* max logical channels */ + +enum { +	USB_MIXER_BOOLEAN, +	USB_MIXER_INV_BOOLEAN, +	USB_MIXER_S8, +	USB_MIXER_U8, +	USB_MIXER_S16, +	USB_MIXER_U16, +};  struct usb_mixer_elem_info {  	struct usb_mixer_interface *mixer; @@ -33,6 +43,7 @@ struct usb_mixer_elem_info {  	unsigned int id;  	unsigned int control;	/* CS or ICN (high byte) */  	unsigned int cmask; /* channel mask bitmap: 0 = master */ +	unsigned int idx_off; /* Control index offset */  	unsigned int ch_readonly;  	unsigned int master_readonly;  	int channels; @@ -53,4 +64,15 @@ void snd_usb_mixer_notify_id(struct usb_mixer_interface *mixer, int unitid);  int snd_usb_mixer_set_ctl_value(struct usb_mixer_elem_info *cval,  				int request, int validx, int value_set); +int snd_usb_mixer_add_control(struct usb_mixer_interface *mixer, +			      struct snd_kcontrol *kctl); + +int snd_usb_mixer_vol_tlv(struct snd_kcontrol *kcontrol, int op_flag, +			  unsigned int size, unsigned int __user *_tlv); + +#ifdef CONFIG_PM +int snd_usb_mixer_suspend(struct usb_mixer_interface *mixer); +int snd_usb_mixer_resume(struct usb_mixer_interface *mixer, bool reset_resume); +#endif +  #endif /* __USBMIXER_H */  | 
