OSDN Git Service

media: redrat3: fix control-message timeouts
authorJohan Hovold <johan@kernel.org>
Mon, 25 Oct 2021 12:16:35 +0000 (13:16 +0100)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Fri, 19 Nov 2021 06:04:16 +0000 (06:04 +0000)
USB control-message timeouts are specified in milliseconds and should
specifically not vary with CONFIG_HZ.

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>
drivers/media/rc/redrat3.c

index ac85464..cb22316 100644 (file)
@@ -404,7 +404,7 @@ static int redrat3_send_cmd(int cmd, struct redrat3_dev *rr3)
        udev = rr3->udev;
        res = usb_control_msg(udev, usb_rcvctrlpipe(udev, 0), cmd,
                              USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_IN,
-                             0x0000, 0x0000, data, sizeof(u8), HZ * 10);
+                             0x0000, 0x0000, data, sizeof(u8), 10000);
 
        if (res < 0) {
                dev_err(rr3->dev, "%s: Error sending rr3 cmd res %d, data %d",
@@ -480,7 +480,7 @@ static u32 redrat3_get_timeout(struct redrat3_dev *rr3)
        pipe = usb_rcvctrlpipe(rr3->udev, 0);
        ret = usb_control_msg(rr3->udev, pipe, RR3_GET_IR_PARAM,
                              USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_IN,
-                             RR3_IR_IO_SIG_TIMEOUT, 0, tmp, len, HZ * 5);
+                             RR3_IR_IO_SIG_TIMEOUT, 0, tmp, len, 5000);
        if (ret != len)
                dev_warn(rr3->dev, "Failed to read timeout from hardware\n");
        else {
@@ -510,7 +510,7 @@ static int redrat3_set_timeout(struct rc_dev *rc_dev, unsigned int timeoutus)
        ret = usb_control_msg(udev, usb_sndctrlpipe(udev, 0), RR3_SET_IR_PARAM,
                     USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_OUT,
                     RR3_IR_IO_SIG_TIMEOUT, 0, timeout, sizeof(*timeout),
-                    HZ * 25);
+                    25000);
        dev_dbg(dev, "set ir parm timeout %d ret 0x%02x\n",
                                                be32_to_cpu(*timeout), ret);
 
@@ -542,32 +542,32 @@ static void redrat3_reset(struct redrat3_dev *rr3)
        *val = 0x01;
        rc = usb_control_msg(udev, rxpipe, RR3_RESET,
                             USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_IN,
-                            RR3_CPUCS_REG_ADDR, 0, val, len, HZ * 25);
+                            RR3_CPUCS_REG_ADDR, 0, val, len, 25000);
        dev_dbg(dev, "reset returned 0x%02x\n", rc);
 
        *val = length_fuzz;
        rc = usb_control_msg(udev, txpipe, RR3_SET_IR_PARAM,
                             USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_OUT,
-                            RR3_IR_IO_LENGTH_FUZZ, 0, val, len, HZ * 25);
+                            RR3_IR_IO_LENGTH_FUZZ, 0, val, len, 25000);
        dev_dbg(dev, "set ir parm len fuzz %d rc 0x%02x\n", *val, rc);
 
        *val = (65536 - (minimum_pause * 2000)) / 256;
        rc = usb_control_msg(udev, txpipe, RR3_SET_IR_PARAM,
                             USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_OUT,
-                            RR3_IR_IO_MIN_PAUSE, 0, val, len, HZ * 25);
+                            RR3_IR_IO_MIN_PAUSE, 0, val, len, 25000);
        dev_dbg(dev, "set ir parm min pause %d rc 0x%02x\n", *val, rc);
 
        *val = periods_measure_carrier;
        rc = usb_control_msg(udev, txpipe, RR3_SET_IR_PARAM,
                             USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_OUT,
-                            RR3_IR_IO_PERIODS_MF, 0, val, len, HZ * 25);
+                            RR3_IR_IO_PERIODS_MF, 0, val, len, 25000);
        dev_dbg(dev, "set ir parm periods measure carrier %d rc 0x%02x", *val,
                                                                        rc);
 
        *val = RR3_DRIVER_MAXLENS;
        rc = usb_control_msg(udev, txpipe, RR3_SET_IR_PARAM,
                             USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_OUT,
-                            RR3_IR_IO_MAX_LENGTHS, 0, val, len, HZ * 25);
+                            RR3_IR_IO_MAX_LENGTHS, 0, val, len, 25000);
        dev_dbg(dev, "set ir parm max lens %d rc 0x%02x\n", *val, rc);
 
        kfree(val);
@@ -585,7 +585,7 @@ static void redrat3_get_firmware_rev(struct redrat3_dev *rr3)
        rc = usb_control_msg(rr3->udev, usb_rcvctrlpipe(rr3->udev, 0),
                             RR3_FW_VERSION,
                             USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_IN,
-                            0, 0, buffer, RR3_FW_VERSION_LEN, HZ * 5);
+                            0, 0, buffer, RR3_FW_VERSION_LEN, 5000);
 
        if (rc >= 0)
                dev_info(rr3->dev, "Firmware rev: %s", buffer);
@@ -825,14 +825,14 @@ static int redrat3_transmit_ir(struct rc_dev *rcdev, unsigned *txbuf,
 
        pipe = usb_sndbulkpipe(rr3->udev, rr3->ep_out->bEndpointAddress);
        ret = usb_bulk_msg(rr3->udev, pipe, irdata,
-                           sendbuf_len, &ret_len, 10 * HZ);
+                           sendbuf_len, &ret_len, 10000);
        dev_dbg(dev, "sent %d bytes, (ret %d)\n", ret_len, ret);
 
        /* now tell the hardware to transmit what we sent it */
        pipe = usb_rcvctrlpipe(rr3->udev, 0);
        ret = usb_control_msg(rr3->udev, pipe, RR3_TX_SEND_SIGNAL,
                              USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_IN,
-                             0, 0, irdata, 2, HZ * 10);
+                             0, 0, irdata, 2, 10000);
 
        if (ret < 0)
                dev_err(dev, "Error: control msg send failed, rc %d\n", ret);