diff mbox series

USB: serial: option: add MeiG Smart SRM825L

Message ID 0041DFA5200EFB1B+20240803074619.563116-1-yt@radxa.com (mailing list archive)
State New
Headers show
Series USB: serial: option: add MeiG Smart SRM825L | expand

Commit Message

ZHANG Yuntian Aug. 3, 2024, 7:46 a.m. UTC
Add support for MeiG Smart SRM825L which is based on Qualcomm 315 chip.

T:  Bus=04 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=5000 MxCh= 0
D:  Ver= 3.20 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 9 #Cfgs=  1
P:  Vendor=2dee ProdID=4d22 Rev= 4.14
S:  Manufacturer=MEIG
S:  Product=LTE-A Module
S:  SerialNumber=6f345e48
C:* #Ifs= 6 Cfg#= 1 Atr=80 MxPwr=896mA
I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=option
E:  Ad=81(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E:  Ad=01(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
I:* If#= 1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=option
E:  Ad=83(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
E:  Ad=82(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=option
E:  Ad=85(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
E:  Ad=84(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E:  Ad=03(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
I:* If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=60 Driver=option
E:  Ad=87(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
E:  Ad=86(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E:  Ad=04(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
I:* If#= 4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=(none)
E:  Ad=05(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E:  Ad=88(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
I:* If#= 5 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=50 Driver=qmi_wwan
E:  Ad=89(I) Atr=03(Int.) MxPS=   8 Ivl=32ms
E:  Ad=8e(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E:  Ad=0f(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms

Signed-off-by: ZHANG Yuntian <yt@radxa.com>
---
 drivers/usb/serial/option.c | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Lars Melin Aug. 3, 2024, 11:49 a.m. UTC | #1
On 2024-08-03 14:46, ZHANG Yuntian wrote:
> Add support for MeiG Smart SRM825L which is based on Qualcomm 315 chip.
> 
> T:  Bus=04 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=5000 MxCh= 0
> D:  Ver= 3.20 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 9 #Cfgs=  1
> P:  Vendor=2dee ProdID=4d22 Rev= 4.14
> S:  Manufacturer=MEIG
> S:  Product=LTE-A Module
> S:  SerialNumber=6f345e48
> C:* #Ifs= 6 Cfg#= 1 Atr=80 MxPwr=896mA
> I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=option
> E:  Ad=81(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> E:  Ad=01(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> I:* If#= 1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=option
> E:  Ad=83(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
> E:  Ad=82(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> E:  Ad=02(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=option
> E:  Ad=85(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
> E:  Ad=84(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> E:  Ad=03(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> I:* If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=60 Driver=option
> E:  Ad=87(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
> E:  Ad=86(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> E:  Ad=04(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> I:* If#= 4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=(none)
> E:  Ad=05(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> E:  Ad=88(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> I:* If#= 5 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=50 Driver=qmi_wwan
> E:  Ad=89(I) Atr=03(Int.) MxPS=   8 Ivl=32ms
> E:  Ad=8e(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> E:  Ad=0f(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> 

That ProdID is already used by MeiG SR815 which has the same composition 
but different Protocol values.
Is MeiG really that short of ProductID's that they have to cannibalize 
on an already used one?

lsusb for SR815:

T: Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=5000 MxCh= 0	
D: Ver= 3.20 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 9 #Cfgs= 1	
P: Vendor=2dee ProdID=4d22 Rev= 4.14	
S: Manufacturer=MEIG	
S: Product=LTE-A Module	
S: SerialNumber=123456	
C:* #Ifs= 6 Cfg#= 1 Atr=80 MxPwr=896mA	
I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=(none)	
E: Ad=81(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms	
E: Ad=01(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms	
I:* If#= 1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)	
E: Ad=83(I) Atr=03(Int.) MxPS= 10 Ivl=32ms	
E: Ad=82(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms	
E: Ad=02(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms	
I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)	
E: Ad=85(I) Atr=03(Int.) MxPS= 10 Ivl=32ms	
E: Ad=84(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms	
E: Ad=03(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms	
I:* If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)	
E: Ad=87(I) Atr=03(Int.) MxPS= 10 Ivl=32ms	
E: Ad=86(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms	
E: Ad=04(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms	
I:* If#= 4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=(none)	
E: Ad=05(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms	
E: Ad=88(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms	
I:* If#= 5 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)	
E: Ad=89(I) Atr=03(Int.) MxPS= 8 Ivl=32ms	
E: Ad=8e(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms	
E: Ad=0f(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms


thanks
Lars
ZHANG Yuntian Aug. 4, 2024, 6:15 a.m. UTC | #2
Hi Lars,

On 2024/8/3 19:49, Lars Melin wrote:
> On 2024-08-03 14:46, ZHANG Yuntian wrote:
>> Add support for MeiG Smart SRM825L which is based on Qualcomm 315 chip.
>>
>> T:  Bus=04 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=5000 MxCh= 0
>> D:  Ver= 3.20 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 9 #Cfgs=  1
>> P:  Vendor=2dee ProdID=4d22 Rev= 4.14
>> S:  Manufacturer=MEIG
>> S:  Product=LTE-A Module
>> S:  SerialNumber=6f345e48
>> C:* #Ifs= 6 Cfg#= 1 Atr=80 MxPwr=896mA
>> I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=option
>> E:  Ad=81(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
>> E:  Ad=01(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
>> I:* If#= 1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=option
>> E:  Ad=83(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
>> E:  Ad=82(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
>> E:  Ad=02(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
>> I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=option
>> E:  Ad=85(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
>> E:  Ad=84(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
>> E:  Ad=03(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
>> I:* If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=60 Driver=option
>> E:  Ad=87(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
>> E:  Ad=86(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
>> E:  Ad=04(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
>> I:* If#= 4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=(none)
>> E:  Ad=05(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
>> E:  Ad=88(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
>> I:* If#= 5 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=50 Driver=qmi_wwan
>> E:  Ad=89(I) Atr=03(Int.) MxPS=   8 Ivl=32ms
>> E:  Ad=8e(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
>> E:  Ad=0f(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
>>
> 
> That ProdID is already used by MeiG SR815 which has the same composition 
> but different Protocol values.
> Is MeiG really that short of ProductID's that they have to cannibalize 
> on an already used one?

Unfortunately I think this is the case. In fact, my initial research is 
actually based on this SRM815 discussion thread:

https://whrl.pl/Rgk1Lv

I'm currently using this exact command sequence (supposedly for SRM815) 
on my OpenWrt router to get the card working. The patch is separately 
tested on a ROCK 4SE since it is easier for me to build Debian kernel 
than OpenWrt kernel.

Here is the ATI output from my card, which confirms that it is indeed a 
different model:

Manufacturer: MEIG INCORPORATED
Model: SRM825L
Revision: SRM825L_6.0.5_EQ100
IMEI: [REDACTED]
+GCAP: +CGSM

I did not add SRM815 support (despite the Protocol values are also 
available on that thread) because I don't have the device to test, and I 
don't know if there are more such devices.

> 
> lsusb for SR815:
> 
> T: Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=5000 MxCh= 0
> D: Ver= 3.20 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 9 #Cfgs= 1
> P: Vendor=2dee ProdID=4d22 Rev= 4.14
> S: Manufacturer=MEIG
> S: Product=LTE-A Module
> S: SerialNumber=123456
> C:* #Ifs= 6 Cfg#= 1 Atr=80 MxPwr=896mA
> I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=(none)
> E: Ad=81(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> E: Ad=01(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> I:* If#= 1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
> E: Ad=83(I) Atr=03(Int.) MxPS= 10 Ivl=32ms
> E: Ad=82(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> E: Ad=02(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
> E: Ad=85(I) Atr=03(Int.) MxPS= 10 Ivl=32ms
> E: Ad=84(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> E: Ad=03(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> I:* If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
> E: Ad=87(I) Atr=03(Int.) MxPS= 10 Ivl=32ms
> E: Ad=86(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> E: Ad=04(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> I:* If#= 4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=(none)
> E: Ad=05(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> E: Ad=88(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> I:* If#= 5 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
> E: Ad=89(I) Atr=03(Int.) MxPS= 8 Ivl=32ms
> E: Ad=8e(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> E: Ad=0f(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> 
> 
> thanks
> Lars
> 
> 
>
ZHANG Yuntian Aug. 17, 2024, 8:58 a.m. UTC | #3
This was my first submitted patch so I forgot to run get_maintainer.pl 
and collect the CC list, so I'm sending this out as a reminder.

qmi_wwan part was accepted a while ago:

https://git.kernel.org/netdev/net/c/1ca645a2f74a

On 2024/8/3 15:46, ZHANG Yuntian wrote:
> Add support for MeiG Smart SRM825L which is based on Qualcomm 315 chip.
> 
> T:  Bus=04 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=5000 MxCh= 0
> D:  Ver= 3.20 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 9 #Cfgs=  1
> P:  Vendor=2dee ProdID=4d22 Rev= 4.14
> S:  Manufacturer=MEIG
> S:  Product=LTE-A Module
> S:  SerialNumber=6f345e48
> C:* #Ifs= 6 Cfg#= 1 Atr=80 MxPwr=896mA
> I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=option
> E:  Ad=81(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> E:  Ad=01(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> I:* If#= 1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=option
> E:  Ad=83(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
> E:  Ad=82(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> E:  Ad=02(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=option
> E:  Ad=85(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
> E:  Ad=84(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> E:  Ad=03(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> I:* If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=60 Driver=option
> E:  Ad=87(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
> E:  Ad=86(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> E:  Ad=04(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> I:* If#= 4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=(none)
> E:  Ad=05(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> E:  Ad=88(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> I:* If#= 5 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=50 Driver=qmi_wwan
> E:  Ad=89(I) Atr=03(Int.) MxPS=   8 Ivl=32ms
> E:  Ad=8e(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> E:  Ad=0f(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> 
> Signed-off-by: ZHANG Yuntian <yt@radxa.com>
> ---
>   drivers/usb/serial/option.c | 5 +++++
>   1 file changed, 5 insertions(+)
> 
> diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
> index 311040f9b9352..6811dbd2f4c08 100644
> --- a/drivers/usb/serial/option.c
> +++ b/drivers/usb/serial/option.c
> @@ -621,6 +621,8 @@ static void option_instat_callback(struct urb *urb);
>   #define MEIGSMART_VENDOR_ID			0x2dee
>   /* MeiG Smart SLM320 based on UNISOC UIS8910 */
>   #define MEIGSMART_PRODUCT_SLM320		0x4d41
> +/* MeiG Smart SRM825L based on Qualcomm 315 */
> +#define MEIGSMART_PRODUCT_SRM825L		0x4d22
>   
>   /* Device flags */
>   
> @@ -2366,6 +2368,9 @@ static const struct usb_device_id option_ids[] = {
>   	{ USB_DEVICE_AND_INTERFACE_INFO(UNISOC_VENDOR_ID, TOZED_PRODUCT_LT70C, 0xff, 0, 0) },
>   	{ USB_DEVICE_AND_INTERFACE_INFO(UNISOC_VENDOR_ID, LUAT_PRODUCT_AIR720U, 0xff, 0, 0) },
>   	{ USB_DEVICE_AND_INTERFACE_INFO(MEIGSMART_VENDOR_ID, MEIGSMART_PRODUCT_SLM320, 0xff, 0, 0) },
> +	{ USB_DEVICE_AND_INTERFACE_INFO(MEIGSMART_VENDOR_ID, MEIGSMART_PRODUCT_SRM825L, 0xff, 0xff, 0x30) },
> +	{ USB_DEVICE_AND_INTERFACE_INFO(MEIGSMART_VENDOR_ID, MEIGSMART_PRODUCT_SRM825L, 0xff, 0xff, 0x40) },
> +	{ USB_DEVICE_AND_INTERFACE_INFO(MEIGSMART_VENDOR_ID, MEIGSMART_PRODUCT_SRM825L, 0xff, 0xff, 0x60) },
>   	{ } /* Terminating entry */
>   };
>   MODULE_DEVICE_TABLE(usb, option_ids);
Greg KH Aug. 17, 2024, 9:11 a.m. UTC | #4
On Sat, Aug 17, 2024 at 04:58:24PM +0800, ZHANG Yuntian wrote:
> This was my first submitted patch so I forgot to run get_maintainer.pl and
> collect the CC list, so I'm sending this out as a reminder.
> 
> qmi_wwan part was accepted a while ago:
> 
> https://git.kernel.org/netdev/net/c/1ca645a2f74a

It is vacation time in Europe for many of us, please give us a few weeks
to get back and catch up with things like this.

thanks,

greg k-h
Johan Hovold Aug. 27, 2024, 6:48 a.m. UTC | #5
On Sat, Aug 03, 2024 at 03:46:07PM +0800, ZHANG Yuntian wrote:
> Add support for MeiG Smart SRM825L which is based on Qualcomm 315 chip.

> Signed-off-by: ZHANG Yuntian <yt@radxa.com>

Now applied, thanks.

Johan
diff mbox series

Patch

diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
index 311040f9b9352..6811dbd2f4c08 100644
--- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c
@@ -621,6 +621,8 @@  static void option_instat_callback(struct urb *urb);
 #define MEIGSMART_VENDOR_ID			0x2dee
 /* MeiG Smart SLM320 based on UNISOC UIS8910 */
 #define MEIGSMART_PRODUCT_SLM320		0x4d41
+/* MeiG Smart SRM825L based on Qualcomm 315 */
+#define MEIGSMART_PRODUCT_SRM825L		0x4d22
 
 /* Device flags */
 
@@ -2366,6 +2368,9 @@  static const struct usb_device_id option_ids[] = {
 	{ USB_DEVICE_AND_INTERFACE_INFO(UNISOC_VENDOR_ID, TOZED_PRODUCT_LT70C, 0xff, 0, 0) },
 	{ USB_DEVICE_AND_INTERFACE_INFO(UNISOC_VENDOR_ID, LUAT_PRODUCT_AIR720U, 0xff, 0, 0) },
 	{ USB_DEVICE_AND_INTERFACE_INFO(MEIGSMART_VENDOR_ID, MEIGSMART_PRODUCT_SLM320, 0xff, 0, 0) },
+	{ USB_DEVICE_AND_INTERFACE_INFO(MEIGSMART_VENDOR_ID, MEIGSMART_PRODUCT_SRM825L, 0xff, 0xff, 0x30) },
+	{ USB_DEVICE_AND_INTERFACE_INFO(MEIGSMART_VENDOR_ID, MEIGSMART_PRODUCT_SRM825L, 0xff, 0xff, 0x40) },
+	{ USB_DEVICE_AND_INTERFACE_INFO(MEIGSMART_VENDOR_ID, MEIGSMART_PRODUCT_SRM825L, 0xff, 0xff, 0x60) },
 	{ } /* Terminating entry */
 };
 MODULE_DEVICE_TABLE(usb, option_ids);