Sync up drivers/scsi/aic7xxx
PATCH 22/28 Sync up drivers/scsi/aic7xxx
Sync up drivers/scsi/aic7xxx/. (2686-2789)
==== //depot/linux-aic79xx-2.5.0/drivers/scsi/aic7xxx/Kconfig.aic79xx#4 - /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/Kconfig.aic79xx ====
home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/Kconfig.aic79xx renamed from tmp/tmp.27147.0 +2 -2
@@ -1,10 +1,10 @@ # # AIC79XX 2.5.X Kernel configuration File. -# $Id: //depot/linux-aic79xx-2.5.0/drivers/scsi/aic7xxx/Kconfig.aic79xx#4 $ +# $Id: //depot/linux-aic79xx-2.5.0/drivers/scsi/aic7xxx/Kconfig.aic79xx#5 $ # config SCSI_AIC79XX tristate "Adaptec AIC79xx U320 support" - depends on PCI + depends on PCI && SCSI help This driver supports all of Adaptec's Ultra 320 PCI-X based SCSI controllers.
==== //depot/linux-aic79xx-2.5.0/drivers/scsi/aic7xxx/Kconfig.aic7xxx#8 - /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/Kconfig.aic7xxx ====
home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/Kconfig.aic7xxx renamed from tmp/tmp.27147.1 +2 -2
@@ -1,10 +1,10 @@ # # AIC7XXX and AIC79XX 2.5.X Kernel configuration File. -# $Id: //depot/linux-aic79xx-2.5.0/drivers/scsi/aic7xxx/Kconfig.aic7xxx#8 $ +# $Id: //depot/linux-aic79xx-2.5.0/drivers/scsi/aic7xxx/Kconfig.aic7xxx#9 $ # config SCSI_AIC7XXX tristate "Adaptec AIC7xxx Fast -> U160 support (New Driver)" - depends on PCI || EISA + depends on (PCI || EISA) && SCSI ---help--- This driver supports all of Adaptec's Fast through Ultra 160 PCI based SCSI controllers as well as the aic7770 based EISA and VLB
==== //depot/linux-aic79xx-2.5.0/drivers/scsi/aic7xxx/Makefile#8 - /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/Makefile ====
home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/Makefile renamed from tmp/tmp.27147.2 +1 -1
@@ -1,7 +1,7 @@ # # Makefile for the Linux aic7xxx SCSI driver. # -# $Id: //depot/linux-aic79xx-2.5.0/drivers/scsi/aic7xxx/Makefile#8 $ +# $Id: //depot/linux-aic79xx-2.5.0/drivers/scsi/aic7xxx/Makefile#9 $ # # Let kbuild descend into aicasm when cleaning
==== //depot/aic7xxx/aic7xxx/aic79xx.c#238 - /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.27147.3 +9 -1
@@ -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.c#238 $ +* $Id: //depot/aic7xxx/aic7xxx/aic79xx.c#239 $ */ #ifdef __linux__
@@ -338,6 +338,14 @@ahd_outb (ahd,SCSISEQ1 ,ahd_inb (ahd,SCSISEQ_TEMPLATE ) & (ENSELI |ENRSELI |ENAUTOATNP ));ahd_set_modes (ahd,AHD_MODE_CCHAN ,AHD_MODE_CCHAN ); + +/* +* Clear any pending sequencer interrupt. It is no +* longer relevant since we're resetting the Program +* Counter. +*/ +ahd_outb (ahd,CLRINT ,CLRSEQINT ); +ahd_outb (ahd,SEQCTL0 ,FASTMODE |SEQRESET );ahd_unpause (ahd); }
==== //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_osm.c#200 - /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx_osm.c ====
home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx_osm.c renamed from tmp/tmp.27147.4 +150 -14
285 lines not on this page · raw message
==== //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_osm.h#156 - /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx_osm.h ====
home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx_osm.h renamed from tmp/tmp.27147.5 +2 -2
@@ -36,7 +36,7 @@* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGES. * -* $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_osm.h#156 $ +* $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_osm.h#157 $ * */ #ifndef _AIC79XX_LINUX_H_
@@ -94,7 +94,7 @@#include <linux/smp.h> #endif -#define AIC79XX_DRIVER_VERSION "2.0.5" +#define AIC79XX_DRIVER_VERSION "2.0.6"/********************* Definitions Required by the Core ***********************/ /*
==== //depot/aic7xxx/aic7xxx/aic7xxx.c#148 - /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic7xxx_core.c ====
home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic7xxx_core.c renamed from tmp/tmp.27147.6 +11 -1
@@ -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/aic7xxx.c#148 $ +* $Id: //depot/aic7xxx/aic7xxx/aic7xxx.c#150 $ */ #ifdef __linux__
@@ -290,10 +290,19 @@ahc_outb (ahc,SEQ_FLAGS2 ,ahc_inb (ahc,SEQ_FLAGS2 ) & ~SCB_DMA ); } + +/* +* Clear any pending sequencer interrupt. It is no +* longer relevant since we're resetting the Program +* Counter. +*/ +ahc_outb (ahc,CLRINT ,CLRSEQINT ); +ahc_outb (ahc,MWI_RESIDUAL ,0 );ahc_outb (ahc,SEQCTL , ahc->seqctl);ahc_outb (ahc,SEQADDR0 ,0 );ahc_outb (ahc,SEQADDR1 ,0 ); +ahc_unpause (ahc); }
@@ -365,6 +374,7 @@if ((scb =TAILQ_FIRST (queue)) !=NULL && (scb->flags &SCB_ACTIVE ) ==0 ) { scb->flags |=SCB_ACTIVE ; +aic_scb_timer_start (scb);ahc_queue_scb (ahc, scb); } }
==== //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic7xxx_osm.c#263 - /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic7xxx_osm.c ====
home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic7xxx_osm.c renamed from tmp/tmp.27147.7 +151 -15
293 lines not on this page · raw message
==== //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic7xxx_osm.h#168 - /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic7xxx_osm.h ====
home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic7xxx_osm.h renamed from tmp/tmp.27147.8 +2 -2
@@ -53,7 +53,7 @@* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGES. * -* $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic7xxx_osm.h#168 $ +* $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic7xxx_osm.h#169 $ * */ #ifndef _AIC7XXX_LINUX_H_
@@ -113,7 +113,7 @@#include <linux/smp.h> #endif -#define AIC7XXX_DRIVER_VERSION "6.3.4" +#define AIC7XXX_DRIVER_VERSION "6.3.5"/********************* Definitions Required by the Core ***********************/ /*
==== //depot/aic7xxx/aic7xxx/aicasm/aicasm_gram.y#29 - /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aicasm/aicasm_gram.y ====
home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aicasm/aicasm_gram.y renamed from tmp/tmp.27147.9 +17 -2
@@ -38,7 +38,7 @@ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGES. * - * $Id: //depot/aic7xxx/aic7xxx/aicasm/aicasm_gram.y#29 $ + * $Id: //depot/aic7xxx/aic7xxx/aicasm/aicasm_gram.y#30 $ * * $FreeBSD$ */
@@ -157,6 +157,8 @@ %token T_END_CS +%token T_PAD_PAGE + %token T_FIELD %token T_ENUM
@@ -189,6 +191,10 @@ %token <value> T_OR +/* 16 bit extensions */ +%token <value> T_OR16 T_AND16 T_XOR16 T_ADD16 +%token <value> T_ADC16 T_MVI16 T_TEST16 T_CMP16 T_CMPXCHG + %token T_RET %token T_NOP
@@ -207,7 +213,7 @@ %type <expression> expression immediate immediate_or_a -%type <value> export ret f1_opcode f2_opcode jmp_jc_jnc_call jz_jnz je_jne +%type <value> export ret f1_opcode f2_opcode f4_opcode jmp_jc_jnc_call jz_jnz je_jne %type <value> mode_value mode_list macro_arglist
@@ -1304,6 +1310,15 @@ | T_ROR { $$ = AIC_OP_ROR; } ; +f4_opcode: + T_OR16 { $$ = AIC_OP_OR16; } +| T_AND16 { $$ = AIC_OP_AND16; } +| T_XOR16 { $$ = AIC_OP_XOR16; } +| T_ADD16 { $$ = AIC_OP_ADD16; } +| T_ADC16 { $$ = AIC_OP_ADC16; } +| T_MVI16 { $$ = AIC_OP_MVI16; } +; + code: f2_opcode destination ',' expression opt_source ret ';' {
==== //depot/aic7xxx/aic7xxx/aicasm/aicasm_insformat.h#11 - /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aicasm/aicasm_insformat.h ====
home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aicasm/aicasm_insformat.h renamed from tmp/tmp.27147.10 +87 -1
129 lines not on this page · raw message
==== //depot/aic7xxx/aic7xxx/aicasm/aicasm_scan.l#19 - /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aicasm/aicasm_scan.l ====
home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aicasm/aicasm_scan.l renamed from tmp/tmp.27147.11 +20 -7
@@ -38,7 +38,7 @@ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGES. * - * $Id: //depot/aic7xxx/aic7xxx/aicasm/aicasm_scan.l#19 $ + * $Id: //depot/aic7xxx/aic7xxx/aicasm/aicasm_scan.l#20 $ * * $FreeBSD$ */
@@ -132,7 +132,7 @@ *string_buf_ptr++ = *yptr++; } } - +else { return T_ELSE; } VERSION { return T_VERSION; } PREFIX { return T_PREFIX; } PATCH_ARG_LIST { return T_PATCH_ARG_LIST; }
@@ -173,10 +173,6 @@ yylval.value = WO; return T_MODE; } -BEGIN_CRITICAL { return T_BEGIN_CS; } -END_CRITICAL { return T_END_CS; } -SET_SRC_MODE { return T_SET_SRC_MODE; } -SET_DST_MODE { return T_SET_DST_MODE; } field { return T_FIELD; } enum { return T_ENUM; } mask { return T_MASK; }
@@ -192,6 +188,13 @@ sindex { return T_SINDEX; } A { return T_A; } + /* Instruction Formatting */ +PAD_PAGE { return T_PAD_PAGE; } +BEGIN_CRITICAL { return T_BEGIN_CS; } +END_CRITICAL { return T_END_CS; } +SET_SRC_MODE { return T_SET_SRC_MODE; } +SET_DST_MODE { return T_SET_DST_MODE; } + /* Opcodes */ shl { return T_SHL; } shr { return T_SHR; }
@@ -223,7 +226,17 @@ or { return T_OR; } ret { return T_RET; } nop { return T_NOP; } -else { return T_ELSE; } + + /* ARP2 16bit extensions */ +or16 { return T_OR16; } +and16 { return T_AND16; } +xor16 { return T_XOR16; } +add16 { return T_ADD16; } +adc16 { return T_ADC16; } +mvi16 { return T_MVI16; } +test16 { return T_TEST16; } +cmp16 { return T_CMP16; } +cmpxchg { return T_CMPXCHG; } /* Allowed Symbols */ \<\< { return T_EXPR_LSHIFT; }
==== //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aiclib.h#37 - /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aiclib.h ====
home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aiclib.h renamed from tmp/tmp.27147.12 +15 -2
@@ -648,7 +648,8 @@AIC_DV_REQUIRED =0x01 ,AIC_INQ_VALID =0x02 ,AIC_BASIC_DV =0x04 , - AIC_ENHANCED_DV = 0x08 +AIC_ENHANCED_DV =0x08 , + AIC_TARG_TIMER_ACTIVE = 0x10 } aic_linux_targ_flags;/* DV States */
@@ -667,6 +668,12 @@ } aic_dv_state;struct aic_linux_target { +/* +* A positive count indicates that this +* target's queue is halted. +*/ +u_int qfrozen; +struct aic_linux_device *devices[AIC_NUM_LUNS ];int channel;int target;
@@ -676,6 +683,11 @@aic_linux_targ_flags flags;struct scsi_inquiry_data *inq_data;/* +* Per target timer. +*/ +struct timer_list timer; + +/* * The next "fallback" period to use for narrow/wide transfers. */ uint8_t dv_next_narrow_period;
@@ -2106,7 +2118,8 @@ }if (TAILQ_FIRST (&dev->busyq) ==NULL - || dev->openings ==0 || dev->qfrozen !=0 ) + || dev->openings ==0 || dev->qfrozen !=0 + || dev->target->qfrozen !=0 )return ;aic_linux_run_device_queue (aic, dev);