diff mbox series

[2/2] USB: serial: option: add support for docomo L-03F

Message ID 20220914025541.1018233-3-chris.packham@alliedtelesis.co.nz (mailing list archive)
State New, archived
Headers show
Series USB: serial: option: add NetIndex UX302NC and docomo L-03F | expand

Commit Message

Chris Packham Sept. 14, 2022, 2:55 a.m. UTC
Add support for the docomo L-03F modem.

Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
---
 drivers/usb/serial/option.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Lars Melin Sept. 14, 2022, 4:10 a.m. UTC | #1
On 9/14/2022 09:55, Chris Packham wrote:
> Add support for the docomo L-03F modem.
> 
> Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
> ---
>   drivers/usb/serial/option.c | 2 ++
>   1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
> index 2065f0fb2fa0..14eaff50820b 100644
> --- a/drivers/usb/serial/option.c
> +++ b/drivers/usb/serial/option.c
> @@ -527,6 +527,7 @@ static void option_instat_callback(struct urb *urb);
>   /* LG products */
>   #define LG_VENDOR_ID				0x1004
>   #define LG_PRODUCT_L02C				0x618f
> +#define LG_PRODUCT_L03F				0x6366
>   
>   /* MediaTek products */
>   #define MEDIATEK_VENDOR_ID			0x0e8d
> @@ -2079,6 +2080,7 @@ static const struct usb_device_id option_ids[] = {
>   	{ USB_DEVICE_AND_INTERFACE_INFO(VIETTEL_VENDOR_ID, VIETTEL_PRODUCT_VT1000, 0xff, 0xff, 0xff) },
>   	{ USB_DEVICE_AND_INTERFACE_INFO(ZD_VENDOR_ID, ZD_PRODUCT_7000, 0xff, 0xff, 0xff) },
>   	{ USB_DEVICE(LG_VENDOR_ID, LG_PRODUCT_L02C) }, /* docomo L-02C modem */
> +	{ USB_DEVICE(LG_VENDOR_ID, LG_PRODUCT_L03F) }, /* docomo L-03F modem */
>   	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, 0x00a1, 0xff, 0x00, 0x00) },
>   	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, 0x00a1, 0xff, 0x02, 0x01) },
>   	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, 0x00a2, 0xff, 0x00, 0x00) },


Hi,
this doesn't seem to be correct. Since this is a LTE CAT3 highspeed 
device and the modem manual mentions MS Win NDIS driver then one 
interface is likely to be a QMI interface which you must blacklist in 
the option driver.
Please provide a usb-devices or verbose lsusb output for the modem.

thanks
Lars
Chris Packham Sept. 14, 2022, 4:18 a.m. UTC | #2
On 14/09/22 16:10, Lars Melin wrote:
> On 9/14/2022 09:55, Chris Packham wrote:
>> Add support for the docomo L-03F modem.
>>
>> Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
>> ---
>>   drivers/usb/serial/option.c | 2 ++
>>   1 file changed, 2 insertions(+)
>>
>> diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
>> index 2065f0fb2fa0..14eaff50820b 100644
>> --- a/drivers/usb/serial/option.c
>> +++ b/drivers/usb/serial/option.c
>> @@ -527,6 +527,7 @@ static void option_instat_callback(struct urb *urb);
>>   /* LG products */
>>   #define LG_VENDOR_ID                0x1004
>>   #define LG_PRODUCT_L02C                0x618f
>> +#define LG_PRODUCT_L03F                0x6366
>>     /* MediaTek products */
>>   #define MEDIATEK_VENDOR_ID            0x0e8d
>> @@ -2079,6 +2080,7 @@ static const struct usb_device_id option_ids[] = {
>>       { USB_DEVICE_AND_INTERFACE_INFO(VIETTEL_VENDOR_ID, 
>> VIETTEL_PRODUCT_VT1000, 0xff, 0xff, 0xff) },
>>       { USB_DEVICE_AND_INTERFACE_INFO(ZD_VENDOR_ID, ZD_PRODUCT_7000, 
>> 0xff, 0xff, 0xff) },
>>       { USB_DEVICE(LG_VENDOR_ID, LG_PRODUCT_L02C) }, /* docomo L-02C 
>> modem */
>> +    { USB_DEVICE(LG_VENDOR_ID, LG_PRODUCT_L03F) }, /* docomo L-03F 
>> modem */
>>       { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, 0x00a1, 
>> 0xff, 0x00, 0x00) },
>>       { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, 0x00a1, 
>> 0xff, 0x02, 0x01) },
>>       { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, 0x00a2, 
>> 0xff, 0x00, 0x00) },
>
>
> Hi,
> this doesn't seem to be correct. Since this is a LTE CAT3 highspeed 
> device and the modem manual mentions MS Win NDIS driver then one 
> interface is likely to be a QMI interface which you must blacklist in 
> the option driver.
> Please provide a usb-devices or verbose lsusb output for the modem.

Yamamoto-san, are you able to provide the lsusb -v output for this 
device? (Our internal issue for the code change is CR-56120).

>
> thanks
> Lars
Chris Packham Oct. 6, 2022, 7:44 p.m. UTC | #3
Hi Lars,

On 14/09/22 16:18, Chris Packham wrote:
>
> On 14/09/22 16:10, Lars Melin wrote:
>> On 9/14/2022 09:55, Chris Packham wrote:
>>> Add support for the docomo L-03F modem.
>>>
>>> Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
>>> ---
>>>   drivers/usb/serial/option.c | 2 ++
>>>   1 file changed, 2 insertions(+)
>>>
>>> diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
>>> index 2065f0fb2fa0..14eaff50820b 100644
>>> --- a/drivers/usb/serial/option.c
>>> +++ b/drivers/usb/serial/option.c
>>> @@ -527,6 +527,7 @@ static void option_instat_callback(struct urb 
>>> *urb);
>>>   /* LG products */
>>>   #define LG_VENDOR_ID                0x1004
>>>   #define LG_PRODUCT_L02C                0x618f
>>> +#define LG_PRODUCT_L03F                0x6366
>>>     /* MediaTek products */
>>>   #define MEDIATEK_VENDOR_ID            0x0e8d
>>> @@ -2079,6 +2080,7 @@ static const struct usb_device_id option_ids[] 
>>> = {
>>>       { USB_DEVICE_AND_INTERFACE_INFO(VIETTEL_VENDOR_ID, 
>>> VIETTEL_PRODUCT_VT1000, 0xff, 0xff, 0xff) },
>>>       { USB_DEVICE_AND_INTERFACE_INFO(ZD_VENDOR_ID, ZD_PRODUCT_7000, 
>>> 0xff, 0xff, 0xff) },
>>>       { USB_DEVICE(LG_VENDOR_ID, LG_PRODUCT_L02C) }, /* docomo L-02C 
>>> modem */
>>> +    { USB_DEVICE(LG_VENDOR_ID, LG_PRODUCT_L03F) }, /* docomo L-03F 
>>> modem */
>>>       { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, 0x00a1, 
>>> 0xff, 0x00, 0x00) },
>>>       { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, 0x00a1, 
>>> 0xff, 0x02, 0x01) },
>>>       { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, 0x00a2, 
>>> 0xff, 0x00, 0x00) },
>>
>>
>> Hi,
>> this doesn't seem to be correct. Since this is a LTE CAT3 highspeed 
>> device and the modem manual mentions MS Win NDIS driver then one 
>> interface is likely to be a QMI interface which you must blacklist in 
>> the option driver.
>> Please provide a usb-devices or verbose lsusb output for the modem.
>
> Yamamoto-san, are you able to provide the lsusb -v output for this 
> device? (Our internal issue for the code change is CR-56120).
>
Just following up on this. I've not been able to track down one of the 
actual modems and have had radio silence from my colleagues who did the 
original work.

Is the 1/2 patch of this series acceptable on it's own? (should I rebase 
and resubmit it).

>>
>> thanks
>> Lars
Lars Melin Oct. 7, 2022, 12:02 a.m. UTC | #4
On 10/7/2022 02:44, Chris Packham wrote:
> Hi Lars,


> Just following up on this. I've not been able to track down one of the
> actual modems and have had radio silence from my colleagues who did the
> original work.
> 
> Is the 1/2 patch of this series acceptable on it's own? (should I rebase
> and resubmit it).
> 


Patch 1/2 for NetIndex UX302NC USB modem has the same error as patch 2/2 
for the Docomo USB modem, both are LTE CAT3 devices and there is no mfgr 
providing only a serial ppp dial-up modem interface for high-speed 
devices like these, they always have a direct net interface.

I have dug up the driver installer from NetIndex web site, the interface 
usage is:

MI_00 NCXX UX302NC HS-USB Diagnostics
MI_01 NCXX UX302NC HS-USB Modem
MI_02 NCXX UX302NC HS-USB Application
MI_03 NCXX UX302NC Ethernet Adapter


and info in the driver files tells us that the chip mfgr is Qualcomm and 
the net interface is QMI so it must be blacklisted in the option driver.


thanks
Lars
diff mbox series

Patch

diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
index 2065f0fb2fa0..14eaff50820b 100644
--- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c
@@ -527,6 +527,7 @@  static void option_instat_callback(struct urb *urb);
 /* LG products */
 #define LG_VENDOR_ID				0x1004
 #define LG_PRODUCT_L02C				0x618f
+#define LG_PRODUCT_L03F				0x6366
 
 /* MediaTek products */
 #define MEDIATEK_VENDOR_ID			0x0e8d
@@ -2079,6 +2080,7 @@  static const struct usb_device_id option_ids[] = {
 	{ USB_DEVICE_AND_INTERFACE_INFO(VIETTEL_VENDOR_ID, VIETTEL_PRODUCT_VT1000, 0xff, 0xff, 0xff) },
 	{ USB_DEVICE_AND_INTERFACE_INFO(ZD_VENDOR_ID, ZD_PRODUCT_7000, 0xff, 0xff, 0xff) },
 	{ USB_DEVICE(LG_VENDOR_ID, LG_PRODUCT_L02C) }, /* docomo L-02C modem */
+	{ USB_DEVICE(LG_VENDOR_ID, LG_PRODUCT_L03F) }, /* docomo L-03F modem */
 	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, 0x00a1, 0xff, 0x00, 0x00) },
 	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, 0x00a1, 0xff, 0x02, 0x01) },
 	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, 0x00a2, 0xff, 0x00, 0x00) },