Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c9876947 authored by Ladislav Michl's avatar Ladislav Michl Committed by Bartlomiej Zolnierkiewicz
Browse files

video: udlfb: Fix read EDID timeout



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: 18dffdf8 ("staging: udlfb: enhance EDID and mode handling support")
Signed-off-by: default avatarLadislav Michl <ladis@linux-mips.org>
Cc: Bernie Thompson <bernie@plugable.com>
Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
parent 1e7d4beb
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -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;
		}