[PATCH v2] qcserial: Add support for HP lt4112 LTE/HSPA+ Gobi 4G Modem

2014-11-16 Thread Martin Hauke
Added new device layout DEVICE_HWI and also added the USB VID/PID for the
HP lt4112 LTE/HSPA+ Gobi 4G Modem (Huawei me906e)

Signed-off-by: Martin Hauke mar...@gmx.de
---
 drivers/usb/serial/qcserial.c | 32 
 1 file changed, 32 insertions(+)

diff --git a/drivers/usb/serial/qcserial.c b/drivers/usb/serial/qcserial.c
index b2aa003..3a78384 100644
--- a/drivers/usb/serial/qcserial.c
+++ b/drivers/usb/serial/qcserial.c
@@ -27,12 +27,15 @@ enum qcserial_layouts {
QCSERIAL_G2K = 0,   /* Gobi 2000 */
QCSERIAL_G1K = 1,   /* Gobi 1000 */
QCSERIAL_SWI = 2,   /* Sierra Wireless */
+   QCSERIAL_HWI = 3,   /* Huawei */
 };
 
 #define DEVICE_G1K(v, p) \
USB_DEVICE(v, p), .driver_info = QCSERIAL_G1K
 #define DEVICE_SWI(v, p) \
USB_DEVICE(v, p), .driver_info = QCSERIAL_SWI
+#define DEVICE_HWI(v, p) \
+   USB_DEVICE(v, p), .driver_info = QCSERIAL_HWI
 
 static const struct usb_device_id id_table[] = {
/* Gobi 1000 devices */
@@ -157,6 +160,9 @@ static const struct usb_device_id id_table[] = {
{DEVICE_SWI(0x413c, 0x81a8)},   /* Dell Wireless 5808 Gobi(TM) 4G LTE 
Mobile Broadband Card */
{DEVICE_SWI(0x413c, 0x81a9)},   /* Dell Wireless 5808e Gobi(TM) 4G LTE 
Mobile Broadband Card */
 
+   /* Huawei devices */
+   {DEVICE_HWI(0x03f0, 0x581d)},   /* HP lt4112 LTE/HSPA+ Gobi 4G Modem 
(Huawei me906e) */
+
{ } /* Terminating entry */
 };
 MODULE_DEVICE_TABLE(usb, id_table);
@@ -286,6 +292,32 @@ static int qcprobe(struct usb_serial *serial, const struct 
usb_device_id *id)
altsetting = -1;
break;
}
+   case QCSERIAL_HWI:
+   /*
+* Huawei layout:
+* 0: AT-capable modem port
+* 1: DM/DIAG
+* 2: AT-capable modem port
+* 3: CCID-compatible PCSC interface
+* 4: QMI/net
+* 5: NMEA
+*/
+   switch (ifnum) {
+   case 0:
+   case 2:
+   dev_dbg(dev, Modem port found\n);
+   break;
+   case 1:
+   dev_dbg(dev, DM/DIAG interface found\n);
+   break;
+   case 5:
+   dev_dbg(dev, NMEA GPS interface found\n);
+   break;
+   default:
+   /* don't claim any unsupported interface */
+   altsetting = -1;
+   break;
+   }
break;
default:
dev_err(dev, unsupported device layout type: %lu\n,
-- 
2.1.2

--
To unsubscribe from this list: send the line unsubscribe linux-usb in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2] qcserial: Add support for HP lt4112 LTE/HSPA+ Gobi 4G Modem

2014-11-16 Thread Sergei Shtylyov

Hello.

On 11/16/2014 09:54 PM, Martin Hauke wrote:


Added new device layout DEVICE_HWI and also added the USB VID/PID for the
HP lt4112 LTE/HSPA+ Gobi 4G Modem (Huawei me906e)



Signed-off-by: Martin Hauke mar...@gmx.de
---
  drivers/usb/serial/qcserial.c | 32 
  1 file changed, 32 insertions(+)



diff --git a/drivers/usb/serial/qcserial.c b/drivers/usb/serial/qcserial.c
index b2aa003..3a78384 100644
--- a/drivers/usb/serial/qcserial.c
+++ b/drivers/usb/serial/qcserial.c

[...]

@@ -286,6 +292,32 @@ static int qcprobe(struct usb_serial *serial, const struct 
usb_device_id *id)
altsetting = -1;
break;
}


   Are you sure there shouldn't be *break* here?


+   case QCSERIAL_HWI:
+   /*
+* Huawei layout:
+* 0: AT-capable modem port
+* 1: DM/DIAG
+* 2: AT-capable modem port
+* 3: CCID-compatible PCSC interface
+* 4: QMI/net
+* 5: NMEA
+*/
+   switch (ifnum) {
+   case 0:
+   case 2:
+   dev_dbg(dev, Modem port found\n);
+   break;
+   case 1:
+   dev_dbg(dev, DM/DIAG interface found\n);
+   break;
+   case 5:
+   dev_dbg(dev, NMEA GPS interface found\n);
+   break;
+   default:
+   /* don't claim any unsupported interface */
+   altsetting = -1;
+   break;
+   }
break;


WBR, Sergei

--
To unsubscribe from this list: send the line unsubscribe linux-usb in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html