Deleted Added
full compact
advlib.c (40133) advlib.c (40733)
1/*
2 * Low level routines for the Advanced Systems Inc. SCSI controllers chips
3 *
4 * Copyright (c) 1996-1997 Justin Gibbs.
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions

--- 14 unchanged lines hidden (view full) ---

23 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
25 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29 * SUCH DAMAGE.
30 *
1/*
2 * Low level routines for the Advanced Systems Inc. SCSI controllers chips
3 *
4 * Copyright (c) 1996-1997 Justin Gibbs.
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions

--- 14 unchanged lines hidden (view full) ---

23 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
25 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29 * SUCH DAMAGE.
30 *
31 * $Id: advlib.c,v 1.7 1998/10/07 03:32:57 gibbs Exp $
31 * $Id: advlib.c,v 1.8 1998/10/09 21:40:50 gibbs Exp $
32 */
33/*
34 * Ported from:
35 * advansys.c - Linux Host Driver for AdvanSys SCSI Adapters
36 *
37 * Copyright (c) 1995-1996 Advanced System Products, Inc.
38 * All Rights Reserved.
39 *

--- 986 unchanged lines hidden (view full) ---

1026 u_int8_t scsi_status;
1027 union ccb *ccb;
1028
1029 scsi_status = adv_read_lram_8(adv, halt_q_addr
1030 + ADV_SCSIQ_SCSI_STATUS);
1031 ccb = (union ccb *) adv_read_lram_32(adv, halt_q_addr
1032 + ADV_SCSIQ_D_CCBPTR);
1033 xpt_freeze_devq(ccb->ccb_h.path, /*count*/1);
32 */
33/*
34 * Ported from:
35 * advansys.c - Linux Host Driver for AdvanSys SCSI Adapters
36 *
37 * Copyright (c) 1995-1996 Advanced System Products, Inc.
38 * All Rights Reserved.
39 *

--- 986 unchanged lines hidden (view full) ---

1026 u_int8_t scsi_status;
1027 union ccb *ccb;
1028
1029 scsi_status = adv_read_lram_8(adv, halt_q_addr
1030 + ADV_SCSIQ_SCSI_STATUS);
1031 ccb = (union ccb *) adv_read_lram_32(adv, halt_q_addr
1032 + ADV_SCSIQ_D_CCBPTR);
1033 xpt_freeze_devq(ccb->ccb_h.path, /*count*/1);
1034 ccb->ccb_h.status |= CAM_DEV_QFRZN;
1034 ccb->ccb_h.status |= CAM_DEV_QFRZN|CAM_SCSI_STATUS_ERROR;
1035 ccb->csio.scsi_status = SCSI_STATUS_QUEUE_FULL;
1035 adv_abort_ccb(adv, tid_no, ADV_TIX_TO_LUN(target_ix),
1036 /*ccb*/NULL, CAM_REQUEUE_REQ,
1037 /*queued_only*/TRUE);
1038 scsi_busy = adv_read_lram_8(adv, ADVV_SCSIBUSY_B);
1039 scsi_busy &= ~target_mask;
1040 adv_write_lram_8(adv, ADVV_SCSIBUSY_B, scsi_busy);
1041 }
1042 adv_write_lram_16(adv, ADVV_HALTCODE_W, 0);

--- 922 unchanged lines hidden (view full) ---

1965 && (scsiq->d2.target_ix == target_ix)
1966 && (queued_only == 0
1967 || !(scsiq->q_status & (QS_DISC1|QS_DISC2|QS_BUSY|QS_DONE)))
1968 && (ccb == NULL || (ccb == (union ccb *)scsiq->d2.ccb_ptr))) {
1969 union ccb *aborted_ccb;
1970 struct adv_ccb_info *cinfo;
1971
1972 scsiq->q_status |= QS_ABORTED;
1036 adv_abort_ccb(adv, tid_no, ADV_TIX_TO_LUN(target_ix),
1037 /*ccb*/NULL, CAM_REQUEUE_REQ,
1038 /*queued_only*/TRUE);
1039 scsi_busy = adv_read_lram_8(adv, ADVV_SCSIBUSY_B);
1040 scsi_busy &= ~target_mask;
1041 adv_write_lram_8(adv, ADVV_SCSIBUSY_B, scsi_busy);
1042 }
1043 adv_write_lram_16(adv, ADVV_HALTCODE_W, 0);

--- 922 unchanged lines hidden (view full) ---

1966 && (scsiq->d2.target_ix == target_ix)
1967 && (queued_only == 0
1968 || !(scsiq->q_status & (QS_DISC1|QS_DISC2|QS_BUSY|QS_DONE)))
1969 && (ccb == NULL || (ccb == (union ccb *)scsiq->d2.ccb_ptr))) {
1970 union ccb *aborted_ccb;
1971 struct adv_ccb_info *cinfo;
1972
1973 scsiq->q_status |= QS_ABORTED;
1973 scsiq->d3.done_stat = QD_ABORTED_BY_HOST;
1974 adv_write_lram_8(adv, q_addr + ADV_SCSIQ_B_STATUS,
1975 scsiq->q_status);
1976 aborted_ccb = (union ccb *)scsiq->d2.ccb_ptr;
1977 /* Don't clobber earlier error codes */
1978 if ((aborted_ccb->ccb_h.status & CAM_STATUS_MASK)
1979 == CAM_REQ_INPROG)
1980 aborted_ccb->ccb_h.status |= status;
1981 cinfo = (struct adv_ccb_info *)

--- 58 unchanged lines hidden ---
1974 adv_write_lram_8(adv, q_addr + ADV_SCSIQ_B_STATUS,
1975 scsiq->q_status);
1976 aborted_ccb = (union ccb *)scsiq->d2.ccb_ptr;
1977 /* Don't clobber earlier error codes */
1978 if ((aborted_ccb->ccb_h.status & CAM_STATUS_MASK)
1979 == CAM_REQ_INPROG)
1980 aborted_ccb->ccb_h.status |= status;
1981 cinfo = (struct adv_ccb_info *)

--- 58 unchanged lines hidden ---