| From cd1798a387825cc4a51282f5a611ad05bb1ad75f Mon Sep 17 00:00:00 2001 |
| From: Johan Hovold <johan@kernel.org> |
| Date: Mon, 25 Oct 2021 13:16:36 +0100 |
| Subject: media: flexcop-usb: fix control-message timeouts |
| |
| From: Johan Hovold <johan@kernel.org> |
| |
| commit cd1798a387825cc4a51282f5a611ad05bb1ad75f upstream. |
| |
| USB control-message timeouts are specified in milliseconds and should |
| specifically not vary with CONFIG_HZ. |
| |
| Note that the driver was multiplying some of the timeout values with HZ |
| twice resulting in 3000-second timeouts with HZ=1000. |
| |
| Also note that two of the timeout defines are currently unused. |
| |
| Fixes: 2154be651b90 ("[media] redrat3: new rc-core IR transceiver device driver") |
| Cc: stable@vger.kernel.org # 3.0 |
| Signed-off-by: Johan Hovold <johan@kernel.org> |
| Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> |
| Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/media/usb/b2c2/flexcop-usb.c | 10 +++++----- |
| drivers/media/usb/b2c2/flexcop-usb.h | 12 ++++++------ |
| 2 files changed, 11 insertions(+), 11 deletions(-) |
| |
| --- a/drivers/media/usb/b2c2/flexcop-usb.c |
| +++ b/drivers/media/usb/b2c2/flexcop-usb.c |
| @@ -86,7 +86,7 @@ static int flexcop_usb_readwrite_dw(stru |
| 0, |
| fc_usb->data, |
| sizeof(u32), |
| - B2C2_WAIT_FOR_OPERATION_RDW * HZ); |
| + B2C2_WAIT_FOR_OPERATION_RDW); |
| |
| if (ret != sizeof(u32)) { |
| err("error while %s dword from %d (%d).", read ? "reading" : |
| @@ -154,7 +154,7 @@ static int flexcop_usb_v8_memory_req(str |
| wIndex, |
| fc_usb->data, |
| buflen, |
| - nWaitTime * HZ); |
| + nWaitTime); |
| if (ret != buflen) |
| ret = -EIO; |
| |
| @@ -248,13 +248,13 @@ static int flexcop_usb_i2c_req(struct fl |
| /* DKT 020208 - add this to support special case of DiSEqC */ |
| case USB_FUNC_I2C_CHECKWRITE: |
| pipe = B2C2_USB_CTRL_PIPE_OUT; |
| - nWaitTime = 2; |
| + nWaitTime = 2000; |
| request_type |= USB_DIR_OUT; |
| break; |
| case USB_FUNC_I2C_READ: |
| case USB_FUNC_I2C_REPEATREAD: |
| pipe = B2C2_USB_CTRL_PIPE_IN; |
| - nWaitTime = 2; |
| + nWaitTime = 2000; |
| request_type |= USB_DIR_IN; |
| break; |
| default: |
| @@ -281,7 +281,7 @@ static int flexcop_usb_i2c_req(struct fl |
| wIndex, |
| fc_usb->data, |
| buflen, |
| - nWaitTime * HZ); |
| + nWaitTime); |
| |
| if (ret != buflen) |
| ret = -EIO; |
| --- a/drivers/media/usb/b2c2/flexcop-usb.h |
| +++ b/drivers/media/usb/b2c2/flexcop-usb.h |
| @@ -91,13 +91,13 @@ typedef enum { |
| UTILITY_SRAM_TESTVERIFY = 0x16, |
| } flexcop_usb_utility_function_t; |
| |
| -#define B2C2_WAIT_FOR_OPERATION_RW (1*HZ) |
| -#define B2C2_WAIT_FOR_OPERATION_RDW (3*HZ) |
| -#define B2C2_WAIT_FOR_OPERATION_WDW (1*HZ) |
| +#define B2C2_WAIT_FOR_OPERATION_RW 1000 |
| +#define B2C2_WAIT_FOR_OPERATION_RDW 3000 |
| +#define B2C2_WAIT_FOR_OPERATION_WDW 1000 |
| |
| -#define B2C2_WAIT_FOR_OPERATION_V8READ (3*HZ) |
| -#define B2C2_WAIT_FOR_OPERATION_V8WRITE (3*HZ) |
| -#define B2C2_WAIT_FOR_OPERATION_V8FLASH (3*HZ) |
| +#define B2C2_WAIT_FOR_OPERATION_V8READ 3000 |
| +#define B2C2_WAIT_FOR_OPERATION_V8WRITE 3000 |
| +#define B2C2_WAIT_FOR_OPERATION_V8FLASH 3000 |
| |
| typedef enum { |
| V8_MEMORY_PAGE_DVB_CI = 0x20, |