Subject: MI SCSI driver and sync transfer for SCSI1 drives
To: None <>
From: Izumi Tsutsui <>
List: tech-kern
Date: 11/18/2001 19:14:18
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?
Izumi Tsutsui