Subject: Re: MI SCSI driver and sync transfer for SCSI1 drives
To: Izumi Tsutsui <tsutsui@ceres.dti.ne.jp>
From: Manuel Bouyer <bouyer@antioche.eu.org>
List: tech-kern
Date: 11/18/2001 16:06:01
On Sun, Nov 18, 2001 at 07:14:18PM +0900, Izumi Tsutsui wrote:
> Today I'm trying to change some SCSI drivers to use
> MI ADAPTER_REQ_SET_XFER_MODE callback, but I notice
> the MI layer does not set transfer mode for some devices.
> 
> My SEAGATE ST32430N HDD actually supports 10MB/s sync
> transfers, but it reports its scsi_version is SCSI1 for inquiry:
> 
> >update_xfer_mode: target=0, period=25, offset=8
> >sd0 at scsibus0 target 0 lun 0: <SEAGATE, ST32430N, 0492> SCSI1 0/direct fixed
> >sd0: 2047 MB, 3992 cyl, 9 head, 116 sec, 512 bytes/sect x 4193415 sectors
> >SET_XFER_MODE: xm_target=0, xm_mode=0x0, xm_period=0, xm_offset=0
> >update_xfer_mode: target=0, period=25, offset=8
> >sd0: async, 8-bit transfers
> (some debug messages are included)
> 
> In scsiconf.c:scsi_probe_device(), peripheral capabilities
> (like SYNC or TQING) are set only for SCSI2 devices, so
> scsipi_base.c:scsipi_async_event_xfer_mode() does not set
> sync period/offset for any SCSI1 drives.
> 
> Is it OK to remove periph_cap check for sync transfer
> in scsipi_async_event_xfer_mode()?
> Or is it better to add a new quirk value like PQUIRK_SYNC
> for SCSI1 drives in scsiconf.c?

I think it's better to add a new quirk for these "pseudo" SCSI1 devices.
Some real SCSI1 device fail badly when a sync negotiation is initialed.

--
Manuel Bouyer <bouyer@antioche.eu.org>
--