]> rtime.felk.cvut.cz Git - linux-imx.git/blobdiff - sound/usb/format.c
ALSA: usb-audio: store protocol version in struct audioformat
[linux-imx.git] / sound / usb / format.c
index 99299ffb33ac22597d57b1a11fd2b1e856f154bd..3525231c6b97325dcbb400ae0c7f9e021555ad8b 100644 (file)
  */
 static u64 parse_audio_format_i_type(struct snd_usb_audio *chip,
                                     struct audioformat *fp,
-                                    unsigned int format, void *_fmt,
-                                    int protocol)
+                                    unsigned int format, void *_fmt)
 {
        int sample_width, sample_bytes;
        u64 pcm_formats = 0;
 
-       switch (protocol) {
+       switch (fp->protocol) {
        case UAC_VERSION_1:
        default: {
                struct uac_format_type_i_discrete_descriptor *fmt = _fmt;
@@ -360,11 +359,8 @@ err:
  */
 static int parse_audio_format_i(struct snd_usb_audio *chip,
                                struct audioformat *fp, unsigned int format,
-                               struct uac_format_type_i_continuous_descriptor *fmt,
-                               struct usb_host_interface *iface)
+                               struct uac_format_type_i_continuous_descriptor *fmt)
 {
-       struct usb_interface_descriptor *altsd = get_iface_desc(iface);
-       int protocol = altsd->bInterfaceProtocol;
        snd_pcm_format_t pcm_format;
        int ret;
 
@@ -387,8 +383,7 @@ static int parse_audio_format_i(struct snd_usb_audio *chip,
                }
                fp->formats = pcm_format_to_bits(pcm_format);
        } else {
-               fp->formats = parse_audio_format_i_type(chip, fp, format,
-                                                       fmt, protocol);
+               fp->formats = parse_audio_format_i_type(chip, fp, format, fmt);
                if (!fp->formats)
                        return -EINVAL;
        }
@@ -398,11 +393,8 @@ static int parse_audio_format_i(struct snd_usb_audio *chip,
         * proprietary class specific descriptor.
         * audio class v2 uses class specific EP0 range requests for that.
         */
-       switch (protocol) {
+       switch (fp->protocol) {
        default:
-               snd_printdd(KERN_WARNING "%d:%u:%d : invalid protocol version %d, assuming v1\n",
-                          chip->dev->devnum, fp->iface, fp->altsetting, protocol);
-               /* fall through */
        case UAC_VERSION_1:
                fp->channels = fmt->bNrChannels;
                ret = parse_audio_format_rates_v1(chip, fp, (unsigned char *) fmt, 7);
@@ -427,12 +419,9 @@ static int parse_audio_format_i(struct snd_usb_audio *chip,
  */
 static int parse_audio_format_ii(struct snd_usb_audio *chip,
                                 struct audioformat *fp,
-                                int format, void *_fmt,
-                                struct usb_host_interface *iface)
+                                int format, void *_fmt)
 {
        int brate, framesize, ret;
-       struct usb_interface_descriptor *altsd = get_iface_desc(iface);
-       int protocol = altsd->bInterfaceProtocol;
 
        switch (format) {
        case UAC_FORMAT_TYPE_II_AC3:
@@ -452,11 +441,8 @@ static int parse_audio_format_ii(struct snd_usb_audio *chip,
 
        fp->channels = 1;
 
-       switch (protocol) {
+       switch (fp->protocol) {
        default:
-               snd_printdd(KERN_WARNING "%d:%u:%d : invalid protocol version %d, assuming v1\n",
-                          chip->dev->devnum, fp->iface, fp->altsetting, protocol);
-               /* fall through */
        case UAC_VERSION_1: {
                struct uac_format_type_ii_discrete_descriptor *fmt = _fmt;
                brate = le16_to_cpu(fmt->wMaxBitRate);
@@ -483,17 +469,17 @@ static int parse_audio_format_ii(struct snd_usb_audio *chip,
 int snd_usb_parse_audio_format(struct snd_usb_audio *chip,
                               struct audioformat *fp, unsigned int format,
                               struct uac_format_type_i_continuous_descriptor *fmt,
-                              int stream, struct usb_host_interface *iface)
+                              int stream)
 {
        int err;
 
        switch (fmt->bFormatType) {
        case UAC_FORMAT_TYPE_I:
        case UAC_FORMAT_TYPE_III:
-               err = parse_audio_format_i(chip, fp, format, fmt, iface);
+               err = parse_audio_format_i(chip, fp, format, fmt);
                break;
        case UAC_FORMAT_TYPE_II:
-               err = parse_audio_format_ii(chip, fp, format, fmt, iface);
+               err = parse_audio_format_ii(chip, fp, format, fmt);
                break;
        default:
                snd_printd(KERN_INFO "%d:%u:%d : format type %d is not supported yet\n",