ALSA: usb-audio: Trust fields given in the quirk
The maxpacksize field is given in some quirks, but it gets ignored (in favour of wMaxPacketSize from the first endpoint.) This patch favours the one in the quirk. Digidesign Mbox and Mbox 2 are the only affected quirks and the devices are assumed to be working without this patch. So for safety against the values in the quirk being incorrect, remove them. The datainterval is also ignored but there are not currently any quirks which choose to override this. Cc: Damien Zammit <damien@zamaudio.com> Cc: Chris J Arges <christopherarges@gmail.com> Signed-off-by: Mark Hills <mark@xwax.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
5e212332cc
commit
59ea586f54
|
@ -3036,7 +3036,6 @@ YAMAHA_DEVICE(0x7010, "UB99"),
|
|||
.attributes = UAC_EP_CS_ATTR_SAMPLE_RATE,
|
||||
.endpoint = 0x02,
|
||||
.ep_attr = 0x01,
|
||||
.maxpacksize = 0x130,
|
||||
.rates = SNDRV_PCM_RATE_44100 |
|
||||
SNDRV_PCM_RATE_48000,
|
||||
.rate_min = 44100,
|
||||
|
@ -3084,7 +3083,6 @@ YAMAHA_DEVICE(0x7010, "UB99"),
|
|||
.attributes = 0x00,
|
||||
.endpoint = 0x03,
|
||||
.ep_attr = USB_ENDPOINT_SYNC_ASYNC,
|
||||
.maxpacksize = 0x128,
|
||||
.rates = SNDRV_PCM_RATE_48000,
|
||||
.rate_min = 48000,
|
||||
.rate_max = 48000,
|
||||
|
@ -3110,7 +3108,6 @@ YAMAHA_DEVICE(0x7010, "UB99"),
|
|||
.attributes = UAC_EP_CS_ATTR_SAMPLE_RATE,
|
||||
.endpoint = 0x85,
|
||||
.ep_attr = USB_ENDPOINT_SYNC_SYNC,
|
||||
.maxpacksize = 0x128,
|
||||
.rates = SNDRV_PCM_RATE_48000,
|
||||
.rate_min = 48000,
|
||||
.rate_max = 48000,
|
||||
|
|
|
@ -165,8 +165,10 @@ static int create_fixed_stream_quirk(struct snd_usb_audio *chip,
|
|||
return -EINVAL;
|
||||
}
|
||||
alts = &iface->altsetting[fp->altset_idx];
|
||||
fp->datainterval = snd_usb_parse_datainterval(chip, alts);
|
||||
fp->maxpacksize = le16_to_cpu(get_endpoint(alts, 0)->wMaxPacketSize);
|
||||
if (fp->datainterval == 0)
|
||||
fp->datainterval = snd_usb_parse_datainterval(chip, alts);
|
||||
if (fp->maxpacksize == 0)
|
||||
fp->maxpacksize = le16_to_cpu(get_endpoint(alts, 0)->wMaxPacketSize);
|
||||
usb_set_interface(chip->dev, fp->iface, 0);
|
||||
snd_usb_init_pitch(chip, fp->iface, alts, fp);
|
||||
snd_usb_init_sample_rate(chip, fp->iface, alts, fp, fp->rate_max);
|
||||
|
|
Loading…
Reference in New Issue