Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/dev/usb Put the UQ_ASSUME_CM_OVER_DATA quirk back in. W...



details:   https://anonhg.NetBSD.org/src/rev/8df509054d38
branches:  trunk
changeset: 502100:8df509054d38
user:      explorer <explorer%NetBSD.org@localhost>
date:      Thu Jan 11 20:35:02 2001 +0000

description:
Put the UQ_ASSUME_CM_OVER_DATA quirk back in.  Without it, the Ricochet GS modem fails to work even with the other changes.

diffstat:

 sys/dev/usb/umodem.c     |  28 ++++++++++++++++------------
 sys/dev/usb/usb_quirks.c |   4 ++--
 sys/dev/usb/usb_quirks.h |   3 ++-
 3 files changed, 20 insertions(+), 15 deletions(-)

diffs (78 lines):

diff -r 96dbdad4f04e -r 8df509054d38 sys/dev/usb/umodem.c
--- a/sys/dev/usb/umodem.c      Thu Jan 11 20:27:12 2001 +0000
+++ b/sys/dev/usb/umodem.c      Thu Jan 11 20:35:02 2001 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: umodem.c,v 1.35 2000/12/29 01:24:57 augustss Exp $     */
+/*     $NetBSD: umodem.c,v 1.36 2001/01/11 20:35:02 explorer Exp $     */
 
 /*
  * Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -259,18 +259,22 @@
                goto bad;
        }
 
-       if (sc->sc_cm_cap & USB_CDC_CM_OVER_DATA) {
-               if (sc->sc_acm_cap & USB_CDC_ACM_HAS_FEATURE)
-                       err = umodem_set_comm_feature(sc,
-                           UCDC_ABSTRACT_STATE, UCDC_DATA_MULTIPLEXED);
-               else
-                       err = 0;
-               if (err) {
-                       printf("%s: could not set data multiplex mode\n",
-                              USBDEVNAME(sc->sc_dev));
-                       goto bad;
+       if (usbd_get_quirks(sc->sc_udev)->uq_flags & UQ_ASSUME_CM_OVER_DATA) {
+               sc->sc_cm_over_data = 1;
+       } else {
+               if (sc->sc_cm_cap & USB_CDC_CM_OVER_DATA) {
+                       if (sc->sc_acm_cap & USB_CDC_ACM_HAS_FEATURE)
+                               err = umodem_set_comm_feature(sc,
+                                   UCDC_ABSTRACT_STATE, UCDC_DATA_MULTIPLEXED);
+                       else
+                               err = 0;
+                       if (err) {
+                               printf("%s: could not set data multiplex mode\n",
+                                      USBDEVNAME(sc->sc_dev));
+                               goto bad;
+                       }
+                       sc->sc_cm_over_data = 1;
                }
-               sc->sc_cm_over_data = 1;
        }
        sc->sc_dtr = -1;
 
diff -r 96dbdad4f04e -r 8df509054d38 sys/dev/usb/usb_quirks.c
--- a/sys/dev/usb/usb_quirks.c  Thu Jan 11 20:27:12 2001 +0000
+++ b/sys/dev/usb/usb_quirks.c  Thu Jan 11 20:35:02 2001 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: usb_quirks.c,v 1.34 2000/12/28 11:56:23 augustss Exp $ */
+/*     $NetBSD: usb_quirks.c,v 1.35 2001/01/11 20:35:02 explorer Exp $ */
 /*     $FreeBSD: src/sys/dev/usb/usb_quirks.c,v 1.13 1999/11/17 22:33:47 n_hibma Exp $ */
 
 /*
@@ -72,7 +72,7 @@
  { USB_VENDOR_MCT, USB_PRODUCT_MCT_HUB0100,         0x102, { UQ_BUS_POWERED }},
  { USB_VENDOR_MCT, USB_PRODUCT_MCT_USB232,          0x102, { UQ_BUS_POWERED }},
  { USB_VENDOR_METRICOM, USB_PRODUCT_METRICOM_RICOCHET_GS,
-                                                   0x100, { UQ_NO_STRINGS }},
+       0x100, { UQ_ASSUME_CM_OVER_DATA | UQ_NO_STRINGS }},
  { USB_VENDOR_TI, USB_PRODUCT_TI_UTUSB41,          0x110, { UQ_POWER_CLAIM }},
  { USB_VENDOR_ACERP, USB_PRODUCT_ACERP_ACERSCAN_320U,
                                                    0x000, { UQ_NO_STRINGS }},
diff -r 96dbdad4f04e -r 8df509054d38 sys/dev/usb/usb_quirks.h
--- a/sys/dev/usb/usb_quirks.h  Thu Jan 11 20:27:12 2001 +0000
+++ b/sys/dev/usb/usb_quirks.h  Thu Jan 11 20:35:02 2001 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: usb_quirks.h,v 1.17 2000/12/28 11:56:23 augustss Exp $ */
+/*     $NetBSD: usb_quirks.h,v 1.18 2001/01/11 20:35:02 explorer Exp $ */
 /*     $FreeBSD: src/sys/dev/usb/usb_quirks.h,v 1.9 1999/11/12 23:31:03 n_hibma Exp $  */
 
 /*
@@ -52,6 +52,7 @@
 #define UQ_POWER_CLAIM 0x0200  /* hub lies about power status */
 #define UQ_AU_NO_FRAC  0x0400  /* don't adjust for fractional samples */
 #define UQ_AU_INP_ASYNC        0x0800  /* input is async despite claim of adaptive */
+#define UQ_ASSUME_CM_OVER_DATA 0x1000 /* modem device breaks on cm over data */
 };
 
 extern struct usbd_quirks usbd_no_quirk;



Home | Main Index | Thread Index | Old Index