| From foo@baz Mon Dec 18 15:03:25 CET 2017 |
| From: Ladislav Michl <ladis@linux-mips.org> |
| Date: Thu, 9 Nov 2017 18:09:30 +0100 |
| Subject: video: udlfb: Fix read EDID timeout |
| |
| From: Ladislav Michl <ladis@linux-mips.org> |
| |
| |
| [ Upstream commit c98769475575c8a585f5b3952f4b5f90266f699b ] |
| |
| While usb_control_msg function expects timeout in miliseconds, a value |
| of HZ is used. Replace it with USB_CTRL_GET_TIMEOUT and also fix error |
| message which looks like: |
| udlfb: Read EDID byte 78 failed err ffffff92 |
| as error is either negative errno or number of bytes transferred use %d |
| format specifier. |
| |
| Returned EDID is in second byte, so return error when less than two bytes |
| are received. |
| |
| Fixes: 18dffdf8913a ("staging: udlfb: enhance EDID and mode handling support") |
| Signed-off-by: Ladislav Michl <ladis@linux-mips.org> |
| Cc: Bernie Thompson <bernie@plugable.com> |
| Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> |
| Signed-off-by: Sasha Levin <alexander.levin@verizon.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/video/fbdev/udlfb.c | 10 +++++----- |
| 1 file changed, 5 insertions(+), 5 deletions(-) |
| |
| --- a/drivers/video/fbdev/udlfb.c |
| +++ b/drivers/video/fbdev/udlfb.c |
| @@ -769,11 +769,11 @@ static int dlfb_get_edid(struct dlfb_dat |
| |
| for (i = 0; i < len; i++) { |
| ret = usb_control_msg(dev->udev, |
| - usb_rcvctrlpipe(dev->udev, 0), (0x02), |
| - (0x80 | (0x02 << 5)), i << 8, 0xA1, rbuf, 2, |
| - HZ); |
| - if (ret < 1) { |
| - pr_err("Read EDID byte %d failed err %x\n", i, ret); |
| + usb_rcvctrlpipe(dev->udev, 0), 0x02, |
| + (0x80 | (0x02 << 5)), i << 8, 0xA1, |
| + rbuf, 2, USB_CTRL_GET_TIMEOUT); |
| + if (ret < 2) { |
| + pr_err("Read EDID byte %d failed: %d\n", i, ret); |
| i--; |
| break; |
| } |