diff options
Diffstat (limited to 'drivers/usb/serial/visor.c')
| -rw-r--r-- | drivers/usb/serial/visor.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/usb/serial/visor.c b/drivers/usb/serial/visor.c index 15a5d89b7f39..1c11959a7d58 100644 --- a/drivers/usb/serial/visor.c +++ b/drivers/usb/serial/visor.c | |||
| @@ -27,6 +27,7 @@ | |||
| 27 | #include <linux/uaccess.h> | 27 | #include <linux/uaccess.h> |
| 28 | #include <linux/usb.h> | 28 | #include <linux/usb.h> |
| 29 | #include <linux/usb/serial.h> | 29 | #include <linux/usb/serial.h> |
| 30 | #include <linux/usb/cdc.h> | ||
| 30 | #include "visor.h" | 31 | #include "visor.h" |
| 31 | 32 | ||
| 32 | /* | 33 | /* |
| @@ -479,6 +480,17 @@ static int visor_probe(struct usb_serial *serial, | |||
| 479 | 480 | ||
| 480 | dbg("%s", __func__); | 481 | dbg("%s", __func__); |
| 481 | 482 | ||
| 483 | /* | ||
| 484 | * some Samsung Android phones in modem mode have the same ID | ||
| 485 | * as SPH-I500, but they are ACM devices, so dont bind to them | ||
| 486 | */ | ||
| 487 | if (id->idVendor == SAMSUNG_VENDOR_ID && | ||
| 488 | id->idProduct == SAMSUNG_SPH_I500_ID && | ||
| 489 | serial->dev->descriptor.bDeviceClass == USB_CLASS_COMM && | ||
| 490 | serial->dev->descriptor.bDeviceSubClass == | ||
| 491 | USB_CDC_SUBCLASS_ACM) | ||
| 492 | return -ENODEV; | ||
| 493 | |||
| 482 | if (serial->dev->actconfig->desc.bConfigurationValue != 1) { | 494 | if (serial->dev->actconfig->desc.bConfigurationValue != 1) { |
| 483 | dev_err(&serial->dev->dev, "active config #%d != 1 ??\n", | 495 | dev_err(&serial->dev->dev, "active config #%d != 1 ??\n", |
| 484 | serial->dev->actconfig->desc.bConfigurationValue); | 496 | serial->dev->actconfig->desc.bConfigurationValue); |
