media: redrat3: fix control-message timeouts
USB control-message timeouts are specified in milliseconds and should
specifically not vary with CONFIG_HZ.
Fixes: 2154be651b
("[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>
This commit is contained in:
Родитель
16394e998c
Коммит
2adc965c8b
|
@ -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);
|
||||
|
|
Загрузка…
Ссылка в новой задаче