diff options
Diffstat (limited to 'sound/usb')
-rw-r--r-- | sound/usb/line6/pcm.c | 3 | ||||
-rw-r--r-- | sound/usb/line6/pod.c | 12 | ||||
-rw-r--r-- | sound/usb/quirks.c | 2 |
3 files changed, 10 insertions, 7 deletions
diff --git a/sound/usb/line6/pcm.c b/sound/usb/line6/pcm.c index 204cc074adb9..41aa3355e920 100644 --- a/sound/usb/line6/pcm.c +++ b/sound/usb/line6/pcm.c | |||
@@ -55,7 +55,6 @@ static int snd_line6_impulse_volume_put(struct snd_kcontrol *kcontrol, | |||
55 | err = line6_pcm_acquire(line6pcm, LINE6_STREAM_IMPULSE); | 55 | err = line6_pcm_acquire(line6pcm, LINE6_STREAM_IMPULSE); |
56 | if (err < 0) { | 56 | if (err < 0) { |
57 | line6pcm->impulse_volume = 0; | 57 | line6pcm->impulse_volume = 0; |
58 | line6_pcm_release(line6pcm, LINE6_STREAM_IMPULSE); | ||
59 | return err; | 58 | return err; |
60 | } | 59 | } |
61 | } else { | 60 | } else { |
@@ -211,7 +210,9 @@ static void line6_stream_stop(struct snd_line6_pcm *line6pcm, int direction, | |||
211 | spin_lock_irqsave(&pstr->lock, flags); | 210 | spin_lock_irqsave(&pstr->lock, flags); |
212 | clear_bit(type, &pstr->running); | 211 | clear_bit(type, &pstr->running); |
213 | if (!pstr->running) { | 212 | if (!pstr->running) { |
213 | spin_unlock_irqrestore(&pstr->lock, flags); | ||
214 | line6_unlink_audio_urbs(line6pcm, pstr); | 214 | line6_unlink_audio_urbs(line6pcm, pstr); |
215 | spin_lock_irqsave(&pstr->lock, flags); | ||
215 | if (direction == SNDRV_PCM_STREAM_CAPTURE) { | 216 | if (direction == SNDRV_PCM_STREAM_CAPTURE) { |
216 | line6pcm->prev_fbuf = NULL; | 217 | line6pcm->prev_fbuf = NULL; |
217 | line6pcm->prev_fsize = 0; | 218 | line6pcm->prev_fsize = 0; |
diff --git a/sound/usb/line6/pod.c b/sound/usb/line6/pod.c index daf81d169a42..45dd34874f43 100644 --- a/sound/usb/line6/pod.c +++ b/sound/usb/line6/pod.c | |||
@@ -244,8 +244,8 @@ static int pod_set_system_param_int(struct usb_line6_pod *pod, int value, | |||
244 | static ssize_t serial_number_show(struct device *dev, | 244 | static ssize_t serial_number_show(struct device *dev, |
245 | struct device_attribute *attr, char *buf) | 245 | struct device_attribute *attr, char *buf) |
246 | { | 246 | { |
247 | struct usb_interface *interface = to_usb_interface(dev); | 247 | struct snd_card *card = dev_to_snd_card(dev); |
248 | struct usb_line6_pod *pod = usb_get_intfdata(interface); | 248 | struct usb_line6_pod *pod = card->private_data; |
249 | 249 | ||
250 | return sprintf(buf, "%u\n", pod->serial_number); | 250 | return sprintf(buf, "%u\n", pod->serial_number); |
251 | } | 251 | } |
@@ -256,8 +256,8 @@ static ssize_t serial_number_show(struct device *dev, | |||
256 | static ssize_t firmware_version_show(struct device *dev, | 256 | static ssize_t firmware_version_show(struct device *dev, |
257 | struct device_attribute *attr, char *buf) | 257 | struct device_attribute *attr, char *buf) |
258 | { | 258 | { |
259 | struct usb_interface *interface = to_usb_interface(dev); | 259 | struct snd_card *card = dev_to_snd_card(dev); |
260 | struct usb_line6_pod *pod = usb_get_intfdata(interface); | 260 | struct usb_line6_pod *pod = card->private_data; |
261 | 261 | ||
262 | return sprintf(buf, "%d.%02d\n", pod->firmware_version / 100, | 262 | return sprintf(buf, "%d.%02d\n", pod->firmware_version / 100, |
263 | pod->firmware_version % 100); | 263 | pod->firmware_version % 100); |
@@ -269,8 +269,8 @@ static ssize_t firmware_version_show(struct device *dev, | |||
269 | static ssize_t device_id_show(struct device *dev, | 269 | static ssize_t device_id_show(struct device *dev, |
270 | struct device_attribute *attr, char *buf) | 270 | struct device_attribute *attr, char *buf) |
271 | { | 271 | { |
272 | struct usb_interface *interface = to_usb_interface(dev); | 272 | struct snd_card *card = dev_to_snd_card(dev); |
273 | struct usb_line6_pod *pod = usb_get_intfdata(interface); | 273 | struct usb_line6_pod *pod = card->private_data; |
274 | 274 | ||
275 | return sprintf(buf, "%d\n", pod->device_id); | 275 | return sprintf(buf, "%d\n", pod->device_id); |
276 | } | 276 | } |
diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c index 6adde457b602..6cf1f3597455 100644 --- a/sound/usb/quirks.c +++ b/sound/usb/quirks.c | |||
@@ -1128,6 +1128,7 @@ bool snd_usb_get_sample_rate_quirk(struct snd_usb_audio *chip) | |||
1128 | { | 1128 | { |
1129 | /* devices which do not support reading the sample rate. */ | 1129 | /* devices which do not support reading the sample rate. */ |
1130 | switch (chip->usb_id) { | 1130 | switch (chip->usb_id) { |
1131 | case USB_ID(0x041E, 0x4080): /* Creative Live Cam VF0610 */ | ||
1131 | case USB_ID(0x045E, 0x075D): /* MS Lifecam Cinema */ | 1132 | case USB_ID(0x045E, 0x075D): /* MS Lifecam Cinema */ |
1132 | case USB_ID(0x045E, 0x076D): /* MS Lifecam HD-5000 */ | 1133 | case USB_ID(0x045E, 0x076D): /* MS Lifecam HD-5000 */ |
1133 | case USB_ID(0x045E, 0x076E): /* MS Lifecam HD-5001 */ | 1134 | case USB_ID(0x045E, 0x076E): /* MS Lifecam HD-5001 */ |
@@ -1138,6 +1139,7 @@ bool snd_usb_get_sample_rate_quirk(struct snd_usb_audio *chip) | |||
1138 | case USB_ID(0x047F, 0xAA05): /* Plantronics DA45 */ | 1139 | case USB_ID(0x047F, 0xAA05): /* Plantronics DA45 */ |
1139 | case USB_ID(0x04D8, 0xFEEA): /* Benchmark DAC1 Pre */ | 1140 | case USB_ID(0x04D8, 0xFEEA): /* Benchmark DAC1 Pre */ |
1140 | case USB_ID(0x0556, 0x0014): /* Phoenix Audio TMX320VC */ | 1141 | case USB_ID(0x0556, 0x0014): /* Phoenix Audio TMX320VC */ |
1142 | case USB_ID(0x05A3, 0x9420): /* ELP HD USB Camera */ | ||
1141 | case USB_ID(0x074D, 0x3553): /* Outlaw RR2150 (Micronas UAC3553B) */ | 1143 | case USB_ID(0x074D, 0x3553): /* Outlaw RR2150 (Micronas UAC3553B) */ |
1142 | case USB_ID(0x1de7, 0x0013): /* Phoenix Audio MT202exe */ | 1144 | case USB_ID(0x1de7, 0x0013): /* Phoenix Audio MT202exe */ |
1143 | case USB_ID(0x1de7, 0x0014): /* Phoenix Audio TMX320 */ | 1145 | case USB_ID(0x1de7, 0x0014): /* Phoenix Audio TMX320 */ |