Sync up drivers/scsi/aic7xxx
PATCH 19/28 Sync up drivers/scsi/aic7xxx
Sync up drivers/scsi/aic7xxx/. (2651-2660)
==== //depot/aic7xxx/aic7xxx/aic79xx.h#102 - /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx.h ====
home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx.h renamed from tmp/tmp.27050.0 +14 -8
@@ -37,7 +37,7 @@* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGES. * -* $Id: //depot/aic7xxx/aic7xxx/aic79xx.h#102 $ +* $Id: //depot/aic7xxx/aic7xxx/aic79xx.h#104 $ * * $FreeBSD$ */
@@ -75,8 +75,7 @@#define INITIATOR_WILDCARD (~0)#define SCB_LIST_NULL 0xFF00#define SCB_LIST_NULL_LE (aic_htole16(SCB_LIST_NULL)) -#define QOUTFIFO_ENTRY_VALID 0x8000 -#define QOUTFIFO_ENTRY_VALID_LE (aic_htole16(0x8000)) +#define QOUTFIFO_ENTRY_VALID 0x80#define SCBID_IS_NULL (scbid) (((scbid) & 0xFF00 ) == SCB_LIST_NULL)#define SCSIID_TARGET (ahd, scsiid) \
@@ -1059,6 +1058,13 @@typedef void ahd_callback_t (void *); +struct ahd_completion +{ +uint16_t tag; +uint8_t pad[5 ]; +uint8_t valid_tag; +}; +struct ahd_softc {bus_space_tag_t tags[2 ];bus_space_handle_t bshs[2 ];
@@ -1152,16 +1158,12 @@ahd_flag flags;struct seeprom_config *seep_config; -/* Values to store in the SEQCTL register for pause and unpause */ -uint8_t unpause; -uint8_t pause; -/* Command Queues */ +struct ahd_completion *qoutfifo;uint16_t qoutfifonext;uint16_t qoutfifonext_valid_tag;uint16_t qinfifonext;uint16_t qinfifo[AHD_SCB_MAX ]; -uint16_t *qoutfifo;/* * Our qfreeze count. The sequencer compares
@@ -1170,6 +1172,10 @@*/ uint16_t qfreeze_cnt; +/* Values to store in the SEQCTL register for pause and unpause */ +uint8_t unpause; +uint8_t pause; +/* Critical Section Data */ struct cs *critical_sections;u_int num_critical_sections;
==== //depot/aic7xxx/aic7xxx/aic79xx.reg#74 - /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx.reg ====
home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx.reg renamed from tmp/tmp.27050.1 +12 -12
@@ -39,7 +39,7 @@ * * $FreeBSD$ */ -VERSION = "$Id: //depot/aic7xxx/aic7xxx/aic79xx.reg#74 $" +VERSION = "$Id: //depot/aic7xxx/aic7xxx/aic79xx.reg#75 $" /* * This file is processed by the aic7xxx_asm utility for use in assembling
@@ -3642,6 +3642,17 @@ size 1 } /* + * Kernel and sequencer offsets into the queue of + * incoming target mode command descriptors. The + * queue is full when the KERNEL_TQINPOS == TQINPOS. + */ + KERNEL_TQINPOS { + size 1 + } + TQINPOS { + size 1 + } + /* * Base address of our shared data with the kernel driver in host * memory. This includes the qoutfifo and target mode * incoming command queue.
@@ -3656,17 +3667,6 @@ QOUTFIFO_NEXT_ADDR { size 4 } - /* - * Kernel and sequencer offsets into the queue of - * incoming target mode command descriptors. The - * queue is full when the KERNEL_TQINPOS == TQINPOS. - */ - KERNEL_TQINPOS { - size 1 - } - TQINPOS { - size 1 - } ARG_1 { size 1 mask SEND_MSG 0x80
==== //depot/aic7xxx/aic7xxx/aic79xx.seq#112 - /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx.seq ====
home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx.seq renamed from tmp/tmp.27050.2 +7 -8
@@ -40,7 +40,7 @@ * $FreeBSD$ */ -VERSION = "$Id: //depot/aic7xxx/aic7xxx/aic79xx.seq#112 $" +VERSION = "$Id: //depot/aic7xxx/aic7xxx/aic79xx.seq#116 $" PATCH_ARG_LIST = "struct ahd_softc *ahd" PREFIX = "ahd_"
@@ -75,7 +75,7 @@ mov A, KERNEL_QFREEZE_COUNT; cmp QFREEZE_COUNT, A jne check_frozen_completions; mov A, KERNEL_QFREEZE_COUNT[1]; - cmp QFREEZE_COUNT, A jne check_frozen_completions; + cmp QFREEZE_COUNT[1], A jne check_frozen_completions; and SEQ_FLAGS2, ~SELECTOUT_QFROZEN; jmp check_waiting_list; check_frozen_completions:
@@ -101,6 +101,7 @@ join_lists: bmov SCB_NEXT_COMPLETE, COMPLETE_SCB_HEAD, 2; bmov COMPLETE_SCB_HEAD, COMPLETE_ON_QFREEZE_HEAD, 2; + mvi COMPLETE_ON_QFREEZE_HEAD[1], SCB_LIST_NULL; jmp idle_loop_checkbus; check_waiting_list: cmp WAITING_TID_HEAD[1], SCB_LIST_NULL je idle_loop_checkbus;
@@ -217,7 +218,6 @@ /* FALLTHROUGH */ scbdma_tohost_done: test CCSCBCTL, CCARREN jz fill_qoutfifo_dmadone; - and CCSCBCTL, ~(CCARREN|CCSCBEN); /* * An SCB has been succesfully uploaded to the host. * If the SCB was uploaded for some reason other than
@@ -226,6 +226,7 @@ * wait until any select-out activity has halted, and * then queue the completion. */ + and CCSCBCTL, ~(CCARREN|CCSCBEN); bmov COMPLETE_DMA_SCB_HEAD, SCB_NEXT_COMPLETE, 2; cmp SCB_NEXT_COMPLETE[1], SCB_LIST_NULL jne . + 2; mvi COMPLETE_DMA_SCB_TAIL[1], SCB_LIST_NULL;
@@ -360,14 +361,14 @@ * Keep track of the SCBs we are dmaing just * in case the DMA fails or is aborted. */ - mov A, QOUTFIFO_ENTRY_VALID_TAG; bmov COMPLETE_SCB_DMAINPROG_HEAD, COMPLETE_SCB_HEAD, 2; mvi CCSCBCTL, CCSCBRESET; bmov SCBHADDR, QOUTFIFO_NEXT_ADDR, 4; bmov SCBPTR, COMPLETE_SCB_HEAD, 2; fill_qoutfifo_loop: - mov CCSCBRAM, SCBPTR; - or CCSCBRAM, A, SCBPTR[1]; + bmov CCSCBRAM, SCBPTR, 2; + bmov CCSCBRAM, ALLZEROS, 5; + mov CCSCBRAM, QOUTFIFO_ENTRY_VALID_TAG; mov NONE, SDSCB_QOFF; inc INT_COALESCING_CMDCOUNT; add CMDS_PENDING, -1;
@@ -405,9 +406,7 @@ dma_scb: mvi SCBHCNT, SCB_TRANSFER_SIZE; mov CCSCBCTL, SINDEX ret; -END_CRITICAL; -BEGIN_CRITICAL; setjmp: bmov LONGJMP_ADDR, STACK, 2 ret; setjmp_inline:
==== //depot/aic7xxx/aic7xxx/aic79xx.c#228 - /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx_core.c ====
home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx_core.c renamed from tmp/tmp.27050.3 +32 -11
99 lines not on this page · raw message
==== //depot/aic7xxx/aic7xxx/aic79xx_inline.h#55 - /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx_inline.h ====
home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx_inline.h renamed from tmp/tmp.27050.4 +7 -6
@@ -37,7 +37,7 @@* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGES. * -* $Id: //depot/aic7xxx/aic7xxx/aic79xx_inline.h#55 $ +* $Id: //depot/aic7xxx/aic7xxx/aic79xx_inline.h#56 $ * * $FreeBSD$ */
@@ -838,7 +838,8 @@ ahd_sync_qoutfifo(struct ahd_softc *ahd, int op) { aic_dmamap_sync(ahd, ahd->shared_data_dmat, ahd->shared_data_map.dmamap, - /*offset*/0, /*len*/AHD_SCB_MAX * sizeof(uint16_t), op); + /*offset*/0, + /*len*/AHD_SCB_MAX * sizeof(struct ahd_completion), op); } static __inline void
@@ -868,10 +869,10 @@ retval =0 ;aic_dmamap_sync (ahd, ahd->shared_data_dmat, ahd->shared_data_map.dmamap, -/*offset*/ ahd->qoutfifonext,/*len*/ 2 , -BUS_DMASYNC_POSTREAD ); -if ((ahd->qoutfifo[ahd->qoutfifonext] - &QOUTFIFO_ENTRY_VALID_LE ) == ahd->qoutfifonext_valid_tag) +/*offset*/ ahd->qoutfifonext *sizeof (*ahd->qoutfifo), +/*len*/ sizeof (*ahd->qoutfifo),BUS_DMASYNC_POSTREAD ); +if (ahd->qoutfifo[ahd->qoutfifonext].valid_tag + == ahd->qoutfifonext_valid_tag) retval |=AHD_RUN_QOUTFIFO ;#ifdef AHD_TARGET_MODE if ((ahd->flags & AHD_TARGETROLE) != 0
==== //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_reg.h#81 - /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx_reg.h_shipped ====
home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx_reg.h_shipped renamed from tmp/tmp.27050.5 +20 -20
@@ -2,8 +2,8 @@ * DO NOT EDIT - This file is automatically generated * from the following source files: * - * $Id: //depot/aic7xxx/aic7xxx/aic79xx.seq#112 $ - * $Id: //depot/aic7xxx/aic7xxx/aic79xx.reg#74 $ + * $Id: //depot/aic7xxx/aic7xxx/aic79xx.seq#114 $ + * $Id: //depot/aic7xxx/aic7xxx/aic79xx.reg#75 $ */ typedef int (ahd_reg_print_t)(u_int, u_int *, u_int); typedef struct ahd_reg_parse_entry {
@@ -2078,31 +2078,31 @@ #endif #if AIC_DEBUG_REGISTERS -ahd_reg_print_t ahd_shared_data_addr_print; +ahd_reg_print_t ahd_kernel_tqinpos_print; #else -#define ahd_shared_data_addr_print(regvalue, cur_col, wrap) \ - ahd_print_register(NULL, 0, "SHARED_DATA_ADDR", 0x13e, regvalue, cur_col, wrap) +#define ahd_kernel_tqinpos_print(regvalue, cur_col, wrap) \ + ahd_print_register(NULL, 0, "KERNEL_TQINPOS", 0x13e, regvalue, cur_col, wrap) #endif #if AIC_DEBUG_REGISTERS -ahd_reg_print_t ahd_qoutfifo_next_addr_print; +ahd_reg_print_t ahd_tqinpos_print; #else -#define ahd_qoutfifo_next_addr_print(regvalue, cur_col, wrap) \ - ahd_print_register(NULL, 0, "QOUTFIFO_NEXT_ADDR", 0x142, regvalue, cur_col, wrap) +#define ahd_tqinpos_print(regvalue, cur_col, wrap) \ + ahd_print_register(NULL, 0, "TQINPOS", 0x13f, regvalue, cur_col, wrap) #endif #if AIC_DEBUG_REGISTERS -ahd_reg_print_t ahd_kernel_tqinpos_print; +ahd_reg_print_t ahd_shared_data_addr_print; #else -#define ahd_kernel_tqinpos_print(regvalue, cur_col, wrap) \ - ahd_print_register(NULL, 0, "KERNEL_TQINPOS", 0x146, regvalue, cur_col, wrap) +#define ahd_shared_data_addr_print(regvalue, cur_col, wrap) \ + ahd_print_register(NULL, 0, "SHARED_DATA_ADDR", 0x140, regvalue, cur_col, wrap) #endif #if AIC_DEBUG_REGISTERS -ahd_reg_print_t ahd_tqinpos_print; +ahd_reg_print_t ahd_qoutfifo_next_addr_print; #else -#define ahd_tqinpos_print(regvalue, cur_col, wrap) \ - ahd_print_register(NULL, 0, "TQINPOS", 0x147, regvalue, cur_col, wrap) +#define ahd_qoutfifo_next_addr_print(regvalue, cur_col, wrap) \ + ahd_print_register(NULL, 0, "QOUTFIFO_NEXT_ADDR", 0x144, regvalue, cur_col, wrap) #endif #if AIC_DEBUG_REGISTERS
@@ -3601,13 +3601,13 @@ #define QOUTFIFO_ENTRY_VALID_TAG 0x13d -#define SHARED_DATA_ADDR 0x13e +#define KERNEL_TQINPOS 0x13e -#define QOUTFIFO_NEXT_ADDR 0x142 +#define TQINPOS 0x13f -#define KERNEL_TQINPOS 0x146 +#define SHARED_DATA_ADDR 0x140 -#define TQINPOS 0x147 +#define QOUTFIFO_NEXT_ADDR 0x144 #define ARG_1 0x148 #define RETURN_1 0x148
@@ -3799,5 +3799,5 @@ /* Exported Labels */ -#define LABEL_seq_isr 0x280 -#define LABEL_timer_isr 0x27c +#define LABEL_seq_isr 0x281 +#define LABEL_timer_isr 0x27d
==== //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_reg_print.c#62 - /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx_reg_print.c_shipped ====
home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx_reg_print.c_shipped renamed from tmp/tmp.27050.6 +13 -13
@@ -2,8 +2,8 @@ * DO NOT EDIT - This file is automatically generated * from the following source files: * - * $Id: //depot/aic7xxx/aic7xxx/aic79xx.seq#112 $ - * $Id: //depot/aic7xxx/aic7xxx/aic79xx.reg#74 $ + * $Id: //depot/aic7xxx/aic7xxx/aic79xx.seq#114 $ + * $Id: //depot/aic7xxx/aic7xxx/aic79xx.reg#75 $ */ #include "aic79xx_osm.h"
@@ -3299,31 +3299,31 @@ } int -ahd_shared_data_addr_print(u_int regvalue, u_int *cur_col, u_int wrap) +ahd_kernel_tqinpos_print(u_int regvalue, u_int *cur_col, u_int wrap) { - return (ahd_print_register(NULL, 0, "SHARED_DATA_ADDR", + return (ahd_print_register(NULL, 0, "KERNEL_TQINPOS", 0x13e, regvalue, cur_col, wrap)); } int -ahd_qoutfifo_next_addr_print(u_int regvalue, u_int *cur_col, u_int wrap) +ahd_tqinpos_print(u_int regvalue, u_int *cur_col, u_int wrap) { - return (ahd_print_register(NULL, 0, "QOUTFIFO_NEXT_ADDR", - 0x142, regvalue, cur_col, wrap)); + return (ahd_print_register(NULL, 0, "TQINPOS", + 0x13f, regvalue, cur_col, wrap)); } int -ahd_kernel_tqinpos_print(u_int regvalue, u_int *cur_col, u_int wrap) +ahd_shared_data_addr_print(u_int regvalue, u_int *cur_col, u_int wrap) { - return (ahd_print_register(NULL, 0, "KERNEL_TQINPOS", - 0x146, regvalue, cur_col, wrap)); + return (ahd_print_register(NULL, 0, "SHARED_DATA_ADDR", + 0x140, regvalue, cur_col, wrap)); } int -ahd_tqinpos_print(u_int regvalue, u_int *cur_col, u_int wrap) +ahd_qoutfifo_next_addr_print(u_int regvalue, u_int *cur_col, u_int wrap) { - return (ahd_print_register(NULL, 0, "TQINPOS", - 0x147, regvalue, cur_col, wrap)); + return (ahd_print_register(NULL, 0, "QOUTFIFO_NEXT_ADDR", + 0x144, regvalue, cur_col, wrap)); } static ahd_reg_parse_entry_t ARG_1_parse_table[] = {
==== //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_seq.h#82 - /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx_seq.h_shipped ====
home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx_seq.h_shipped renamed from tmp/tmp.27050.7 +523 -522
1,444 lines not on this page · raw message