libqmi / Quectel EC21/EC25

Dan Williams dcbw at redhat.com
Mon Oct 10 20:27:16 UTC 2016


On Mon, 2016-10-10 at 21:20 +0200, Sebastian Sjoholm wrote:
> > 
> > On Oct 10, 2016, at 21:12 , Bjørn Mork <bjorn at mork.no> wrote:
> > 
> > Sebastian Sjoholm <sebastian.sjoholm at gmail.com> writes:
> > > 
> > > > 
> > > > On Oct 10, 2016, at 14:24 , Bjørn Mork <bjorn at mork.no> wrote:
> > > > 
> > > > Sebastian Sjoholm <sebastian.sjoholm at gmail.com> writes:
> > > > 
> > > > > 
> > > > > Hi,
> > > > > 
> > > > > Just to add confirmation that the Quectel EC21 works as well
> > > > > with the same
> > > > > modifications that was made for Quectel EC25.
> > > > 
> > > > Could you test the attached patch against an unmodified
> > > > qmi_wwan.c from
> > > > Linux v4.5 or newer?
> > > > 
> > > 
> > > Here is test of the patch, it seems to be working very well. I
> > > have
> > > included diff from original qmi_wwan.c and then test run on both
> > > EC21
> > > and EC25. (using kernel 4.7.7)
> > 
> > Great! thanks for testing.  I'll submit it immediately, hoping that
> > it
> > can make v4.9-rc1
> > 
> 
> How should I handle the changes in /drivers/usb/serial/option.c and
> /drivers/usb/serial/usb_wwan.c, so it would be complete with the
> serial ports as well?

Try this patch and let me know how it does...

Dan

diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
index 9894e34..d4f36df 100644
--- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c
@@ -233,6 +233,14 @@ static void option_instat_callback(struct urb *urb);
 #define BANDRICH_PRODUCT_1012			0x1012
 
 #define QUALCOMM_VENDOR_ID			0x05C6
+/* These Quectel products use Qualcomm's vendor ID */
+#define QUECTEL_PRODUCT_UC15			0x9090
+#define QUECTEL_PRODUCT_UC20			0x9003
+
+#define QUECTEL_VENDOR_ID			0x2c7c
+/* These Quectel products use Quectel's vendor ID */
+#define QUECTEL_PRODUCT_EC21			0x0121
+#define QUECTEL_PRODUCT_EC25			0x0125
 
 #define CMOTECH_VENDOR_ID			0x16d8
 #define CMOTECH_PRODUCT_6001			0x6001
@@ -1159,7 +1167,14 @@ static const struct usb_device_id option_ids[] = {
 	{ USB_DEVICE(QUALCOMM_VENDOR_ID, 0x6613)}, /* Onda H600/ZTE MF330 */
 	{ USB_DEVICE(QUALCOMM_VENDOR_ID, 0x0023)}, /* ONYX 3G device */
 	{ USB_DEVICE(QUALCOMM_VENDOR_ID, 0x9000)}, /* SIMCom SIM5218 */
-	{ USB_DEVICE(QUALCOMM_VENDOR_ID, 0x9003), /* Quectel UC20 */
+	/* Quectel products using Qualcomm vendor ID */
+	{ USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC15)},
+	{ USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC20),
+	  .driver_info = (kernel_ulong_t)&net_intf4_blacklist },
+	/* Quectel products using Quectel vendor ID */
+	{ USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC21),
+	  .driver_info = (kernel_ulong_t)&net_intf4_blacklist },
+	{ USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC25),
 	  .driver_info = (kernel_ulong_t)&net_intf4_blacklist },
 	{ USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6001) },
 	{ USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CMU_300) },


More information about the libqmi-devel mailing list