| From f4000b58b64344871d7b27c05e73932f137cfef6 Mon Sep 17 00:00:00 2001 |
| From: Johan Hovold <johan@kernel.org> |
| Date: Mon, 25 Oct 2021 14:11:42 +0200 |
| Subject: ALSA: line6: fix control and interrupt message timeouts |
| |
| From: Johan Hovold <johan@kernel.org> |
| |
| commit f4000b58b64344871d7b27c05e73932f137cfef6 upstream. |
| |
| 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> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| sound/usb/line6/driver.c | 14 +++++++------- |
| sound/usb/line6/driver.h | 2 +- |
| sound/usb/line6/podhd.c | 6 +++--- |
| sound/usb/line6/toneport.c | 2 +- |
| 4 files changed, 12 insertions(+), 12 deletions(-) |
| |
| --- a/sound/usb/line6/driver.c |
| +++ b/sound/usb/line6/driver.c |
| @@ -113,12 +113,12 @@ static int line6_send_raw_message(struct |
| 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) { |
| @@ -350,7 +350,7 @@ int line6_read_data(struct usb_line6 *li |
| ret = usb_control_msg(usbdev, usb_sndctrlpipe(usbdev, 0), 0x67, |
| USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_OUT, |
| (datalen << 8) | 0x21, address, |
| - NULL, 0, LINE6_TIMEOUT * HZ); |
| + NULL, 0, LINE6_TIMEOUT); |
| |
| if (ret < 0) { |
| dev_err(line6->ifcdev, "read request failed (error %d)\n", ret); |
| @@ -365,7 +365,7 @@ int line6_read_data(struct usb_line6 *li |
| USB_TYPE_VENDOR | USB_RECIP_DEVICE | |
| USB_DIR_IN, |
| 0x0012, 0x0000, len, 1, |
| - LINE6_TIMEOUT * HZ); |
| + LINE6_TIMEOUT); |
| if (ret < 0) { |
| dev_err(line6->ifcdev, |
| "receive length failed (error %d)\n", ret); |
| @@ -393,7 +393,7 @@ int line6_read_data(struct usb_line6 *li |
| ret = usb_control_msg(usbdev, usb_rcvctrlpipe(usbdev, 0), 0x67, |
| USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_IN, |
| 0x0013, 0x0000, data, datalen, |
| - LINE6_TIMEOUT * HZ); |
| + LINE6_TIMEOUT); |
| |
| if (ret < 0) |
| dev_err(line6->ifcdev, "read failed (error %d)\n", ret); |
| @@ -425,7 +425,7 @@ int line6_write_data(struct usb_line6 *l |
| ret = usb_control_msg(usbdev, usb_sndctrlpipe(usbdev, 0), 0x67, |
| USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_OUT, |
| 0x0022, address, data, datalen, |
| - LINE6_TIMEOUT * HZ); |
| + LINE6_TIMEOUT); |
| |
| if (ret < 0) { |
| dev_err(line6->ifcdev, |
| @@ -441,7 +441,7 @@ int line6_write_data(struct usb_line6 *l |
| USB_TYPE_VENDOR | USB_RECIP_DEVICE | |
| USB_DIR_IN, |
| 0x0012, 0x0000, |
| - status, 1, LINE6_TIMEOUT * HZ); |
| + status, 1, LINE6_TIMEOUT); |
| |
| if (ret < 0) { |
| dev_err(line6->ifcdev, |
| --- a/sound/usb/line6/driver.h |
| +++ b/sound/usb/line6/driver.h |
| @@ -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 |
| |
| --- a/sound/usb/line6/podhd.c |
| +++ b/sound/usb/line6/podhd.c |
| @@ -190,7 +190,7 @@ static int podhd_dev_start(struct usb_li |
| ret = usb_control_msg(usbdev, usb_sndctrlpipe(usbdev, 0), |
| 0x67, USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_OUT, |
| 0x11, 0, |
| - NULL, 0, LINE6_TIMEOUT * HZ); |
| + NULL, 0, LINE6_TIMEOUT); |
| if (ret < 0) { |
| 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_li |
| ret = usb_control_msg(usbdev, usb_rcvctrlpipe(usbdev, 0), 0x67, |
| USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_IN, |
| 0x11, 0x0, |
| - init_bytes, 3, LINE6_TIMEOUT * HZ); |
| + init_bytes, 3, LINE6_TIMEOUT); |
| if (ret < 0) { |
| dev_err(pod->line6.ifcdev, |
| "receive length failed (error %d)\n", ret); |
| @@ -220,7 +220,7 @@ static int podhd_dev_start(struct usb_li |
| USB_REQ_SET_FEATURE, |
| USB_TYPE_STANDARD | USB_RECIP_DEVICE | USB_DIR_OUT, |
| 1, 0, |
| - NULL, 0, LINE6_TIMEOUT * HZ); |
| + NULL, 0, LINE6_TIMEOUT); |
| exit: |
| kfree(init_bytes); |
| return ret; |
| --- a/sound/usb/line6/toneport.c |
| +++ b/sound/usb/line6/toneport.c |
| @@ -128,7 +128,7 @@ static int toneport_send_cmd(struct usb_ |
| |
| ret = usb_control_msg(usbdev, usb_sndctrlpipe(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); |
| |
| if (ret < 0) { |
| dev_err(&usbdev->dev, "send failed (error %d)\n", ret); |