summaryrefslogtreecommitdiffstats
path: root/sys/dev/ata/atapi-cam.c
diff options
context:
space:
mode:
authorscottl <scottl@FreeBSD.org>2002-08-10 19:48:27 +0000
committerscottl <scottl@FreeBSD.org>2002-08-10 19:48:27 +0000
commit48bfad9a43977092a9787bdc999365b8a102981b (patch)
treedc90035a1b98b113317b5c800d329606c0f911b8 /sys/dev/ata/atapi-cam.c
parentb7e2fb065562aa151c25f0e0862b7d7417777804 (diff)
downloadFreeBSD-src-48bfad9a43977092a9787bdc999365b8a102981b.zip
FreeBSD-src-48bfad9a43977092a9787bdc999365b8a102981b.tar.gz
Fix the GET_TRAN_SETTINGS and SET_TRAN_SETTINGS ops to be more correct.
Diffstat (limited to 'sys/dev/ata/atapi-cam.c')
-rw-r--r--sys/dev/ata/atapi-cam.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/sys/dev/ata/atapi-cam.c b/sys/dev/ata/atapi-cam.c
index 85aa5bc..249baeb 100644
--- a/sys/dev/ata/atapi-cam.c
+++ b/sys/dev/ata/atapi-cam.c
@@ -286,21 +286,20 @@ atapi_action(struct cam_sim *sim, union ccb *ccb)
case XPT_SET_TRAN_SETTINGS:
/* ignore these, we're not doing SCSI here */
- ccb->ccb_h.status = CAM_REQ_CMP;
+ ccb->ccb_h.status = CAM_FUNC_NOTAVAIL;
xpt_done(ccb);
return;
case XPT_GET_TRAN_SETTINGS: {
struct ccb_trans_settings *cts = &ccb->cts;
- cts->flags |=
- (CCB_TRANS_SYNC_RATE_VALID | CCB_TRANS_SYNC_OFFSET_VALID |
- CCB_TRANS_BUS_WIDTH_VALID | CCB_TRANS_DISC_VALID |
- CCB_TRANS_TQ_VALID);
+ /*
+ * XXX The default CAM transport code is very scsi specific and
+ * doesn't understand IDE speeds very well. Be silent about it
+ * here and let it default to what is set in XPT_PATH_INQ
+ */
+ cts->valid = (CCB_TRANS_DISC_VALID | CCB_TRANS_TQ_VALID);
cts->flags &= ~(CCB_TRANS_DISC_ENB | CCB_TRANS_TAG_ENB);
- cts->sync_period = 0;
- cts->sync_offset = 0;
- cts->bus_width = 16;
ccb->ccb_h.status = CAM_REQ_CMP;
xpt_done(ccb);
return;
OpenPOWER on IntegriCloud