Message ID | 20221012092752.6033-1-davide.tronchin.94@gmail.com |
---|---|
State | New |
Headers | show |
Series | [v3] USB: serial: option: the patch is meant to support LARA-R6 Cat 1 and LARA-L6 CAT 4 module family. | expand |
On Wed, Oct 12, 2022 at 11:27:52AM +0200, Davide Tronchin wrote: First, please use a more concise subject for the patch, for example: USB: serial: option: add support for u-blox LARA-R6 and LARA-L6 > The LARA-R6 module old PID (defined as: UBLOX_PRODUCT_R6XX > 0x90fa) has been removed since is not used anymore by the u-blox > LARA-R6 modules. This was added just the other year. Please explain better why this should be removed. Are you sure there are no devices out there using the original VID/PID? Do you work for u-blox? > The new LARA-R6 (00B) definition uses 0x908b PID > and the reservation of port 3 is not needed anymore. > LARA-R6 00B does not implement a QMI interface on port 4, > the reservation (RSVD(4)) has been added to meet other > companies that implement QMI on that interface. > > LARA-R6 00B USB composition exposes the following interfaces: > If 0: Diagnostic > If 1: AT parser > If 2: AT parser > If 3: AT parser/alternative functions > > LARA-L6 module can be configured in three different USB modes: > * Default mode (Vendor ID: 0x1546 Product ID: 0x1341) with 4 serial > interfaces > * RmNet mode (Vendor ID: 0x1546 Product ID: 0x1342) with 4 serial > interfaces and 1 RmNet virtual network interface > * CDC-ECM mode (Vendor ID: 0x1546 Product ID: 0x1343) with 4 serial > interface and 1 CDC-ECM virtual network interface > > In default mode LARA-L6 exposes the following interfaces: > If 0: Diagnostic > If 1: AT parser > If 2: AT parser > If 3: AT parser/alternative functions > > In RmNet mode LARA-L6 exposes the following interfaces: > If 0: Diagnostic > If 1: AT parser > If 2: AT parser > If 3: AT parset/alternative functions > If 4: RMNET interface > > In CDC-ECM mode LARA-L6 exposes the following interfaces: > If 0: Diagnostic > If 1: AT parser > If 2: AT parser > If 3: AT parset/alternative functions > If 4: CDC-ECM interface As you are doing three different things here, please split this in three separate patches (e.g. so that the removal can be rejected or reverted independently of the new additions). > Signed-off-by: Davide Tronchin <davide.tronchin.94@gmail.com> > --- > > V2 -> V3: added this section to tracking changes with previous versions. > Added some explanations about the RSVD(4) in the description session. > Added reservation to port 4 of VID:PID 0x05C6:0x908B to meet other > companies QMI net interface implementation. > > V1 -> V2: define UBLOX_PRODUCT_LARA_R6 0x908b has been deleted together > with the previosly provided definition of USB_DEVICE since the PID > is used by another vendor. > The LARA-L6 patch part is the same of the previosly provided one. > > drivers/usb/serial/option.c | 17 ++++++++++++++--- > 1 file changed, 14 insertions(+), 3 deletions(-) > > diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c > index 697683e3f..07915e661 100644 > --- a/drivers/usb/serial/option.c > +++ b/drivers/usb/serial/option.c > @@ -240,7 +240,6 @@ static void option_instat_callback(struct urb *urb); > #define QUECTEL_PRODUCT_UC15 0x9090 > /* These u-blox products use Qualcomm's vendor ID */ > #define UBLOX_PRODUCT_R410M 0x90b2 > -#define UBLOX_PRODUCT_R6XX 0x90fa > /* These Yuga products use Qualcomm's vendor ID */ > #define YUGA_PRODUCT_CLM920_NC5 0x9625 > > @@ -581,6 +580,11 @@ static void option_instat_callback(struct urb *urb); > #define OPPO_VENDOR_ID 0x22d9 > #define OPPO_PRODUCT_R11 0x276c > > +/* These u-blox products use u-blox's vendor ID */ > +#define UBLOX_VENDOR_ID 0x1546 > +#define UBLOX_PRODUCT_LARA_L6 0x1341 > +#define UBLOX_PRODUCT_LARA_L6_RMNET 0x1342 > +#define UBLOX_PRODUCT_LARA_L6_ECM 0x1343 > > /* Device flags */ > > @@ -1124,8 +1128,15 @@ static const struct usb_device_id option_ids[] = { > /* u-blox products using Qualcomm vendor ID */ > { USB_DEVICE(QUALCOMM_VENDOR_ID, UBLOX_PRODUCT_R410M), > .driver_info = RSVD(1) | RSVD(3) }, > - { USB_DEVICE(QUALCOMM_VENDOR_ID, UBLOX_PRODUCT_R6XX), > - .driver_info = RSVD(3) }, > + { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x908b), /* u-blox LARA-R6 00B*/ Nit: missing space before */ > + .driver_info = RSVD(4) }, > + /* u-blox products using u-blox vendor ID */ > + { USB_DEVICE(UBLOX_VENDOR_ID, UBLOX_PRODUCT_LARA_L6), > + .driver_info = RSVD(4) }, > + { USB_DEVICE(UBLOX_VENDOR_ID, UBLOX_PRODUCT_LARA_L6_RMNET), > + .driver_info = RSVD(4) }, > + { USB_DEVICE(UBLOX_VENDOR_ID, UBLOX_PRODUCT_LARA_L6_ECM), > + .driver_info = RSVD(4) }, > /* Quectel products using Quectel vendor ID */ > { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC21, 0xff, 0xff, 0xff), > .driver_info = NUMEP2 }, Johan
diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c index 697683e3f..07915e661 100644 --- a/drivers/usb/serial/option.c +++ b/drivers/usb/serial/option.c @@ -240,7 +240,6 @@ static void option_instat_callback(struct urb *urb); #define QUECTEL_PRODUCT_UC15 0x9090 /* These u-blox products use Qualcomm's vendor ID */ #define UBLOX_PRODUCT_R410M 0x90b2 -#define UBLOX_PRODUCT_R6XX 0x90fa /* These Yuga products use Qualcomm's vendor ID */ #define YUGA_PRODUCT_CLM920_NC5 0x9625 @@ -581,6 +580,11 @@ static void option_instat_callback(struct urb *urb); #define OPPO_VENDOR_ID 0x22d9 #define OPPO_PRODUCT_R11 0x276c +/* These u-blox products use u-blox's vendor ID */ +#define UBLOX_VENDOR_ID 0x1546 +#define UBLOX_PRODUCT_LARA_L6 0x1341 +#define UBLOX_PRODUCT_LARA_L6_RMNET 0x1342 +#define UBLOX_PRODUCT_LARA_L6_ECM 0x1343 /* Device flags */ @@ -1124,8 +1128,15 @@ static const struct usb_device_id option_ids[] = { /* u-blox products using Qualcomm vendor ID */ { USB_DEVICE(QUALCOMM_VENDOR_ID, UBLOX_PRODUCT_R410M), .driver_info = RSVD(1) | RSVD(3) }, - { USB_DEVICE(QUALCOMM_VENDOR_ID, UBLOX_PRODUCT_R6XX), - .driver_info = RSVD(3) }, + { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x908b), /* u-blox LARA-R6 00B*/ + .driver_info = RSVD(4) }, + /* u-blox products using u-blox vendor ID */ + { USB_DEVICE(UBLOX_VENDOR_ID, UBLOX_PRODUCT_LARA_L6), + .driver_info = RSVD(4) }, + { USB_DEVICE(UBLOX_VENDOR_ID, UBLOX_PRODUCT_LARA_L6_RMNET), + .driver_info = RSVD(4) }, + { USB_DEVICE(UBLOX_VENDOR_ID, UBLOX_PRODUCT_LARA_L6_ECM), + .driver_info = RSVD(4) }, /* Quectel products using Quectel vendor ID */ { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC21, 0xff, 0xff, 0xff), .driver_info = NUMEP2 },
The LARA-R6 module old PID (defined as: UBLOX_PRODUCT_R6XX 0x90fa) has been removed since is not used anymore by the u-blox LARA-R6 modules. The new LARA-R6 (00B) definition uses 0x908b PID and the reservation of port 3 is not needed anymore. LARA-R6 00B does not implement a QMI interface on port 4, the reservation (RSVD(4)) has been added to meet other companies that implement QMI on that interface. LARA-R6 00B USB composition exposes the following interfaces: If 0: Diagnostic If 1: AT parser If 2: AT parser If 3: AT parser/alternative functions LARA-L6 module can be configured in three different USB modes: * Default mode (Vendor ID: 0x1546 Product ID: 0x1341) with 4 serial interfaces * RmNet mode (Vendor ID: 0x1546 Product ID: 0x1342) with 4 serial interfaces and 1 RmNet virtual network interface * CDC-ECM mode (Vendor ID: 0x1546 Product ID: 0x1343) with 4 serial interface and 1 CDC-ECM virtual network interface In default mode LARA-L6 exposes the following interfaces: If 0: Diagnostic If 1: AT parser If 2: AT parser If 3: AT parser/alternative functions In RmNet mode LARA-L6 exposes the following interfaces: If 0: Diagnostic If 1: AT parser If 2: AT parser If 3: AT parset/alternative functions If 4: RMNET interface In CDC-ECM mode LARA-L6 exposes the following interfaces: If 0: Diagnostic If 1: AT parser If 2: AT parser If 3: AT parset/alternative functions If 4: CDC-ECM interface Signed-off-by: Davide Tronchin <davide.tronchin.94@gmail.com> --- V2 -> V3: added this section to tracking changes with previous versions. Added some explanations about the RSVD(4) in the description session. Added reservation to port 4 of VID:PID 0x05C6:0x908B to meet other companies QMI net interface implementation. V1 -> V2: define UBLOX_PRODUCT_LARA_R6 0x908b has been deleted together with the previosly provided definition of USB_DEVICE since the PID is used by another vendor. The LARA-L6 patch part is the same of the previosly provided one. drivers/usb/serial/option.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-)