The following reply was made to PR usb/95173; it has been noted by GNATS.

From: Ben Kelly <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED],  [EMAIL PROTECTED]
Cc:  
Subject: Re: usb/95173: [umass] [patch] cannot mount external usb harddisk
 VIA Technologies Inc. USB 2.0 IDE Bridge
Date: Sun, 02 Dec 2007 16:45:54 -0500

 This is a multi-part message in MIME format.
 --------------010907000802070702090307
 Content-Type: text/plain; charset=ISO-8859-1; format=flowed
 Content-Transfer-Encoding: 7bit
 
 I bought a Rocketfish external hard drive enclosure at Best Buy a couple 
 weeks ago and ran into this same problem.  I've streamlined James's 
 patch and updated it for 7.0-BETA3.  In addition, I modified it to fake 
 a successful sync instead of returning an error.  This avoids spamming 
 logs with failure messages and also follows the precedent set by the 
 NO_INQUIRY quirk.  As far as I can tell, this has the same end effect as 
 setting the DA_Q_NO_SYNC_CACHE quirk in the cam layer, so I believe it 
 should be equally safe.
 
 --------------010907000802070702090307
 Content-Type: text/plain; x-mac-type="0"; x-mac-creator="0";
  name="via_umass.patch"
 Content-Transfer-Encoding: 7bit
 Content-Disposition: inline;
  filename="via_umass.patch"
 
 --- /usr/src/sys/dev/usb/umass.c       2007-07-05 05:26:08.000000000 +0000
 +++ umass.c    2007-12-02 18:45:27.576058092 +0000
 @@ -323,6 +323,12 @@
         * sector number.
         */
  #     define READ_CAPACITY_OFFBY1     0x2000
 +      /* Device cannot handle a SCSI synchronize cache command.  Normally
 +       * this quirk would be handled in the cam layer, but for IDE bridges
 +       * we need to associate the quirk with the bridge and not the
 +       * underlying disk device.  This is handled by faking a success result.
 +       */
 +#     define NO_SYNCHRONIZE_CACHE     0x4000
  };
  
  static struct umass_devdescr_t umass_devdescrs[] = {
 @@ -804,6 +810,10 @@
          UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
          NO_QUIRKS
        },
 +      { USB_VENDOR_VIA, USB_PRODUCT_VIA_USB2IDEBRIDGE, RID_WILDCARD,
 +        UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
 +        NO_SYNCHRONIZE_CACHE
 +      },
        { USB_VENDOR_VIVITAR, USB_PRODUCT_VIVITAR_35XX, RID_WILDCARD,
          UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
          NO_INQUIRY
 @@ -2878,6 +2888,15 @@
                                xpt_done(ccb);
                                return;
                        }
 +                      if ((sc->quirks & NO_SYNCHRONIZE_CACHE) &&
 +                          rcmd[0] == SYNCHRONIZE_CACHE) {
 +                              struct ccb_scsiio *csio = &ccb->csio;
 +
 +                              csio->scsi_status = SCSI_STATUS_OK;
 +                              ccb->ccb_h.status = CAM_REQ_CMP;
 +                              xpt_done(ccb);
 +                              return;
 +                      }
                        if ((sc->quirks & FORCE_SHORT_INQUIRY) &&
                            rcmd[0] == INQUIRY) {
                                csio->dxfer_len = SHORT_INQUIRY_LENGTH;
 --- /usr/src/sys/dev/usb/usbdevs       2007-11-28 06:10:16.000000000 +0000
 +++ usbdevs    2007-12-02 18:44:39.873614696 +0000
 @@ -2229,6 +2229,9 @@
  /* U.S. Robotics products */
  product USR USR5423           0x0121  USR5423 WLAN
  
 +/* VIA Technologies products */
 +product VIA USB2IDEBRIDGE     0x6204  USB 2.0 IDE Bridge
 +
  /* VidzMedia products */
  product VIDZMEDIA MONSTERTV   0x4fb1  MonsterTV P2H
  
 
 --------------010907000802070702090307--
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to