hc
2024-02-20 102a0743326a03cd1a1202ceda21e175b7d3575c
kernel/drivers/video/fbdev/udlfb.c
....@@ -27,6 +27,8 @@
2727 #include <video/udlfb.h>
2828 #include "edid.h"
2929
30
+#define OUT_EP_NUM 1 /* The endpoint number we will use */
31
+
3032 static const struct fb_fix_screeninfo dlfb_fix = {
3133 .id = "udlfb",
3234 .type = FB_TYPE_PACKED_PIXELS,
....@@ -1651,7 +1653,7 @@
16511653 struct fb_info *info;
16521654 int retval;
16531655 struct usb_device *usbdev = interface_to_usbdev(intf);
1654
- struct usb_endpoint_descriptor *out;
1656
+ static u8 out_ep[] = {OUT_EP_NUM + USB_DIR_OUT, 0};
16551657
16561658 /* usb initialization */
16571659 dlfb = kzalloc(sizeof(*dlfb), GFP_KERNEL);
....@@ -1665,9 +1667,9 @@
16651667 dlfb->udev = usb_get_dev(usbdev);
16661668 usb_set_intfdata(intf, dlfb);
16671669
1668
- retval = usb_find_common_endpoints(intf->cur_altsetting, NULL, &out, NULL, NULL);
1669
- if (retval) {
1670
- dev_err(&intf->dev, "Device should have at lease 1 bulk endpoint!\n");
1670
+ if (!usb_check_bulk_endpoints(intf, out_ep)) {
1671
+ dev_err(&intf->dev, "Invalid DisplayLink device!\n");
1672
+ retval = -EINVAL;
16711673 goto error;
16721674 }
16731675
....@@ -1926,7 +1928,8 @@
19261928 }
19271929
19281930 /* urb->transfer_buffer_length set to actual before submit */
1929
- usb_fill_bulk_urb(urb, dlfb->udev, usb_sndbulkpipe(dlfb->udev, 1),
1931
+ usb_fill_bulk_urb(urb, dlfb->udev,
1932
+ usb_sndbulkpipe(dlfb->udev, OUT_EP_NUM),
19301933 buf, size, dlfb_urb_completion, unode);
19311934 urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
19321935