- Ignore incorrect CSW signatures on my PURE PocketDab 2000 player

Approved by:	ssouhlal
MFC after:	1 week
This commit is contained in:
Pav Lucistnik 2005-12-20 16:21:17 +00:00
parent d01c2eedae
commit f651aa2d2f
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=153557
2 changed files with 15 additions and 3 deletions

View file

@ -202,6 +202,7 @@ typedef struct {
typedef struct {
uDWord dCSWSignature;
# define CSWSIGNATURE 0x53425355
# define CSWSIGNATURE_IMAGINATION_DBX1 0x43425355
# define CSWSIGNATURE_OLYMPUS_C1 0x55425355
uDWord dCSWTag;
uDWord dCSWDataResidue;
@ -347,6 +348,10 @@ Static struct umass_devdescr_t umass_devdescrs[] = {
UMASS_PROTO_ATAPI | UMASS_PROTO_CBI_I,
NO_TEST_UNIT_READY | NO_START_STOP
},
{ USB_VENDOR_IMAGINATION, USB_PRODUCT_IMAGINATION_DBX1, RID_WILDCARD,
UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
WRONG_CSWSIG
},
{ USB_VENDOR_INSYSTEM, USB_PRODUCT_INSYSTEM_USBCABLE, RID_WILDCARD,
UMASS_PROTO_ATAPI | UMASS_PROTO_CBI,
NO_TEST_UNIT_READY | NO_START_STOP | ALT_IFACE_1
@ -1620,9 +1625,12 @@ umass_bbb_state(usbd_xfer_handle xfer, usbd_private_handle priv,
DIF(UDMASS_BBB, umass_bbb_dump_csw(sc, &sc->csw));
/* Translate weird command-status signatures. */
if ((sc->quirks & WRONG_CSWSIG) &&
UGETDW(sc->csw.dCSWSignature) == CSWSIGNATURE_OLYMPUS_C1)
USETDW(sc->csw.dCSWSignature, CSWSIGNATURE);
if (sc->quirks & WRONG_CSWSIG) {
uDWord dCSWSignature = UGETDW(sc->csw.dCSWSignature);
if (dCSWSignature == CSWSIGNATURE_OLYMPUS_C1 ||
dCSWSignature == CSWSIGNATURE_IMAGINATION_DBX1)
USETDW(sc->csw.dCSWSignature, CSWSIGNATURE);
}
int Residue;
Residue = UGETDW(sc->csw.dCSWDataResidue);

View file

@ -506,6 +506,7 @@ vendor LINKSYS4 0x13b1 Linksys
vendor SHARK 0x13d2 Shark
vendor SILICOM 0x1485 Silicom
vendor RALINK 0x148f Ralink Technology
vendor IMAGINATION 0x149a Imagination Technologies
vendor CONCEPTRONIC 0x14b2 Conceptronic
vendor SILICONPORTALS 0x1527 Silicon Portals
vendor SOHOWARE 0x15e8 SOHOware
@ -978,6 +979,9 @@ product HP2 C500 0x6002 PhotoSmart C500
/* IBM Corporation */
product IBM USBCDROMDRIVE 0x4427 USB CD-ROM Drive
/* Imagination Technologies products */
product IMAGINATION DBX1 0x2107 DBX1 DSP core
/* Inside Out Networks products */
product INSIDEOUT EDGEPORT4 0x0001 EdgePort/4 serial ports