Commit 9906b41c authored by Robert Sprowson's avatar Robert Sprowson

Update a few versions

Fake implementation of usbd_do_request_flags(), slight collusion with USBDriver due to fudge introduced in 2004 - beware!
Contemporary with umass.c revision 1.99 from NetBSD.
Tagged as SCSISoftUSB-0_25-netbsd-1_99.
parent 4f630de0
......@@ -1180,6 +1180,41 @@ usbd_status usbd_do_request(usbd_device_handle pipe, usb_device_request_t *req,
return USBD_STALLED; /* we can't actually tell what the error was, but this is a likely cause */
}
/*****************************************************************************
* usbd_do_request_flags
*
* Sends a request to the default endpoint of the specified device.
* The BSD code was designed to link directly with the equivalent routine
* inside the USB driver.
*
* Assumptions
* Only flags = USBD_SHORT_XFER_OK, no actlen, and timo = USBD_DEFAULT_TIMEOUT are used
*
* Inputs
* pipe: we're actually using this as our device handle
* req: pointer to the fixed fields of the request
* data: pointer to the data buffer associated with the request
* flags: request flags
* actlen: variable to receive the actual length
* timo: timeout in ms
*
*
* Outputs
* NONE
*
* Returns
* BSD-style status code
*****************************************************************************/
usbd_status usbd_do_request_flags(usbd_device_handle pipe, usb_device_request_t *req, void *data,
u_int16_t flags, int *actlen, u_int32_t timo)
{
if ((flags != USBD_SHORT_XFER_OK) || (timo != USBD_DEFAULT_TIMEOUT) || (actlen != NULL))
return USBD_INVAL;
/* Since USBDriver 0.26 any usbd_do_request has actually allowed short transfers with a
default timeout. Perhaps a new DeviceFS_CallDevice would have been more appropriate? */
return usbd_do_request(pipe, req, data);
}
/*****************************************************************************
* usbd_open_pipe
*
......
/* $NetBSD: umass.c,v 1.95 2003/02/16 23:14:06 augustss Exp $ */
/* $NetBSD: umass.c,v 1.99 2003/09/08 19:57:32 mycroft Exp $ */
/*-
* Copyright (c) 1999 MAEKAWA Masahide <bishop@rr.iij4u.or.jp>,
* Nick Hibma <n_hibma@freebsd.org>
......@@ -105,7 +105,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: umass.c,v 1.95 2003/02/16 23:14:06 augustss Exp $");
__KERNEL_RCSID(0, "$NetBSD: umass.c,v 1.99 2003/09/08 19:57:32 mycroft Exp $");
#include "atapibus.h"
#include "scsibus.h"
......@@ -144,6 +144,9 @@ __KERNEL_RCSID(0, "$NetBSD: umass.c,v 1.95 2003/02/16 23:14:06 augustss Exp $");
#include <dev/usb/umass_quirks.h>
#include <dev/usb/umass_scsipi.h>
#include <dev/usb/umass_isdata.h>
#include <dev/scsipi/scsipi_all.h>
#include <dev/scsipi/scsipiconf.h>
#endif
#ifdef __riscos
......@@ -489,12 +492,12 @@ USB_ATTACH(umass)
DPRINTF(UDMASS_GEN,
("%s: Unsupported command protocol %u\n",
USBDEVNAME(sc->sc_dev),
InterfaceProtocol));
InterfaceSubClass));
#else
DPRINTF(UDMASS_GEN,
("%s: Unsupported command protocol %u\n",
USBDEVNAME(sc->sc_dev),
id->bInterfaceProtocol));
id->bInterfaceSubClass));
#endif
USB_ATTACH_ERROR_RETURN;
}
......@@ -597,14 +600,15 @@ USB_ATTACH(umass)
/*
* Get the maximum LUN supported by the device.
*/
if (sc->sc_wire == UMASS_WPROTO_BBB &&
!(sc->sc_quirks & UMASS_QUIRK_NO_MAX_LUN)) {
if (sc->sc_wire == UMASS_WPROTO_BBB) {
err = umass_bbb_get_max_lun(sc, &sc->maxlun);
if (err) {
DPRINTF(UDMASS_USB,("%s: unable to get Max Lun: %s\n",
USBDEVNAME(sc->sc_dev), usbd_errstr(err)));
USB_ATTACH_ERROR_RETURN;
}
if (sc->maxlun > 0)
sc->sc_busquirks |= PQUIRK_FORCELUNS;
} else {
sc->maxlun = 0;
}
......@@ -737,7 +741,7 @@ USB_ATTACH(umass)
#if NSCSIBUS > 0
error = umass_scsi_attach(sc);
#else
printf("%s: atapibus not configured\n", USBDEVNAME(sc->sc_dev));
printf("%s: scsibus not configured\n", USBDEVNAME(sc->sc_dev));
#endif
break;
......@@ -746,7 +750,8 @@ USB_ATTACH(umass)
#if NATAPIBUS > 0
error = umass_atapi_attach(sc);
#else
printf("%s: scsibus not configured\n", USBDEVNAME(sc->sc_dev));
printf("%s: atapibus not configured\n",
USBDEVNAME(sc->sc_dev));
#endif
break;
......@@ -2276,7 +2281,8 @@ umass_bbb_get_max_lun(struct umass_softc *sc, u_int8_t *maxlun)
USETW(req.wIndex, sc->sc_ifaceno);
USETW(req.wLength, 1);
err = usbd_do_request(sc->sc_udev, &req, maxlun);
err = usbd_do_request_flags(sc->sc_udev, &req, maxlun,
USBD_SHORT_XFER_OK, 0, USBD_DEFAULT_TIMEOUT);
switch (err) {
case USBD_NORMAL_COMPLETION:
DPRINTF(UDMASS_BBB, ("%s: Max Lun %d\n",
......
/* $NetBSD: umass_quirks.c,v 1.45 2003/08/08 08:24:23 wulf Exp $ */
/* $NetBSD: umass_quirks.c,v 1.51 2003/09/09 01:35:47 mycroft Exp $ */
/*
* Copyright (c) 2001 The NetBSD Foundation, Inc.
......@@ -39,7 +39,7 @@
#include <sys/cdefs.h>
#ifndef __riscos
__KERNEL_RCSID(0, "$NetBSD: umass_quirks.c,v 1.45 2003/08/08 08:24:23 wulf Exp $");
__KERNEL_RCSID(0, "$NetBSD: umass_quirks.c,v 1.51 2003/09/09 01:35:47 mycroft Exp $");
#include <sys/param.h>
#include <sys/systm.h>
......@@ -55,8 +55,6 @@ __KERNEL_RCSID(0, "$NetBSD: umass_quirks.c,v 1.45 2003/08/08 08:24:23 wulf Exp $
#include <dev/usb/usbdevs.h>
#ifdef __riscos
#define USB_VENDOR_EASYDISK USB_VENDOR_LUWEN /* Renamed in usbdevs 1.364 */
#define USB_PRODUCT_EASYDISK_EASYDISK USB_PRODUCT_LUWEN_EASYDISK
#include "umassvar.h"
#include "umass_quirks.h"
#else
......@@ -80,104 +78,24 @@ Static void umass_fixup_yedata(struct umass_softc *);
extern const struct umass_quirk umass_quirks[];
#endif
Static const struct umass_quirk umass_quirks[] = {
{ { USB_VENDOR_LACIE, USB_PRODUCT_LACIE_PKTDRV},
UMASS_WPROTO_UNSPEC, UMASS_CPROTO_UNSPEC,
0,
PQUIRK_NOMODESENSE,
UMATCH_DEVCLASS_DEVSUBCLASS_DEVPROTO,
NULL, NULL
},
{ { USB_VENDOR_ACDC, USB_PRODUCT_ACDC_PEN },
UMASS_WPROTO_BBB, UMASS_CPROTO_SCSI,
UMASS_QUIRK_NO_MAX_LUN | UMASS_QUIRK_NO_START_STOP,
PQUIRK_NOMODESENSE,
UMATCH_DEVCLASS_DEVSUBCLASS_DEVPROTO,
NULL, NULL
},
{ { USB_VENDOR_ATI, USB_PRODUCT_ATI2_205 },
UMASS_WPROTO_BBB, UMASS_CPROTO_ISD_ATA,
0,
0,
UMATCH_VENDOR_PRODUCT,
NULL, NULL
},
{ { USB_VENDOR_DMI, USB_PRODUCT_DMI_SA2_0 },
UMASS_WPROTO_UNSPEC, UMASS_CPROTO_UNSPEC,
0,
PQUIRK_NOMODESENSE,
UMATCH_VENDOR_PRODUCT,
NULL, NULL
},
{ { USB_VENDOR_EASYDISK, USB_PRODUCT_EASYDISK_EASYDISK },
UMASS_WPROTO_UNSPEC, UMASS_CPROTO_UNSPEC,
0,
PQUIRK_NOMODESENSE,
UMATCH_VENDOR_PRODUCT,
NULL, NULL
},
{ { USB_VENDOR_FUJIPHOTO, USB_PRODUCT_FUJIPHOTO_MASS0100 },
UMASS_WPROTO_UNSPEC, UMASS_CPROTO_UNSPEC,
UMASS_QUIRK_NO_START_STOP,
0,
PQUIRK_NOTUR | PQUIRK_NOSENSE,
UMATCH_DEVCLASS_DEVSUBCLASS_DEVPROTO,
NULL, NULL
},
{ { USB_VENDOR_INSYSTEM, USB_PRODUCT_INSYSTEM_ADAPTERV2 },
UMASS_WPROTO_BBB, UMASS_CPROTO_ISD_ATA,
0,
0,
UMATCH_VENDOR_PRODUCT,
NULL, NULL
},
{ { USB_VENDOR_INSYSTEM, USB_PRODUCT_INSYSTEM_ATAPI },
UMASS_WPROTO_BBB, UMASS_CPROTO_ISD_ATA,
0,
0,
UMATCH_VENDOR_PRODUCT,
NULL, NULL
},
{ { USB_VENDOR_INSYSTEM, USB_PRODUCT_INSYSTEM_DRIVEV2_5 },
UMASS_WPROTO_BBB, UMASS_CPROTO_ISD_ATA,
0,
0,
UMATCH_VENDOR_PRODUCT,
NULL, NULL
},
{ { USB_VENDOR_INSYSTEM, USB_PRODUCT_INSYSTEM_IDEUSB2 },
UMASS_WPROTO_UNSPEC, UMASS_CPROTO_UNSPEC,
0,
PQUIRK_NOMODESENSE,
UMATCH_VENDOR_PRODUCT,
NULL, NULL
},
#ifndef NO_QUIRKS_THAT_USE_CODE
{ { USB_VENDOR_INSYSTEM, USB_PRODUCT_INSYSTEM_USBCABLE },
UMASS_WPROTO_CBI, UMASS_CPROTO_ATAPI,
UMASS_QUIRK_NO_START_STOP,
0,
PQUIRK_NOTUR,
UMATCH_VENDOR_PRODUCT,
umass_init_insystem, NULL
},
#endif
{ { USB_VENDOR_IODATA2, USB_PRODUCT_IODATA2_USB2SC },
UMASS_WPROTO_UNSPEC, UMASS_CPROTO_UNSPEC,
0,
0,
UMATCH_VENDOR_PRODUCT,
NULL, NULL
},
{ { USB_VENDOR_IOMEGA, USB_PRODUCT_IOMEGA_ZIP100 },
UMASS_WPROTO_UNSPEC, UMASS_CPROTO_UNSPEC,
0,
......@@ -197,68 +115,12 @@ Static const struct umass_quirk umass_quirks[] = {
{ { USB_VENDOR_MELCO, USB_PRODUCT_MELCO_DUBPXXG },
UMASS_WPROTO_UNSPEC, UMASS_CPROTO_UNSPEC,
UMASS_QUIRK_FORCE_SHORT_INQUIRY | UMASS_QUIRK_NO_START_STOP,
PQUIRK_NOMODESENSE,
UMATCH_DEVCLASS_DEVSUBCLASS_DEVPROTO,
NULL, NULL
},
{ { USB_VENDOR_MICROTECH, USB_PRODUCT_MICROTECH_DPCM },
UMASS_WPROTO_CBI, UMASS_CPROTO_ATAPI,
0,
0,
UMATCH_VENDOR_PRODUCT,
NULL, NULL
},
{ { USB_VENDOR_MINOLTA, USB_PRODUCT_MINOLTA_S304 },
UMASS_WPROTO_UNSPEC, UMASS_CPROTO_UNSPEC,
UMASS_QUIRK_NO_MAX_LUN | UMASS_QUIRK_NO_START_STOP,
0,
UMATCH_DEVCLASS_DEVSUBCLASS_DEVPROTO,
NULL, NULL
},
{ { USB_VENDOR_MINOLTA, USB_PRODUCT_MINOLTA_X },
UMASS_WPROTO_UNSPEC, UMASS_CPROTO_UNSPEC,
UMASS_QUIRK_NO_MAX_LUN | UMASS_QUIRK_NO_START_STOP,
UMASS_QUIRK_FORCE_SHORT_INQUIRY,
0,
UMATCH_DEVCLASS_DEVSUBCLASS_DEVPROTO,
NULL, NULL
},
{ { USB_VENDOR_MSYSTEMS, USB_PRODUCT_MSYSTEMS_DISKONKEY },
UMASS_WPROTO_UNSPEC, UMASS_CPROTO_UNSPEC,
UMASS_QUIRK_NO_MAX_LUN,
PQUIRK_NOMODESENSE | PQUIRK_NODOORLOCK | PQUIRK_NOBIGMODESENSE,
UMATCH_DEVCLASS_DEVSUBCLASS_DEVPROTO,
NULL, NULL
},
{ { USB_VENDOR_MSYSTEMS, USB_PRODUCT_MSYSTEMS_DISKONKEY2 },
UMASS_WPROTO_UNSPEC, UMASS_CPROTO_UNSPEC,
UMASS_QUIRK_NO_MAX_LUN,
PQUIRK_NOMODESENSE | PQUIRK_NODOORLOCK | PQUIRK_NOBIGMODESENSE,
UMATCH_DEVCLASS_DEVSUBCLASS_DEVPROTO,
NULL, NULL
},
{ { USB_VENDOR_NEODIO, USB_PRODUCT_NEODIO_ND3050 },
UMASS_WPROTO_UNSPEC, UMASS_CPROTO_UNSPEC,
0,
PQUIRK_NOMODESENSE | PQUIRK_FORCELUNS,
UMATCH_VENDOR_PRODUCT,
NULL, NULL
},
{ { USB_VENDOR_NEODIO, USB_PRODUCT_NEODIO_ND5010 },
UMASS_WPROTO_UNSPEC, UMASS_CPROTO_UNSPEC,
0,
PQUIRK_NOMODESENSE | PQUIRK_FORCELUNS,
UMATCH_VENDOR_PRODUCT,
NULL, NULL
},
{ { USB_VENDOR_OLYMPUS, USB_PRODUCT_OLYMPUS_C1 },
UMASS_WPROTO_UNSPEC, UMASS_CPROTO_UNSPEC,
UMASS_QUIRK_WRONG_CSWSIG,
......@@ -267,86 +129,6 @@ Static const struct umass_quirk umass_quirks[] = {
NULL, NULL
},
{ { USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_MD1II },
UMASS_WPROTO_UNSPEC, UMASS_CPROTO_UNSPEC,
UMASS_QUIRK_NO_MAX_LUN | UMASS_QUIRK_NO_START_STOP,
PQUIRK_NOMODESENSE,
UMATCH_DEVCLASS_DEVSUBCLASS_DEVPROTO,
NULL, NULL
},
{ { USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_MD2 },
UMASS_WPROTO_UNSPEC, UMASS_CPROTO_UNSPEC,
0,
PQUIRK_NOMODESENSE,
UMATCH_DEVCLASS_DEVSUBCLASS_DEVPROTO,
NULL, NULL
},
{ { USB_VENDOR_OTI, USB_PRODUCT_OTI_SOLID },
UMASS_WPROTO_UNSPEC, UMASS_CPROTO_UNSPEC,
0,
PQUIRK_NOMODESENSE | PQUIRK_NOBIGMODESENSE,
UMATCH_VENDOR_PRODUCT,
NULL, NULL
},
{ { USB_VENDOR_OTI, USB_PRODUCT_OTI_FLASHDISK },
UMASS_WPROTO_UNSPEC, UMASS_CPROTO_UNSPEC,
0,
PQUIRK_NOMODESENSE | PQUIRK_NOBIGMODESENSE,
UMATCH_VENDOR_PRODUCT,
NULL, NULL
},
{ { USB_VENDOR_PEN, USB_PRODUCT_PEN_MOBILEDRIVE },
UMASS_WPROTO_UNSPEC, UMASS_CPROTO_UNSPEC,
0,
PQUIRK_NOMODESENSE | PQUIRK_NODOORLOCK | PQUIRK_FORCELUNS,
UMATCH_DEVCLASS_DEVSUBCLASS_DEVPROTO,
NULL, NULL
},
{ { USB_VENDOR_PEN, USB_PRODUCT_PEN_USBDISKPRO },
UMASS_WPROTO_UNSPEC, UMASS_CPROTO_UNSPEC,
UMASS_QUIRK_NO_MAX_LUN,
PQUIRK_NOMODESENSE | PQUIRK_NOBIGMODESENSE,
UMATCH_DEVCLASS_DEVSUBCLASS_DEVPROTO,
NULL, NULL
},
{ { USB_VENDOR_PEN, USB_PRODUCT_PEN_USBDISK },
UMASS_WPROTO_UNSPEC, UMASS_CPROTO_UNSPEC,
UMASS_QUIRK_NO_MAX_LUN | UMASS_QUIRK_NO_START_STOP,
0,
UMATCH_DEVCLASS_DEVSUBCLASS_DEVPROTO,
NULL, NULL
},
{ { USB_VENDOR_PEN, USB_PRODUCT_PEN_USBREADER },
UMASS_WPROTO_UNSPEC, UMASS_CPROTO_UNSPEC,
0,
PQUIRK_NOMODESENSE,
UMATCH_DEVCLASS_DEVSUBCLASS_DEVPROTO,
NULL, NULL
},
{ { USB_VENDOR_PILOTECH, USB_PRODUCT_PILOTECH_CRW600 },
UMASS_WPROTO_UNSPEC, UMASS_CPROTO_UNSPEC,
0,
PQUIRK_NOMODESENSE | PQUIRK_FORCELUNS,
UMATCH_VENDOR_PRODUCT,
NULL, NULL
},
{ { USB_VENDOR_PQI, USB_PRODUCT_PQI_TRAVELFLASH },
UMASS_WPROTO_UNSPEC, UMASS_CPROTO_UNSPEC,
0,
PQUIRK_NOMODESENSE | PQUIRK_NODOORLOCK,
UMATCH_VENDOR_PRODUCT,
NULL, NULL
},
{ { USB_VENDOR_SCANLOGIC, USB_PRODUCT_SCANLOGIC_SL11R },
UMASS_WPROTO_UNSPEC, UMASS_CPROTO_UFI,
UMASS_QUIRK_WRONG_CSWTAG,
......@@ -358,7 +140,7 @@ Static const struct umass_quirk umass_quirks[] = {
#ifndef NO_QUIRKS_THAT_USE_CODE
{ { USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_EUSB },
UMASS_WPROTO_CBI_I, UMASS_CPROTO_ATAPI,
UMASS_QUIRK_NO_START_STOP,
0,
PQUIRK_NOTUR,
UMATCH_VENDOR_PRODUCT,
umass_init_shuttle, NULL
......@@ -367,32 +149,8 @@ Static const struct umass_quirk umass_quirks[] = {
{ { USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_ZIOMMC },
UMASS_WPROTO_CBI_I, UMASS_CPROTO_ATAPI,
UMASS_QUIRK_NO_START_STOP,
PQUIRK_NOTUR,
UMATCH_VENDOR_PRODUCT,
NULL, NULL
},
{ { USB_VENDOR_SIIG, USB_PRODUCT_SIIG_UISDMC2S },
UMASS_WPROTO_UNSPEC, UMASS_CPROTO_UNSPEC,
UMASS_QUIRK_NO_START_STOP,
PQUIRK_NOMODESENSE,
UMATCH_DEVCLASS_DEVSUBCLASS_DEVPROTO,
NULL,NULL
},
{ { USB_VENDOR_SIIG, USB_PRODUCT_SIIG_MULTICARDREADER },
UMASS_WPROTO_UNSPEC, UMASS_CPROTO_UNSPEC,
UMASS_QUIRK_NO_START_STOP,
0,
UMATCH_DEVCLASS_DEVSUBCLASS_DEVPROTO,
NULL,NULL
},
{ { USB_VENDOR_SONY, USB_PRODUCT_SONY_DRIVEV2 },
UMASS_WPROTO_BBB, UMASS_CPROTO_ISD_ATA,
0,
0,
PQUIRK_NOTUR,
UMATCH_VENDOR_PRODUCT,
NULL, NULL
},
......@@ -418,27 +176,11 @@ Static const struct umass_quirk umass_quirks[] = {
{ { USB_VENDOR_SONY, USB_PRODUCT_SONY_MSC },
UMASS_WPROTO_CBI, UMASS_CPROTO_UFI,
UMASS_QUIRK_FORCE_SHORT_INQUIRY | UMASS_QUIRK_RS_NO_CLEAR_UA,
PQUIRK_NOMODESENSE,
UMATCH_DEVCLASS_DEVSUBCLASS_DEVPROTO,
NULL, NULL
},
{ { USB_VENDOR_TEAC, USB_PRODUCT_TEAC_FD05PUB },
UMASS_WPROTO_UNSPEC, UMASS_CPROTO_UNSPEC,
0,
PQUIRK_NOMODESENSE,
UMATCH_DEVCLASS_DEVSUBCLASS_DEVPROTO,
NULL, NULL
},
{ { USB_VENDOR_TRUMPION, USB_PRODUCT_TRUMPION_XXX1100 },
UMASS_WPROTO_CBI, UMASS_CPROTO_ATAPI,
0,
0,
UMATCH_VENDOR_PRODUCT,
NULL, NULL
},
{ { USB_VENDOR_YANO, USB_PRODUCT_YANO_U640MO },
UMASS_WPROTO_CBI_I, UMASS_CPROTO_ATAPI,
UMASS_QUIRK_FORCE_SHORT_INQUIRY,
......@@ -451,7 +193,7 @@ Static const struct umass_quirk umass_quirks[] = {
{ { USB_VENDOR_YEDATA, USB_PRODUCT_YEDATA_FLASHBUSTERU },
UMASS_WPROTO_UNSPEC, UMASS_CPROTO_UFI,
UMASS_QUIRK_RS_NO_CLEAR_UA,
PQUIRK_NOMODESENSE,
0,
UMATCH_VENDOR_PRODUCT_REV,
NULL, umass_fixup_yedata
},
......@@ -459,8 +201,8 @@ Static const struct umass_quirk umass_quirks[] = {
{ { USB_VENDOR_GENESYS,USB_PRODUCT_GENESYS_GL641USB },
UMASS_WPROTO_UNSPEC, UMASS_CPROTO_UNSPEC,
UMASS_QUIRK_FORCE_SHORT_INQUIRY | UMASS_QUIRK_NO_START_STOP,
PQUIRK_NOMODESENSE,
UMASS_QUIRK_FORCE_SHORT_INQUIRY,
0,
UMATCH_DEVCLASS_DEVSUBCLASS_DEVPROTO,
NULL, NULL
},
......
/* $NetBSD: umassvar.h,v 1.19 2003/02/22 05:18:50 tsutsui Exp $ */
/* $NetBSD: umassvar.h,v 1.20 2003/09/08 19:31:01 mycroft Exp $ */
/*-
* Copyright (c) 1999 MAEKAWA Masahide <bishop@rr.iij4u.or.jp>,
* Nick Hibma <n_hibma@freebsd.org>
......@@ -212,12 +212,10 @@ struct umass_softc {
#define UMASS_CPROTO_ISD_ATA 5
u_int32_t sc_quirks;
#define UMASS_QUIRK_RS_NO_CLEAR_UA 0x00000002
#define UMASS_QUIRK_NO_START_STOP 0x00000004
#define UMASS_QUIRK_FORCE_SHORT_INQUIRY 0x00000008
#define UMASS_QUIRK_WRONG_CSWSIG 0x00000010
#define UMASS_QUIRK_NO_MAX_LUN 0x00000020
#define UMASS_QUIRK_WRONG_CSWTAG 0x00000040
#define UMASS_QUIRK_RS_NO_CLEAR_UA 0x00000001
#define UMASS_QUIRK_FORCE_SHORT_INQUIRY 0x00000002
#define UMASS_QUIRK_WRONG_CSWSIG 0x00000004
#define UMASS_QUIRK_WRONG_CSWTAG 0x00000008
u_int32_t sc_busquirks;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment