diff --git a/sys/dev/usb/uaudio.c b/sys/dev/usb/uaudio.c index 6dde82ce709d..309fefbdbfd8 100644 --- a/sys/dev/usb/uaudio.c +++ b/sys/dev/usb/uaudio.c @@ -1,4 +1,4 @@ -/* $NetBSD: uaudio.c,v 1.27 2000/06/19 11:43:48 augustss Exp $ */ +/* $NetBSD: uaudio.c,v 1.28 2000/08/24 14:11:09 augustss Exp $ */ /* * Copyright (c) 1999 The NetBSD Foundation, Inc. @@ -961,6 +961,9 @@ uaudio_add_extension(struct uaudio_softc *sc, usb_descriptor_t *v, DPRINTFN(2,("uaudio_add_extension: bUnitId=%d bNrInPins=%d\n", d->bUnitId, d->bNrInPins)); + if (usbd_get_quirks(sc->sc_udev)->uq_flags & UQ_NO_XU) + return; + if (d1->bmControls[0] & UA_EXT_ENABLE_MASK) { mix.wIndex = MAKE(d->bUnitId, sc->sc_ac_iface); mix.nchan = 1; diff --git a/sys/dev/usb/usb_quirks.c b/sys/dev/usb/usb_quirks.c index d629dd08c0b4..3002785dee5a 100644 --- a/sys/dev/usb/usb_quirks.c +++ b/sys/dev/usb/usb_quirks.c @@ -1,4 +1,4 @@ -/* $NetBSD: usb_quirks.c,v 1.27 2000/06/01 14:29:01 augustss Exp $ */ +/* $NetBSD: usb_quirks.c,v 1.28 2000/08/24 14:11:09 augustss Exp $ */ /* $FreeBSD: src/sys/dev/usb/usb_quirks.c,v 1.13 1999/11/17 22:33:47 n_hibma Exp $ */ /* @@ -64,9 +64,11 @@ Static struct usbd_quirk_entry { { USB_VENDOR_PERACOM, USB_PRODUCT_PERACOM_SERIAL1, 0x101, { UQ_NO_STRINGS }}, { USB_VENDOR_WACOM, USB_PRODUCT_WACOM_CT0405U, 0x101, { UQ_NO_STRINGS }}, { USB_VENDOR_DALLAS, USB_PRODUCT_DALLAS_J6502, 0x0a2, { UQ_BAD_ADC }}, + { USB_VENDOR_DALLAS, USB_PRODUCT_DALLAS_J6502, 0x0a2, { UQ_NO_XU }}, { USB_VENDOR_ALTEC, USB_PRODUCT_ALTEC_ADA70, 0x103, { UQ_BAD_ADC }}, { USB_VENDOR_ALTEC, USB_PRODUCT_ALTEC_ASC495, 0x000, { UQ_BAD_AUDIO }}, { USB_VENDOR_QTRONIX, USB_PRODUCT_QTRONIX_980N, 0x110, { UQ_SPUR_BUT_UP }}, + { USB_VENDOR_ALCOR2, USB_PRODUCT_ALCOR2_KBD_HUB, 0x001, { UQ_SPUR_BUT_UP }}, { USB_VENDOR_MCT, USB_PRODUCT_MCT_HUB0100, 0x102, { UQ_BUS_POWERED }}, { USB_VENDOR_MCT, USB_PRODUCT_MCT_USB232, 0x102, { UQ_BUS_POWERED }}, { 0, 0, 0, { 0 } } diff --git a/sys/dev/usb/usb_quirks.h b/sys/dev/usb/usb_quirks.h index 31eeed49765a..e74cd05d6541 100644 --- a/sys/dev/usb/usb_quirks.h +++ b/sys/dev/usb/usb_quirks.h @@ -1,4 +1,4 @@ -/* $NetBSD: usb_quirks.h,v 1.12 2000/06/01 14:29:02 augustss Exp $ */ +/* $NetBSD: usb_quirks.h,v 1.13 2000/08/24 14:11:09 augustss Exp $ */ /* $FreeBSD: src/sys/dev/usb/usb_quirks.h,v 1.9 1999/11/12 23:31:03 n_hibma Exp $ */ /* @@ -40,14 +40,15 @@ struct usbd_quirks { u_int32_t uq_flags; /* Device problems: */ -#define UQ_NO_SET_PROTO 0x01 /* cannot handle SET PROTOCOL. */ -#define UQ_SWAP_UNICODE 0x02 /* has some Unicode strings swapped. */ -#define UQ_MS_REVZ 0x04 /* mouse has Z-axis reversed */ -#define UQ_NO_STRINGS 0x08 /* string descriptors are broken. */ -#define UQ_BAD_ADC 0x10 /* bad audio spec version number. */ -#define UQ_BUS_POWERED 0x20 /* device is bus powered, despite claim */ -#define UQ_BAD_AUDIO 0x40 /* device claims audio class, but isn't */ -#define UQ_SPUR_BUT_UP 0x80 /* spurious mouse button up events */ +#define UQ_NO_SET_PROTO 0x0001 /* cannot handle SET PROTOCOL. */ +#define UQ_SWAP_UNICODE 0x0002 /* has some Unicode strings swapped. */ +#define UQ_MS_REVZ 0x0004 /* mouse has Z-axis reversed */ +#define UQ_NO_STRINGS 0x0008 /* string descriptors are broken. */ +#define UQ_BAD_ADC 0x0010 /* bad audio spec version number. */ +#define UQ_BUS_POWERED 0x0020 /* device is bus powered, despite claim */ +#define UQ_BAD_AUDIO 0x0040 /* device claims audio class, but isn't */ +#define UQ_SPUR_BUT_UP 0x0080 /* spurious mouse button up events */ +#define UQ_NO_XU 0x0100 /* audio device has broken extension unit */ }; extern struct usbd_quirks usbd_no_quirk;