minimum_cmd_size is only used for read_write commands, not for others
like MODE_SENSE_6 and friends.

Nick


> > As in, try a 6 byte command, and if that fails try a 10 byte command
> > instead?
>
> As in, if it fails to reset, then
>
>       sc->softc->minimum_cmd_size = 10;
>       printf( "auto-quirking mumble foo\n");
>
> It would let most of the existing quirks table go away, but
> would require additional retries.  The cool thing is that it
> would all happen in the error path, so, other than increasing
> the number of retries to cause it to engage by itself without
> having to try the disklabel 3 times, which is also failure
> mode stuff, it adds no overhead to working devices, and makes
> non-working ones work with the overhead they have to have
> anyway.
>
>
> > Unfortunately although I'm maintaining USB in -current, I don't have a
> > complete in depth understanding of the code yet. :(  I'm mainly trying
> > to fix my problems by taking from NetBSD.
>
> I took a look at the code.  I have to say it's opaque.  It
> makes a better door than a window.  ;-).
>
> I haven't figured out how to turn a struct umass_softc * into
> a struct da_softc *, or I would have given you an ugly little
> patch against an older version of FreeBSD to try.  8-p.
>
> I think someone with one of these things, or with a quirky
> one with the DA_Q_NO_6_BYTE removed from the quirks table,
> is going to have to set CAM_DEBUG on big-time, and then
> see where the reset error falls out, add a static fail
> counter to that place in the code, and then if it fails
> and the fail counter >= 3 (for example), reset the minimum
> command size to 10.
>
> That should "just work".
>
> If the reset is retried enough times, you could get rid of
> the quirks entries that existed solely for this quirk; I
> think that a
>
>       6 byte commands not supported: changing to 10 byte commands
>
> message on the console is probably acceptable "noise" in
> trade for getting rid of it, and supporting future devices
> with the same problem, without needing to "quirk" them.
>
> I think DA_Q_NO_SYNC_CACHE might be handleable the same
> way, which would get rid of all the quirk entries, and
> maybe the need for a quirk table at all (it looks like
> the daclose/dadump/dashutdown sync code could be static'ed
> and shared, as well).
>
> Maybe this is a CAM-specific thing, and shouldn't be
> handled in the USB code at all (you won't know until
> you see a quirked device failure with the CAM debug, or
> you write the CAM code to tape and run it through your
> dental fillings or otherwise load it into your head).
>
> -- Terry
>
> To Unsubscribe: send mail to [EMAIL PROTECTED]
> with "unsubscribe freebsd-hardware" in the body of the message
>

-- 
[EMAIL PROTECTED]                  http://www.van-laarhoven.org/
[EMAIL PROTECTED]                        http://www.etla.net/~n_hibma/


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message

Reply via email to