On Mon, Sep 22, 2003 at 09:56:38PM +0200, [EMAIL PROTECTED] wrote:
> A scsi device declares its level of scsi compliance.
> Most USB storage devices are not very scsi compliant at all,
> and report 0 there.

Not exactly.  The reporting of 0, 1, 2, or something random in that field
appears to be completely unrelated to the capabilities of the device.  I've
found -zero- correlation between the revision level and how the device
functions.

Also, sampling my devices, I see a wide range of values reported -- saying
'most report 0' would be incorrect based on my data.

> To everybody's surprise USB storage does
> 
>         US_DEBUGP("Fixing INQUIRY data to show SCSI rev 2 - was %d\n",
>                   data_ptr[2] & 7);
> 
>         /* Change the SCSI revision number */
>         data_ptr[2] = (data_ptr[2] & ~7) | 2;
> 
> It claims that the device is SCSI-2 compliant, even when the
> device itself does not make that claim at all.
> 
> Suppose that we stop changing this compliance level.
> Then getting SCSI-1 or no compliance level could be a
> "conservative mode" flag.
> 
> [Of course this was done for a reason - USB storage was written
> assuming the SCSI layer given. If we stop changing the SCSI level
> that may require changes in the SCSI code. Probably Matt remembers
> what the problems were.]

It's been a couple of years since I looked at this.... but I positively
recall that I added this code to fix definate and clear problems.

One that is immediately obvious to me is that if the SCSI level is < 2, we
can't address anything beyond the 6-byte command limit.

Another that immediately comes to mind is that the display in
/proc/scsi/scsi would show version ffffffff

I've heard arguments from various people (including Jorge Shilling and some
device-vendor folks) that I shouldn't override this value... the argument I
used to counter that request was that things break completely if I don't
override the value; I don't have a record of what specifically breaks.

Matt

-- 
Matthew Dharm                              Home: [EMAIL PROTECTED] 
Maintainer, Linux USB Mass Storage Driver

A:  The most ironic oxymoron wins ...
DP: "Microsoft Works"
A:  Uh, okay, you win.
                                        -- A.J. & Dust Puppy
User Friendly, 1/18/1998

Attachment: pgp00000.pgp
Description: PGP signature

Reply via email to