aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/ciss/ciss.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/ciss/ciss.c')
-rw-r--r--sys/dev/ciss/ciss.c24
1 files changed, 21 insertions, 3 deletions
diff --git a/sys/dev/ciss/ciss.c b/sys/dev/ciss/ciss.c
index ed61632cb10b..cd90d7e8a7b3 100644
--- a/sys/dev/ciss/ciss.c
+++ b/sys/dev/ciss/ciss.c
@@ -2648,6 +2648,12 @@ ciss_cam_action(struct cam_sim *sim, union ccb *ccb)
cpi->unit_number = cam_sim_unit(sim);
cpi->bus_id = cam_sim_bus(sim);
cpi->base_transfer_speed = 132 * 1024; /* XXX what to set this to? */
+#ifdef CAM_NEW_TRAN_CODE
+ cpi->transport = XPORT_SPI;
+ cpi->transport_version = 2;
+ cpi->protocol = PROTO_SCSI;
+ cpi->protocol_version = SCSI_REV_2;
+#endif
ccb->ccb_h.status = CAM_REQ_CMP;
break;
}
@@ -2656,16 +2662,28 @@ ciss_cam_action(struct cam_sim *sim, union ccb *ccb)
{
struct ccb_trans_settings *cts = &ccb->cts;
int bus, target;
+#ifdef CAM_NEW_TRAN_CODE
+ struct ccb_trans_settings_spi *spi =
+ &cts->xport_specific.spi;
+#endif
bus = cam_sim_bus(sim);
target = cts->ccb_h.target_id;
debug(1, "XPT_GET_TRAN_SETTINGS %d:%d", bus, target);
- cts->valid = 0;
-
/* disconnect always OK */
+#ifdef CAM_NEW_TRAN_CODE
+ cts->protocol = PROTO_SCSI;
+ cts->protocol_version = SCSI_REV_2;
+ cts->transport = XPORT_SPI;
+ cts->transport_version = 2;
+
+ spi->valid = CTS_SPI_VALID_DISC;
+ spi->flags = CTS_SPI_FLAGS_DISC_ENB;
+#else
cts->flags |= CCB_TRANS_DISC_ENB;
- cts->valid |= CCB_TRANS_DISC_VALID;
+ cts->valid = CCB_TRANS_DISC_VALID;
+#endif
cts->ccb_h.status = CAM_REQ_CMP;
break;