| From 8c8171929116cc23f74743d99251eedadf62341a Mon Sep 17 00:00:00 2001 |
| From: Johan Hovold <johan@kernel.org> |
| Date: Mon, 25 Oct 2021 13:56:08 +0200 |
| Subject: mmc: vub300: fix control-message timeouts |
| |
| From: Johan Hovold <johan@kernel.org> |
| |
| commit 8c8171929116cc23f74743d99251eedadf62341a upstream. |
| |
| USB control-message timeouts are specified in milliseconds and should |
| specifically not vary with CONFIG_HZ. |
| |
| Fixes: 88095e7b473a ("mmc: Add new VUB300 USB-to-SD/SDIO/MMC driver") |
| Cc: stable@vger.kernel.org # 3.0 |
| Signed-off-by: Johan Hovold <johan@kernel.org> |
| Link: https://lore.kernel.org/r/20211025115608.5287-1-johan@kernel.org |
| Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/mmc/host/vub300.c | 18 +++++++++--------- |
| 1 file changed, 9 insertions(+), 9 deletions(-) |
| |
| --- a/drivers/mmc/host/vub300.c |
| +++ b/drivers/mmc/host/vub300.c |
| @@ -579,7 +579,7 @@ static void check_vub300_port_status(str |
| GET_SYSTEM_PORT_STATUS, |
| USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE, |
| 0x0000, 0x0000, &vub300->system_port_status, |
| - sizeof(vub300->system_port_status), HZ); |
| + sizeof(vub300->system_port_status), 1000); |
| if (sizeof(vub300->system_port_status) == retval) |
| new_system_port_status(vub300); |
| } |
| @@ -1245,7 +1245,7 @@ static void __download_offload_pseudocod |
| SET_INTERRUPT_PSEUDOCODE, |
| USB_DIR_OUT | USB_TYPE_VENDOR | |
| USB_RECIP_DEVICE, 0x0000, 0x0000, |
| - xfer_buffer, xfer_length, HZ); |
| + xfer_buffer, xfer_length, 1000); |
| kfree(xfer_buffer); |
| if (retval < 0) { |
| strncpy(vub300->vub_name, |
| @@ -1292,7 +1292,7 @@ static void __download_offload_pseudocod |
| SET_TRANSFER_PSEUDOCODE, |
| USB_DIR_OUT | USB_TYPE_VENDOR | |
| USB_RECIP_DEVICE, 0x0000, 0x0000, |
| - xfer_buffer, xfer_length, HZ); |
| + xfer_buffer, xfer_length, 1000); |
| kfree(xfer_buffer); |
| if (retval < 0) { |
| strncpy(vub300->vub_name, |
| @@ -1998,7 +1998,7 @@ static void __set_clock_speed(struct vub |
| usb_control_msg(vub300->udev, usb_sndctrlpipe(vub300->udev, 0), |
| SET_CLOCK_SPEED, |
| USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE, |
| - 0x00, 0x00, buf, buf_array_size, HZ); |
| + 0x00, 0x00, buf, buf_array_size, 1000); |
| if (retval != 8) { |
| dev_err(&vub300->udev->dev, "SET_CLOCK_SPEED" |
| " %dkHz failed with retval=%d\n", kHzClock, retval); |
| @@ -2020,14 +2020,14 @@ static void vub300_mmc_set_ios(struct mm |
| usb_control_msg(vub300->udev, usb_sndctrlpipe(vub300->udev, 0), |
| SET_SD_POWER, |
| USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE, |
| - 0x0000, 0x0000, NULL, 0, HZ); |
| + 0x0000, 0x0000, NULL, 0, 1000); |
| /* must wait for the VUB300 u-proc to boot up */ |
| msleep(600); |
| } else if ((ios->power_mode == MMC_POWER_UP) && !vub300->card_powered) { |
| usb_control_msg(vub300->udev, usb_sndctrlpipe(vub300->udev, 0), |
| SET_SD_POWER, |
| USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE, |
| - 0x0001, 0x0000, NULL, 0, HZ); |
| + 0x0001, 0x0000, NULL, 0, 1000); |
| msleep(600); |
| vub300->card_powered = 1; |
| } else if (ios->power_mode == MMC_POWER_ON) { |
| @@ -2288,14 +2288,14 @@ static int vub300_probe(struct usb_inter |
| GET_HC_INF0, |
| USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE, |
| 0x0000, 0x0000, &vub300->hc_info, |
| - sizeof(vub300->hc_info), HZ); |
| + sizeof(vub300->hc_info), 1000); |
| if (retval < 0) |
| goto error5; |
| retval = |
| usb_control_msg(vub300->udev, usb_sndctrlpipe(vub300->udev, 0), |
| SET_ROM_WAIT_STATES, |
| USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE, |
| - firmware_rom_wait_states, 0x0000, NULL, 0, HZ); |
| + firmware_rom_wait_states, 0x0000, NULL, 0, 1000); |
| if (retval < 0) |
| goto error5; |
| dev_info(&vub300->udev->dev, |
| @@ -2310,7 +2310,7 @@ static int vub300_probe(struct usb_inter |
| GET_SYSTEM_PORT_STATUS, |
| USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE, |
| 0x0000, 0x0000, &vub300->system_port_status, |
| - sizeof(vub300->system_port_status), HZ); |
| + sizeof(vub300->system_port_status), 1000); |
| if (retval < 0) { |
| goto error4; |
| } else if (sizeof(vub300->system_port_status) == retval) { |