.. | .. |
---|
3014 | 3014 | struct usb_device *dev = interface_to_usbdev(intf); |
---|
3015 | 3015 | struct sisusb_usb_data *sisusb; |
---|
3016 | 3016 | int retval = 0, i; |
---|
| 3017 | + static const u8 ep_addresses[] = { |
---|
| 3018 | + SISUSB_EP_GFX_IN | USB_DIR_IN, |
---|
| 3019 | + SISUSB_EP_GFX_OUT | USB_DIR_OUT, |
---|
| 3020 | + SISUSB_EP_GFX_BULK_OUT | USB_DIR_OUT, |
---|
| 3021 | + SISUSB_EP_GFX_LBULK_OUT | USB_DIR_OUT, |
---|
| 3022 | + SISUSB_EP_BRIDGE_IN | USB_DIR_IN, |
---|
| 3023 | + SISUSB_EP_BRIDGE_OUT | USB_DIR_OUT, |
---|
| 3024 | + 0}; |
---|
| 3025 | + |
---|
| 3026 | + /* Are the expected endpoints present? */ |
---|
| 3027 | + if (!usb_check_bulk_endpoints(intf, ep_addresses)) { |
---|
| 3028 | + dev_err(&intf->dev, "Invalid USB2VGA device\n"); |
---|
| 3029 | + return -EINVAL; |
---|
| 3030 | + } |
---|
3017 | 3031 | |
---|
3018 | 3032 | dev_info(&dev->dev, "USB2VGA dongle found at address %d\n", |
---|
3019 | 3033 | dev->devnum); |
---|