diff options
Diffstat (limited to 'sys/dev/advansys/advlib.c')
| -rw-r--r-- | sys/dev/advansys/advlib.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/sys/dev/advansys/advlib.c b/sys/dev/advansys/advlib.c index 565b8c2bc594..04c15a4940d1 100644 --- a/sys/dev/advansys/advlib.c +++ b/sys/dev/advansys/advlib.c @@ -1135,11 +1135,26 @@ adv_set_syncrate(struct adv_softc *adv, struct cam_path *path, * new transfer parameters. */ struct ccb_trans_settings neg; - + memset(&neg, 0, sizeof (neg)); +#ifdef CAM_NEW_TRAN_CODE + struct ccb_trans_settings_spi *spi = + &neg.xport_specific.spi; + + neg.protocol = PROTO_SCSI; + neg.protocol_version = SCSI_REV_2; + neg.transport = XPORT_SPI; + neg.transport_version = 2; + + spi->sync_offset = offset; + spi->sync_period = period; + spi->valid |= CTS_SPI_VALID_SYNC_OFFSET; + spi->valid |= CTS_SPI_VALID_SYNC_RATE; +#else neg.sync_period = period; neg.sync_offset = offset; neg.valid = CCB_TRANS_SYNC_RATE_VALID | CCB_TRANS_SYNC_OFFSET_VALID; +#endif xpt_setup_ccb(&neg.ccb_h, path, /*priority*/1); xpt_async(AC_TRANSFER_NEG, path, &neg); } |
