diff options
author | scottl <scottl@FreeBSD.org> | 2002-08-10 19:48:27 +0000 |
---|---|---|
committer | scottl <scottl@FreeBSD.org> | 2002-08-10 19:48:27 +0000 |
commit | 48bfad9a43977092a9787bdc999365b8a102981b (patch) | |
tree | dc90035a1b98b113317b5c800d329606c0f911b8 /sys/dev | |
parent | b7e2fb065562aa151c25f0e0862b7d7417777804 (diff) | |
download | FreeBSD-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')
-rw-r--r-- | sys/dev/ata/atapi-cam.c | 15 |
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; |