.. | .. |
---|
27 | 27 | #include <video/udlfb.h> |
---|
28 | 28 | #include "edid.h" |
---|
29 | 29 | |
---|
| 30 | +#define OUT_EP_NUM 1 /* The endpoint number we will use */ |
---|
| 31 | + |
---|
30 | 32 | static const struct fb_fix_screeninfo dlfb_fix = { |
---|
31 | 33 | .id = "udlfb", |
---|
32 | 34 | .type = FB_TYPE_PACKED_PIXELS, |
---|
.. | .. |
---|
1651 | 1653 | struct fb_info *info; |
---|
1652 | 1654 | int retval; |
---|
1653 | 1655 | 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}; |
---|
1655 | 1657 | |
---|
1656 | 1658 | /* usb initialization */ |
---|
1657 | 1659 | dlfb = kzalloc(sizeof(*dlfb), GFP_KERNEL); |
---|
.. | .. |
---|
1665 | 1667 | dlfb->udev = usb_get_dev(usbdev); |
---|
1666 | 1668 | usb_set_intfdata(intf, dlfb); |
---|
1667 | 1669 | |
---|
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; |
---|
1671 | 1673 | goto error; |
---|
1672 | 1674 | } |
---|
1673 | 1675 | |
---|
.. | .. |
---|
1926 | 1928 | } |
---|
1927 | 1929 | |
---|
1928 | 1930 | /* 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), |
---|
1930 | 1933 | buf, size, dlfb_urb_completion, unode); |
---|
1931 | 1934 | urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP; |
---|
1932 | 1935 | |
---|