Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ALSA: line6: fix control and interrupt message timeouts

USB control and interrupt message timeouts are specified in milliseconds
and should specifically not vary with CONFIG_HZ.

Fixes: 705ececd1c60 ("Staging: add line6 usb driver")
Cc: stable@vger.kernel.org # 2.6.30
Signed-off-by: Johan Hovold <johan@kernel.org>
Link: https://lore.kernel.org/r/20211025121142.6531-3-johan@kernel.org
Signed-off-by: Takashi Iwai <tiwai@suse.de>

authored by

Johan Hovold and committed by
Takashi Iwai
f4000b58 9b371c6c

+12 -12
+7 -7
sound/usb/line6/driver.c
··· 113 113 retval = usb_interrupt_msg(line6->usbdev, 114 114 usb_sndintpipe(line6->usbdev, properties->ep_ctrl_w), 115 115 (char *)frag_buf, frag_size, 116 - &partial, LINE6_TIMEOUT * HZ); 116 + &partial, LINE6_TIMEOUT); 117 117 } else { 118 118 retval = usb_bulk_msg(line6->usbdev, 119 119 usb_sndbulkpipe(line6->usbdev, properties->ep_ctrl_w), 120 120 (char *)frag_buf, frag_size, 121 - &partial, LINE6_TIMEOUT * HZ); 121 + &partial, LINE6_TIMEOUT); 122 122 } 123 123 124 124 if (retval) { ··· 347 347 ret = usb_control_msg_send(usbdev, 0, 0x67, 348 348 USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_OUT, 349 349 (datalen << 8) | 0x21, address, NULL, 0, 350 - LINE6_TIMEOUT * HZ, GFP_KERNEL); 350 + LINE6_TIMEOUT, GFP_KERNEL); 351 351 if (ret) { 352 352 dev_err(line6->ifcdev, "read request failed (error %d)\n", ret); 353 353 goto exit; ··· 360 360 ret = usb_control_msg_recv(usbdev, 0, 0x67, 361 361 USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_IN, 362 362 0x0012, 0x0000, &len, 1, 363 - LINE6_TIMEOUT * HZ, GFP_KERNEL); 363 + LINE6_TIMEOUT, GFP_KERNEL); 364 364 if (ret) { 365 365 dev_err(line6->ifcdev, 366 366 "receive length failed (error %d)\n", ret); ··· 387 387 /* receive the result: */ 388 388 ret = usb_control_msg_recv(usbdev, 0, 0x67, 389 389 USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_IN, 390 - 0x0013, 0x0000, data, datalen, LINE6_TIMEOUT * HZ, 390 + 0x0013, 0x0000, data, datalen, LINE6_TIMEOUT, 391 391 GFP_KERNEL); 392 392 if (ret) 393 393 dev_err(line6->ifcdev, "read failed (error %d)\n", ret); ··· 417 417 418 418 ret = usb_control_msg_send(usbdev, 0, 0x67, 419 419 USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_OUT, 420 - 0x0022, address, data, datalen, LINE6_TIMEOUT * HZ, 420 + 0x0022, address, data, datalen, LINE6_TIMEOUT, 421 421 GFP_KERNEL); 422 422 if (ret) { 423 423 dev_err(line6->ifcdev, ··· 430 430 431 431 ret = usb_control_msg_recv(usbdev, 0, 0x67, 432 432 USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_IN, 433 - 0x0012, 0x0000, status, 1, LINE6_TIMEOUT * HZ, 433 + 0x0012, 0x0000, status, 1, LINE6_TIMEOUT, 434 434 GFP_KERNEL); 435 435 if (ret) { 436 436 dev_err(line6->ifcdev,
+1 -1
sound/usb/line6/driver.h
··· 27 27 #define LINE6_FALLBACK_INTERVAL 10 28 28 #define LINE6_FALLBACK_MAXPACKETSIZE 16 29 29 30 - #define LINE6_TIMEOUT 1 30 + #define LINE6_TIMEOUT 1000 31 31 #define LINE6_BUFSIZE_LISTEN 64 32 32 #define LINE6_MIDI_MESSAGE_MAXLEN 256 33 33
+3 -3
sound/usb/line6/podhd.c
··· 190 190 ret = usb_control_msg_send(usbdev, 0, 191 191 0x67, USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_OUT, 192 192 0x11, 0, 193 - NULL, 0, LINE6_TIMEOUT * HZ, GFP_KERNEL); 193 + NULL, 0, LINE6_TIMEOUT, GFP_KERNEL); 194 194 if (ret) { 195 195 dev_err(pod->line6.ifcdev, "read request failed (error %d)\n", ret); 196 196 goto exit; ··· 200 200 ret = usb_control_msg_recv(usbdev, 0, 0x67, 201 201 USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_IN, 202 202 0x11, 0x0, 203 - init_bytes, 3, LINE6_TIMEOUT * HZ, GFP_KERNEL); 203 + init_bytes, 3, LINE6_TIMEOUT, GFP_KERNEL); 204 204 if (ret) { 205 205 dev_err(pod->line6.ifcdev, 206 206 "receive length failed (error %d)\n", ret); ··· 220 220 USB_REQ_SET_FEATURE, 221 221 USB_TYPE_STANDARD | USB_RECIP_DEVICE | USB_DIR_OUT, 222 222 1, 0, 223 - NULL, 0, LINE6_TIMEOUT * HZ, GFP_KERNEL); 223 + NULL, 0, LINE6_TIMEOUT, GFP_KERNEL); 224 224 exit: 225 225 return ret; 226 226 }
+1 -1
sound/usb/line6/toneport.c
··· 128 128 129 129 ret = usb_control_msg_send(usbdev, 0, 0x67, 130 130 USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_OUT, 131 - cmd1, cmd2, NULL, 0, LINE6_TIMEOUT * HZ, 131 + cmd1, cmd2, NULL, 0, LINE6_TIMEOUT, 132 132 GFP_KERNEL); 133 133 134 134 if (ret) {