|
@@ -853,7 +853,7 @@ static int acm_probe(struct usb_interface *intf,
|
|
|
u8 ac_management_function = 0;
|
|
|
u8 call_management_function = 0;
|
|
|
int call_interface_num = -1;
|
|
|
- int data_interface_num;
|
|
|
+ int data_interface_num = -1;
|
|
|
unsigned long quirks;
|
|
|
int num_rx_buf;
|
|
|
int i;
|
|
@@ -937,7 +937,11 @@ next_desc:
|
|
|
if (!union_header) {
|
|
|
if (call_interface_num > 0) {
|
|
|
dev_dbg(&intf->dev, "No union descriptor, using call management descriptor\n");
|
|
|
- data_interface = usb_ifnum_to_if(usb_dev, (data_interface_num = call_interface_num));
|
|
|
+ /* quirks for Droids MuIn LCD */
|
|
|
+ if (quirks & NO_DATA_INTERFACE)
|
|
|
+ data_interface = usb_ifnum_to_if(usb_dev, 0);
|
|
|
+ else
|
|
|
+ data_interface = usb_ifnum_to_if(usb_dev, (data_interface_num = call_interface_num));
|
|
|
control_interface = intf;
|
|
|
} else {
|
|
|
if (intf->cur_altsetting->desc.bNumEndpoints != 3) {
|
|
@@ -1535,6 +1539,11 @@ static const struct usb_device_id acm_ids[] = {
|
|
|
.driver_info = NOT_A_MODEM,
|
|
|
},
|
|
|
|
|
|
+ /* Support for Droids MuIn LCD */
|
|
|
+ { USB_DEVICE(0x04d8, 0x000b),
|
|
|
+ .driver_info = NO_DATA_INTERFACE,
|
|
|
+ },
|
|
|
+
|
|
|
/* control interfaces without any protocol set */
|
|
|
{ USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM,
|
|
|
USB_CDC_PROTO_NONE) },
|