Re: USBid/interfaces for Huawei E398

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wednesday 07 December 2011 15:43:45 Bjørn Mork wrote:
> Alex Hermann <alex-lists@xxxxxxxxx> writes:
> > the E398 shares an usb id with the E353, but seems to use different 
> > interfaces. The ones already present in the option driver don't autoload the 
> > driver for this device.
> > Bus 002 Device 008: ID 12d1:1506 Huawei Technologies Co., Ltd. E398 
> > LTE/UMTS/GSM Modem/Networkcard
> 
> Do you happen to know what usb_modeswitch command you used to switch the
> device to this mode?  I happen to ha a similar device (E392) using the
> exact same USB IDs, but I have not seen any NCM descriptor there (yet).

I just copied one from a similar device, as it worked for ppp, i looked
no further.

MessageContent="55534243123456780000000000000011062000000100000000000000000000"


> The Windows driver indicates that this is a CDC NCM (?) interface:

> It would be extremely interesting to know if you are able to use the
> cdc_ncm class driver on this card, though.  It might need some
> modifications to allow it to load for a vendor specific interface.
> Haven't looket at the details.

I tried to get it to work with the following patch. I allowed the driver to 
continue even if the device was already bound, just to see what would happen. 
It did seem to parse the descriptor just fine, but the device didn't accept 
any AT+NDISDUP commands on the serial devices.

diff --git a/drivers/net/usb/cdc_ncm.c b/drivers/net/usb/cdc_ncm.c
index f06fb78..6470e66 100644
--- a/drivers/net/usb/cdc_ncm.c
+++ b/drivers/net/usb/cdc_ncm.c
@@ -145,6 +145,10 @@ static const struct usb_device_id cdc_devs[] = {
 		USB_CDC_SUBCLASS_NCM, USB_CDC_PROTO_NONE),
 		.driver_info = (unsigned long)&cdc_ncm_info,
 	},
+	{ USB_DEVICE_AND_INTERFACE_INFO(0x12d1,
+		0x1506, 0xff, 0x02, 0x16),
+		.driver_info = (unsigned long)&cdc_ncm_info,
+	},  /* E398 */
 	{
 	},
 };
@@ -545,7 +549,7 @@ advance:
 
 	/* claim interfaces, if any */
 	temp = usb_driver_claim_interface(driver, ctx->data, dev);
-	if (temp)
+	if (temp && temp!= -EBUSY)
 		goto error;
 
 	iface_no = ctx->data->cur_altsetting->desc.bInterfaceNumber;



> So I guess you should add something like
>        { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E353, 0xff, 0x02, 0x01) },
>        { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E353, 0xff, 0x02, 0x02) },
>        { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E353, 0xff, 0x02, 0x03) },
> to the option driver.

Thanks, these work ok. i'll send a patch to the list adding these shortly.
-- 
mvg,

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


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux