This save some negotiation in the driver if we already know a feature
isn't supported. Shoudl't we always set SDEV_NOWIDE | SDEV_NOTAG for
SID_ANSII < 2 ?
--
Manuel Bouyer, LIP6, Universite Paris VI. Manuel...@lip6.fr
--
> Hi,
> In scsiconf.c we actually do the following:
> if ((inqbuf.version & SID_ANSII) >= 2) {
> if ((inqbuf.flags & SID_CmdQue) == 0)
> sc_link->quirks |= SDEV_NOTAG;
> if ((inqbuf.flags & SID_Sync) == 0)
> sc_link->quirks |= SDEV_NOSYNC;
> if ((inqbuf.flags & SID_WBus16) == 0)
> sc_link->quirks |= SDEV_NOWIDE;
> }
>
> This save some negotiation in the driver if we already know a feature
> isn't supported. Shoudl't we always set SDEV_NOWIDE | SDEV_NOTAG for
> SID_ANSII < 2 ?
No. SYNC was was supported for SID_ANSII == 0.
Yes, but I was only talking about WIDE and TAG, not SYNC.
> On Mon, Jul 24, 2000 at 08:55:37AM -0700, Matthew Jacob wrote:
> > > This save some negotiation in the driver if we already know a feature
> > > isn't supported. Shoudl't we always set SDEV_NOWIDE | SDEV_NOTAG for
> > > SID_ANSII < 2 ?
> >
> > No. SYNC was was supported for SID_ANSII == 0.
>
> Yes, but I was only talking about WIDE and TAG, not SYNC.
Sorry- you're right-. Just woke up. Still, I'm reluctant to set NOWIDE/NOTAG
for for some CCS devices- they probably work. But this is all rapidly getting
to be an edge case.
I think I could see a case be made for SDEV_NOWIDE | SDEV_NOTAG set
for SID_ANSII == 0.
This whole midlayer needs some work so that the HBA doesn't do negotiations
until the midlayer says to do so anyway. I think I'll try and fix this for
1.5.
-matt
Ok, it seems most drivers ignore these flags anyway. A grep in sys/dev/*
shows that aic7xxx.c handles only SDEV_NOTAG. Only isp_netbsd.c, and siop since
a few minutes sees to DTRT with SDEV_NOTAG, SDEV_NOSYNC and SDEV_NOWIDE :)
>
> I think I could see a case be made for SDEV_NOWIDE | SDEV_NOTAG set
> for SID_ANSII == 0.
Ok, I'll do so unless someone objects.
>
> This whole midlayer needs some work so that the HBA doesn't do negotiations
> until the midlayer says to do so anyway. I think I'll try and fix this for
> 1.5.
Great, thanks !
Where do those flags originate?
-is
This might even help for PR/9646, where an old CD-Rom drive
is not probed right. In a variation, I had another version of
the ahc driver loop endlessly (well, I reset the machine after
15 hours or so :) trying to ascertain the CD-Rom's capabilities
-- turning off "Do wide negociation" in the Adaptec's BIOS
cured the problem.
mjl
From the inquiry buffer, returned by the device. That is, the device tell
us what it can do and we translate this for the controller.