svn commit: r214852 - in head/sys/dev/usb: . serial
Nick Hibma
n_hibma at FreeBSD.org
Fri Nov 5 21:17:56 UTC 2010
Author: n_hibma
Date: Fri Nov 5 21:17:55 2010
New Revision: 214852
URL: http://svn.freebsd.org/changeset/base/214852
Log:
Bugfix: In rev 213509 Alexander committed a duplicate ID for ZTE STOR
based devices (QUALCOMMINC 0x2000). He made it use SCSI eject instead of
ZTE STOR eject. This prevented my ZTE MF626 dongle from switching.
- Apply both eject methods for ZTE STOR based devices. Works on my as
well as mav's device.
- Remove the duplicate.
- Sort the usbdevs entries for Qualcomm so this won't happen again.
- Add bootverbose message displaying the fact that we are ejecting (and
how).
Reviewed by: mav
MFC after: 2 weeks
Modified:
head/sys/dev/usb/serial/u3g.c
head/sys/dev/usb/usbdevs
Modified: head/sys/dev/usb/serial/u3g.c
==============================================================================
--- head/sys/dev/usb/serial/u3g.c Fri Nov 5 21:13:16 2010 (r214851)
+++ head/sys/dev/usb/serial/u3g.c Fri Nov 5 21:17:55 2010 (r214852)
@@ -411,7 +411,6 @@ static const struct usb_device_id u3g_de
U3G_DEV(QUALCOMMINC, E0078, 0),
U3G_DEV(QUALCOMMINC, E0082, 0),
U3G_DEV(QUALCOMMINC, E0086, 0),
- U3G_DEV(QUALCOMMINC, E2000, U3GINIT_SCSIEJECT),
U3G_DEV(QUALCOMMINC, E2002, 0),
U3G_DEV(QUALCOMMINC, E2003, 0),
U3G_DEV(QUALCOMMINC, MF626, 0),
@@ -655,6 +654,12 @@ u3g_test_autoinst(void *arg, struct usb_
if (usbd_lookup_id_by_uaa(u3g_devs, sizeof(u3g_devs), uaa))
return; /* no device match */
+ if (bootverbose) {
+ printf("Ejecting 0x%04x:0x%04x using method %ld\n",
+ uaa->info.idVendor, uaa->info.idProduct,
+ USB_GET_DRIVER_INFO(uaa));
+ }
+
switch (USB_GET_DRIVER_INFO(uaa)) {
case U3GINIT_HUAWEI:
error = u3g_huawei_init(udev);
@@ -669,7 +674,8 @@ u3g_test_autoinst(void *arg, struct usb_
error = usb_msc_eject(udev, 0, MSC_EJECT_REZERO);
break;
case U3GINIT_ZTESTOR:
- error = usb_msc_eject(udev, 0, MSC_EJECT_ZTESTOR);
+ error = usb_msc_eject(udev, 0, MSC_EJECT_STOPUNIT);
+ error |= usb_msc_eject(udev, 0, MSC_EJECT_ZTESTOR);
break;
case U3GINIT_CMOTECH:
error = usb_msc_eject(udev, 0, MSC_EJECT_CMOTECH);
Modified: head/sys/dev/usb/usbdevs
==============================================================================
--- head/sys/dev/usb/usbdevs Fri Nov 5 21:13:16 2010 (r214851)
+++ head/sys/dev/usb/usbdevs Fri Nov 5 21:17:55 2010 (r214852)
@@ -2612,15 +2612,11 @@ product QISDA H20_2 0x4519 3G modem
/* Qualcomm products */
product QUALCOMM CDMA_MSM 0x6000 CDMA Technologies MSM phone
+product QUALCOMM2 MF330 0x6613 MF330
product QUALCOMM2 RWT_FCT 0x3100 RWT FCT-CDMA 2000 1xRTT modem
product QUALCOMM2 CDMA_MSM 0x3196 CDMA Technologies MSM modem
product QUALCOMM2 AC8700 0x6000 AC8700
-product QUALCOMM2 MF330 0x6613 MF330
product QUALCOMMINC CDMA_MSM 0x0001 CDMA Technologies MSM modem
-product QUALCOMMINC ZTE_STOR 0x2000 USB ZTE Storage
-product QUALCOMMINC AC8710 0xfff1 3G modem
-product QUALCOMMINC AC2726 0xfff5 3G modem
-product QUALCOMMINC AC8700 0xfffe CDMA 1xEVDO USB modem
product QUALCOMMINC E0002 0x0002 3G modem
product QUALCOMMINC E0003 0x0003 3G modem
product QUALCOMMINC E0004 0x0004 3G modem
@@ -2686,9 +2682,12 @@ product QUALCOMMINC E0076 0x0076 3G mode
product QUALCOMMINC E0078 0x0078 3G modem
product QUALCOMMINC E0082 0x0082 3G modem
product QUALCOMMINC E0086 0x0086 3G modem
-product QUALCOMMINC E2000 0x2000 3G modem
+product QUALCOMMINC ZTE_STOR 0x2000 USB ZTE Storage
product QUALCOMMINC E2002 0x2002 3G modem
product QUALCOMMINC E2003 0x2003 3G modem
+product QUALCOMMINC AC8710 0xfff1 3G modem
+product QUALCOMMINC AC2726 0xfff5 3G modem
+product QUALCOMMINC AC8700 0xfffe CDMA 1xEVDO USB modem
/* Quanta products */
product QUANTA RW6815_1 0x00ce HP iPAQ rw6815
More information about the svn-src-all
mailing list