diff mbox

video: udlfb: Fix read EDID timeout

Message ID 20171102110216.fw4gqa6zkhsofl3o@lenoch (mailing list archive)
State New, archived
Headers show

Commit Message

Ladislav Michl Nov. 2, 2017, 11:02 a.m. UTC
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.

Retuned 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>
---
 drivers/video/fbdev/udlfb.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

Comments

Bartlomiej Zolnierkiewicz Nov. 9, 2017, 1:49 p.m. UTC | #1
On Thursday, November 02, 2017 12:02:16 PM Ladislav Michl wrote:
> 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.
> 
> Retuned 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>

Patch queued for 4.15, thanks.

Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics

--
To unsubscribe from this list: send the line "unsubscribe linux-fbdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/video/fbdev/udlfb.c b/drivers/video/fbdev/udlfb.c
index ef08a104fb42..d44f14242016 100644
--- a/drivers/video/fbdev/udlfb.c
+++ b/drivers/video/fbdev/udlfb.c
@@ -769,11 +769,11 @@  static int dlfb_get_edid(struct dlfb_data *dev, char *edid, int len)
 
 	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;
 		}