mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 22:21:40 +00:00
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: 705ececd1c
("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>
This commit is contained in:
parent
9b371c6cc3
commit
f4000b58b6
@ -113,12 +113,12 @@ int line6_send_raw_message(struct usb_line6 *line6, const char *buffer,
|
||||
retval = usb_interrupt_msg(line6->usbdev,
|
||||
usb_sndintpipe(line6->usbdev, properties->ep_ctrl_w),
|
||||
(char *)frag_buf, frag_size,
|
||||
&partial, LINE6_TIMEOUT * HZ);
|
||||
&partial, LINE6_TIMEOUT);
|
||||
} else {
|
||||
retval = usb_bulk_msg(line6->usbdev,
|
||||
usb_sndbulkpipe(line6->usbdev, properties->ep_ctrl_w),
|
||||
(char *)frag_buf, frag_size,
|
||||
&partial, LINE6_TIMEOUT * HZ);
|
||||
&partial, LINE6_TIMEOUT);
|
||||
}
|
||||
|
||||
if (retval) {
|
||||
@ -347,7 +347,7 @@ int line6_read_data(struct usb_line6 *line6, unsigned address, void *data,
|
||||
ret = usb_control_msg_send(usbdev, 0, 0x67,
|
||||
USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_OUT,
|
||||
(datalen << 8) | 0x21, address, NULL, 0,
|
||||
LINE6_TIMEOUT * HZ, GFP_KERNEL);
|
||||
LINE6_TIMEOUT, GFP_KERNEL);
|
||||
if (ret) {
|
||||
dev_err(line6->ifcdev, "read request failed (error %d)\n", ret);
|
||||
goto exit;
|
||||
@ -360,7 +360,7 @@ int line6_read_data(struct usb_line6 *line6, unsigned address, void *data,
|
||||
ret = usb_control_msg_recv(usbdev, 0, 0x67,
|
||||
USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_IN,
|
||||
0x0012, 0x0000, &len, 1,
|
||||
LINE6_TIMEOUT * HZ, GFP_KERNEL);
|
||||
LINE6_TIMEOUT, GFP_KERNEL);
|
||||
if (ret) {
|
||||
dev_err(line6->ifcdev,
|
||||
"receive length failed (error %d)\n", ret);
|
||||
@ -387,7 +387,7 @@ int line6_read_data(struct usb_line6 *line6, unsigned address, void *data,
|
||||
/* receive the result: */
|
||||
ret = usb_control_msg_recv(usbdev, 0, 0x67,
|
||||
USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_IN,
|
||||
0x0013, 0x0000, data, datalen, LINE6_TIMEOUT * HZ,
|
||||
0x0013, 0x0000, data, datalen, LINE6_TIMEOUT,
|
||||
GFP_KERNEL);
|
||||
if (ret)
|
||||
dev_err(line6->ifcdev, "read failed (error %d)\n", ret);
|
||||
@ -417,7 +417,7 @@ int line6_write_data(struct usb_line6 *line6, unsigned address, void *data,
|
||||
|
||||
ret = usb_control_msg_send(usbdev, 0, 0x67,
|
||||
USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_OUT,
|
||||
0x0022, address, data, datalen, LINE6_TIMEOUT * HZ,
|
||||
0x0022, address, data, datalen, LINE6_TIMEOUT,
|
||||
GFP_KERNEL);
|
||||
if (ret) {
|
||||
dev_err(line6->ifcdev,
|
||||
@ -430,7 +430,7 @@ int line6_write_data(struct usb_line6 *line6, unsigned address, void *data,
|
||||
|
||||
ret = usb_control_msg_recv(usbdev, 0, 0x67,
|
||||
USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_IN,
|
||||
0x0012, 0x0000, status, 1, LINE6_TIMEOUT * HZ,
|
||||
0x0012, 0x0000, status, 1, LINE6_TIMEOUT,
|
||||
GFP_KERNEL);
|
||||
if (ret) {
|
||||
dev_err(line6->ifcdev,
|
||||
|
@ -27,7 +27,7 @@
|
||||
#define LINE6_FALLBACK_INTERVAL 10
|
||||
#define LINE6_FALLBACK_MAXPACKETSIZE 16
|
||||
|
||||
#define LINE6_TIMEOUT 1
|
||||
#define LINE6_TIMEOUT 1000
|
||||
#define LINE6_BUFSIZE_LISTEN 64
|
||||
#define LINE6_MIDI_MESSAGE_MAXLEN 256
|
||||
|
||||
|
@ -190,7 +190,7 @@ static int podhd_dev_start(struct usb_line6_podhd *pod)
|
||||
ret = usb_control_msg_send(usbdev, 0,
|
||||
0x67, USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_OUT,
|
||||
0x11, 0,
|
||||
NULL, 0, LINE6_TIMEOUT * HZ, GFP_KERNEL);
|
||||
NULL, 0, LINE6_TIMEOUT, GFP_KERNEL);
|
||||
if (ret) {
|
||||
dev_err(pod->line6.ifcdev, "read request failed (error %d)\n", ret);
|
||||
goto exit;
|
||||
@ -200,7 +200,7 @@ static int podhd_dev_start(struct usb_line6_podhd *pod)
|
||||
ret = usb_control_msg_recv(usbdev, 0, 0x67,
|
||||
USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_IN,
|
||||
0x11, 0x0,
|
||||
init_bytes, 3, LINE6_TIMEOUT * HZ, GFP_KERNEL);
|
||||
init_bytes, 3, LINE6_TIMEOUT, GFP_KERNEL);
|
||||
if (ret) {
|
||||
dev_err(pod->line6.ifcdev,
|
||||
"receive length failed (error %d)\n", ret);
|
||||
@ -220,7 +220,7 @@ static int podhd_dev_start(struct usb_line6_podhd *pod)
|
||||
USB_REQ_SET_FEATURE,
|
||||
USB_TYPE_STANDARD | USB_RECIP_DEVICE | USB_DIR_OUT,
|
||||
1, 0,
|
||||
NULL, 0, LINE6_TIMEOUT * HZ, GFP_KERNEL);
|
||||
NULL, 0, LINE6_TIMEOUT, GFP_KERNEL);
|
||||
exit:
|
||||
return ret;
|
||||
}
|
||||
|
@ -128,7 +128,7 @@ static int toneport_send_cmd(struct usb_device *usbdev, int cmd1, int cmd2)
|
||||
|
||||
ret = usb_control_msg_send(usbdev, 0, 0x67,
|
||||
USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_OUT,
|
||||
cmd1, cmd2, NULL, 0, LINE6_TIMEOUT * HZ,
|
||||
cmd1, cmd2, NULL, 0, LINE6_TIMEOUT,
|
||||
GFP_KERNEL);
|
||||
|
||||
if (ret) {
|
||||
|
Loading…
Reference in New Issue
Block a user