Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
4548e111
Commit
4548e111
authored
May 20, 2003
by
Justin T. Gibbs
Browse files
Options
Browse Files
Download
Plain Diff
Merge
http://linux.bkbits.net/linux-2.5
into overdrive.btc.adaptec.com:/usr/home/gibbs/bk/linux-2.5
parents
ace40f57
06d7b0f9
Changes
18
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
698 additions
and
671 deletions
+698
-671
Documentation/scsi/aic7xxx.txt
Documentation/scsi/aic7xxx.txt
+5
-0
drivers/scsi/aic7xxx/aic79xx.h
drivers/scsi/aic7xxx/aic79xx.h
+17
-17
drivers/scsi/aic7xxx/aic79xx.reg
drivers/scsi/aic7xxx/aic79xx.reg
+10
-10
drivers/scsi/aic7xxx/aic79xx.seq
drivers/scsi/aic7xxx/aic79xx.seq
+23
-14
drivers/scsi/aic7xxx/aic79xx_core.c
drivers/scsi/aic7xxx/aic79xx_core.c
+37
-38
drivers/scsi/aic7xxx/aic79xx_inline.h
drivers/scsi/aic7xxx/aic79xx_inline.h
+1
-5
drivers/scsi/aic7xxx/aic79xx_osm.c
drivers/scsi/aic7xxx/aic79xx_osm.c
+13
-32
drivers/scsi/aic7xxx/aic79xx_osm.h
drivers/scsi/aic7xxx/aic79xx_osm.h
+2
-2
drivers/scsi/aic7xxx/aic79xx_osm_pci.c
drivers/scsi/aic7xxx/aic79xx_osm_pci.c
+11
-9
drivers/scsi/aic7xxx/aic79xx_pci.c
drivers/scsi/aic7xxx/aic79xx_pci.c
+60
-15
drivers/scsi/aic7xxx/aic79xx_reg.h_shipped
drivers/scsi/aic7xxx/aic79xx_reg.h_shipped
+21
-21
drivers/scsi/aic7xxx/aic79xx_reg_print.c_shipped
drivers/scsi/aic7xxx/aic79xx_reg_print.c_shipped
+11
-11
drivers/scsi/aic7xxx/aic79xx_seq.h_shipped
drivers/scsi/aic7xxx/aic79xx_seq.h_shipped
+451
-441
drivers/scsi/aic7xxx/aic7xxx_osm.c
drivers/scsi/aic7xxx/aic7xxx_osm.c
+21
-39
drivers/scsi/aic7xxx/aic7xxx_osm.h
drivers/scsi/aic7xxx/aic7xxx_osm.h
+4
-4
drivers/scsi/aic7xxx/aic7xxx_osm_pci.c
drivers/scsi/aic7xxx/aic7xxx_osm_pci.c
+5
-4
drivers/scsi/aic7xxx/aic7xxx_pci.c
drivers/scsi/aic7xxx/aic7xxx_pci.c
+3
-3
drivers/scsi/aic7xxx/aiclib.h
drivers/scsi/aic7xxx/aiclib.h
+3
-6
No files found.
Documentation/scsi/aic7xxx.txt
View file @
4548e111
...
...
@@ -132,6 +132,11 @@ The following information is available in this file:
2. Version History
6.2.34 - Fix locking regression instroduced in 6.2.29 that
could cuase a lock order reversal between the io_request_lock
and our per-softc lock. This was only possible on RH9,
SuSE, and kernel.org 2.4.X kernels.
6.2.33 - Dynamically disable PCI parity error reporting after
10 errors are reported to the user. These errors are
the result of some other device issuing PCI transactions
...
...
drivers/scsi/aic7xxx/aic79xx.h
View file @
4548e111
...
...
@@ -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#
89
$
* $Id: //depot/aic7xxx/aic7xxx/aic79xx.h#
90
$
*
* $FreeBSD$
*/
...
...
@@ -1225,20 +1225,20 @@ struct ahd_softc {
int
seltime
;
/*
* Interrupt coales
s
ing settings.
* Interrupt coales
c
ing settings.
*/
#define AHD_INT_COALES
S
ING_TIMER_DEFAULT 250
/*us*/
#define AHD_INT_COALES
S
ING_MAXCMDS_DEFAULT 10
#define AHD_INT_COALES
S
ING_MAXCMDS_MAX 127
#define AHD_INT_COALES
S
ING_MINCMDS_DEFAULT 5
#define AHD_INT_COALES
S
ING_MINCMDS_MAX 127
#define AHD_INT_COALES
S
ING_THRESHOLD_DEFAULT 2000
#define AHD_INT_COALES
S
ING_STOP_THRESHOLD_DEFAULT 1000
u_int
int_coales
s
ing_timer
;
u_int
int_coales
s
ing_maxcmds
;
u_int
int_coales
s
ing_mincmds
;
u_int
int_coales
s
ing_threshold
;
u_int
int_coales
s
ing_stop_threshold
;
#define AHD_INT_COALES
C
ING_TIMER_DEFAULT 250
/*us*/
#define AHD_INT_COALES
C
ING_MAXCMDS_DEFAULT 10
#define AHD_INT_COALES
C
ING_MAXCMDS_MAX 127
#define AHD_INT_COALES
C
ING_MINCMDS_DEFAULT 5
#define AHD_INT_COALES
C
ING_MINCMDS_MAX 127
#define AHD_INT_COALES
C
ING_THRESHOLD_DEFAULT 2000
#define AHD_INT_COALES
C
ING_STOP_THRESHOLD_DEFAULT 1000
u_int
int_coales
c
ing_timer
;
u_int
int_coales
c
ing_maxcmds
;
u_int
int_coales
c
ing_mincmds
;
u_int
int_coales
c
ing_threshold
;
u_int
int_coales
c
ing_stop_threshold
;
uint16_t
user_discenable
;
/* Disconnection allowed */
uint16_t
user_tagenable
;
/* Tagged Queuing allowed */
...
...
@@ -1362,11 +1362,11 @@ int ahd_parse_vpddata(struct ahd_softc *ahd,
int
ahd_parse_cfgdata
(
struct
ahd_softc
*
ahd
,
struct
seeprom_config
*
sc
);
void
ahd_intr_enable
(
struct
ahd_softc
*
ahd
,
int
enable
);
void
ahd_update_coales
s
ing_values
(
struct
ahd_softc
*
ahd
,
void
ahd_update_coales
c
ing_values
(
struct
ahd_softc
*
ahd
,
u_int
timer
,
u_int
maxcmds
,
u_int
mincmds
);
void
ahd_enable_coales
s
ing
(
struct
ahd_softc
*
ahd
,
void
ahd_enable_coales
c
ing
(
struct
ahd_softc
*
ahd
,
int
enable
);
void
ahd_pause_and_flushwork
(
struct
ahd_softc
*
ahd
);
int
ahd_suspend
(
struct
ahd_softc
*
ahd
);
...
...
@@ -1514,7 +1514,7 @@ extern uint32_t ahd_debug;
#define AHD_SHOW_QUEUE 0x02000
#define AHD_SHOW_TQIN 0x04000
#define AHD_SHOW_SG 0x08000
#define AHD_SHOW_INT_COALES
S
ING 0x10000
#define AHD_SHOW_INT_COALES
C
ING 0x10000
#define AHD_DEBUG_SEQUENCER 0x20000
#endif
void
ahd_print_scb
(
struct
scb
*
scb
);
...
...
drivers/scsi/aic7xxx/aic79xx.reg
View file @
4548e111
...
...
@@ -39,7 +39,7 @@
*
* $FreeBSD$
*/
VERSION = "$Id: //depot/aic7xxx/aic7xxx/aic79xx.reg#6
7
$"
VERSION = "$Id: //depot/aic7xxx/aic7xxx/aic79xx.reg#6
8
$"
/*
* This file is processed by the aic7xxx_asm utility for use in assembling
...
...
@@ -286,7 +286,7 @@ register HS_MAILBOX {
address 0x00B
access_mode RW
mask HOST_TQINPOS 0x80 /* Boundary at either 0 or 128 */
mask ENINT_COALES
S 0x40 /* Perform interrupt coaless
ing */
mask ENINT_COALES
CE 0x40 /* Perform interrupt coalesc
ing */
}
/*
...
...
@@ -3704,28 +3704,28 @@ scratch_ram {
}
/*
* The maximum amount of time to wait, when interrupt coales
s
ing
* The maximum amount of time to wait, when interrupt coales
c
ing
* is enabled, before issueing a CMDCMPLT interrupt for a completed
* command.
*/
INT_COALES
S
ING_TIMER {
INT_COALES
C
ING_TIMER {
size 2
}
/*
* The maximum number of commands to coales
s
into a single interrupt.
* The maximum number of commands to coales
ce
into a single interrupt.
* Actually the 2's complement of that value to simplify sequencer
* code.
*/
INT_COALES
S
ING_MAXCMDS {
INT_COALES
C
ING_MAXCMDS {
size 1
}
/*
* The minimum number of commands still outstanding required
* to continue coales
s
ing (2's complement of value).
* to continue coales
c
ing (2's complement of value).
*/
INT_COALES
S
ING_MINCMDS {
INT_COALES
C
ING_MINCMDS {
size 1
}
...
...
@@ -3737,9 +3737,9 @@ scratch_ram {
}
/*
* The count of commands that have been coales
s
ed.
* The count of commands that have been coales
c
ed.
*/
INT_COALES
S
ING_CMDCOUNT {
INT_COALES
C
ING_CMDCOUNT {
size 1
}
...
...
drivers/scsi/aic7xxx/aic79xx.seq
View file @
4548e111
...
...
@@ -40,7 +40,7 @@
* $FreeBSD$
*/
VERSION = "$Id: //depot/aic7xxx/aic7xxx/aic79xx.seq#9
1
$"
VERSION = "$Id: //depot/aic7xxx/aic7xxx/aic79xx.seq#9
3
$"
PATCH_ARG_LIST = "struct ahd_softc *ahd"
PREFIX = "ahd_"
...
...
@@ -212,44 +212,44 @@ fill_qoutfifo_dmadone:
qoutfifo_updated:
/*
* If there are more commands waiting to be dma'ed
* to the host, always coales
s
. Otherwise honor the
* to the host, always coales
ce
. Otherwise honor the
* host's wishes.
*/
cmp COMPLETE_DMA_SCB_HEAD[1], SCB_LIST_NULL jne coales
s
_by_count;
cmp COMPLETE_SCB_HEAD[1], SCB_LIST_NULL jne coales
s
_by_count;
test LOCAL_HS_MAILBOX, ENINT_COALES
S
jz issue_cmdcmplt;
cmp COMPLETE_DMA_SCB_HEAD[1], SCB_LIST_NULL jne coales
ce
_by_count;
cmp COMPLETE_SCB_HEAD[1], SCB_LIST_NULL jne coales
ce
_by_count;
test LOCAL_HS_MAILBOX, ENINT_COALES
CE
jz issue_cmdcmplt;
/*
* If we have relatively few commands outstanding, don't
* bother waiting for another command to complete.
*/
test CMDS_PENDING[1], 0xFF jnz coales
s
_by_count;
test CMDS_PENDING[1], 0xFF jnz coales
ce
_by_count;
/* Add -1 so that jnc means <= not just < */
add A, -1, INT_COALES
S
ING_MINCMDS;
add A, -1, INT_COALES
C
ING_MINCMDS;
add NONE, A, CMDS_PENDING;
jnc issue_cmdcmplt;
/*
* If coales
sing, only coaless
up to the limit
* If coales
cing, only coalesce
up to the limit
* provided by the host driver.
*/
coales
s
_by_count:
mov A, INT_COALES
S
ING_MAXCMDS;
add NONE, A, INT_COALES
S
ING_CMDCOUNT;
coales
ce
_by_count:
mov A, INT_COALES
C
ING_MAXCMDS;
add NONE, A, INT_COALES
C
ING_CMDCOUNT;
jc issue_cmdcmplt;
/*
* If the timer is not currently active,
* fire it up.
*/
test INTCTL, SWTMINTMASK jz return;
bmov SWTIMER, INT_COALES
S
ING_TIMER, 2;
bmov SWTIMER, INT_COALES
C
ING_TIMER, 2;
mvi CLRSEQINTSTAT, CLRSEQ_SWTMRTO;
or INTCTL, SWTMINTEN|SWTIMER_START;
and INTCTL, ~SWTMINTMASK ret;
issue_cmdcmplt:
mvi INTSTAT, CMDCMPLT;
clr INT_COALES
S
ING_CMDCOUNT;
clr INT_COALES
C
ING_CMDCOUNT;
or INTCTL, SWTMINTMASK ret;
BEGIN_CRITICAL;
...
...
@@ -261,6 +261,15 @@ fetch_new_scb_done:
clr A;
add CMDS_PENDING, 1;
adc CMDS_PENDING[1], A;
if ((ahd->bugs & AHD_PKT_LUN_BUG) != 0) {
/*
* "Short Luns" are not placed into outgoing LQ
* packets in the correct byte order. Use a full
* sized lun field instead and fill it with the
* one byte of lun information we support.
*/
mov SCB_PKT_LUN[6], SCB_LUN;
}
/*
* The FIFO use count field is shared with the
* tag set by the host so that our SCB dma engine
...
...
@@ -324,7 +333,7 @@ fill_qoutfifo_loop:
mov CCSCBRAM, SCBPTR;
or CCSCBRAM, A, SCBPTR[1];
mov NONE, SDSCB_QOFF;
inc INT_COALES
S
ING_CMDCOUNT;
inc INT_COALES
C
ING_CMDCOUNT;
add CMDS_PENDING, -1;
adc CMDS_PENDING[1], -1;
cmp SCB_NEXT_COMPLETE[1], SCB_LIST_NULL je fill_qoutfifo_done;
...
...
drivers/scsi/aic7xxx/aic79xx_core.c
View file @
4548e111
...
...
@@ -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#19
0
$
* $Id: //depot/aic7xxx/aic7xxx/aic79xx.c#19
2
$
*
* $FreeBSD$
*/
...
...
@@ -4806,12 +4806,12 @@ ahd_alloc(void *platform_arg, char *name)
|
AHD_EXTENDED_TRANS_A
|
AHD_STPWLEVEL_A
;
ahd_timer_init
(
&
ahd
->
reset_timer
);
ahd_timer_init
(
&
ahd
->
stat_timer
);
ahd
->
int_coales
sing_timer
=
AHD_INT_COALESS
ING_TIMER_DEFAULT
;
ahd
->
int_coales
sing_maxcmds
=
AHD_INT_COALESS
ING_MAXCMDS_DEFAULT
;
ahd
->
int_coales
sing_mincmds
=
AHD_INT_COALESS
ING_MINCMDS_DEFAULT
;
ahd
->
int_coales
sing_threshold
=
AHD_INT_COALESS
ING_THRESHOLD_DEFAULT
;
ahd
->
int_coales
s
ing_stop_threshold
=
AHD_INT_COALES
S
ING_STOP_THRESHOLD_DEFAULT
;
ahd
->
int_coales
cing_timer
=
AHD_INT_COALESC
ING_TIMER_DEFAULT
;
ahd
->
int_coales
cing_maxcmds
=
AHD_INT_COALESC
ING_MAXCMDS_DEFAULT
;
ahd
->
int_coales
cing_mincmds
=
AHD_INT_COALESC
ING_MINCMDS_DEFAULT
;
ahd
->
int_coales
cing_threshold
=
AHD_INT_COALESC
ING_THRESHOLD_DEFAULT
;
ahd
->
int_coales
c
ing_stop_threshold
=
AHD_INT_COALES
C
ING_STOP_THRESHOLD_DEFAULT
;
if
(
ahd_platform_alloc
(
ahd
,
platform_arg
)
!=
0
)
{
ahd_free
(
ahd
);
...
...
@@ -5722,6 +5722,7 @@ ahd_alloc_scbs(struct ahd_softc *ahd)
next_scb
->
sg_list
=
segs
;
next_scb
->
sense_data
=
sense_data
;
next_scb
->
sense_busaddr
=
sense_busaddr
;
memset
(
hscb
,
0
,
sizeof
(
*
hscb
));
next_scb
->
hscb
=
hscb
;
hscb
->
hscb_busaddr
=
ahd_htole32
(
hscb_busaddr
);
...
...
@@ -6341,14 +6342,14 @@ ahd_chip_init(struct ahd_softc *ahd)
ahd_outb
(
ahd
,
NEXT_QUEUED_SCB_ADDR
+
3
,
(
busaddr
>>
24
)
&
0xFF
);
/*
* Default to coales
s
ing disabled.
* Default to coales
c
ing disabled.
*/
ahd_outw
(
ahd
,
INT_COALES
S
ING_CMDCOUNT
,
0
);
ahd_outw
(
ahd
,
INT_COALES
C
ING_CMDCOUNT
,
0
);
ahd_outw
(
ahd
,
CMDS_PENDING
,
0
);
ahd_update_coales
sing_values
(
ahd
,
ahd
->
int_coaless
ing_timer
,
ahd
->
int_coales
s
ing_maxcmds
,
ahd
->
int_coales
s
ing_mincmds
);
ahd_enable_coales
s
ing
(
ahd
,
FALSE
);
ahd_update_coales
cing_values
(
ahd
,
ahd
->
int_coalesc
ing_timer
,
ahd
->
int_coales
c
ing_maxcmds
,
ahd
->
int_coales
c
ing_mincmds
);
ahd_enable_coales
c
ing
(
ahd
,
FALSE
);
ahd_loadseq
(
ahd
);
ahd_set_modes
(
ahd
,
AHD_MODE_SCSI
,
AHD_MODE_SCSI
);
...
...
@@ -6601,30 +6602,30 @@ ahd_intr_enable(struct ahd_softc *ahd, int enable)
}
void
ahd_update_coales
s
ing_values
(
struct
ahd_softc
*
ahd
,
u_int
timer
,
u_int
maxcmds
,
ahd_update_coales
c
ing_values
(
struct
ahd_softc
*
ahd
,
u_int
timer
,
u_int
maxcmds
,
u_int
mincmds
)
{
if
(
timer
>
AHD_TIMER_MAX_US
)
timer
=
AHD_TIMER_MAX_US
;
ahd
->
int_coales
s
ing_timer
=
timer
;
ahd
->
int_coales
c
ing_timer
=
timer
;
if
(
maxcmds
>
AHD_INT_COALES
S
ING_MAXCMDS_MAX
)
maxcmds
=
AHD_INT_COALES
S
ING_MAXCMDS_MAX
;
if
(
mincmds
>
AHD_INT_COALES
S
ING_MINCMDS_MAX
)
mincmds
=
AHD_INT_COALES
S
ING_MINCMDS_MAX
;
ahd
->
int_coales
s
ing_maxcmds
=
maxcmds
;
ahd_outw
(
ahd
,
INT_COALES
S
ING_TIMER
,
timer
/
AHD_TIMER_US_PER_TICK
);
ahd_outb
(
ahd
,
INT_COALES
S
ING_MAXCMDS
,
-
maxcmds
);
ahd_outb
(
ahd
,
INT_COALES
S
ING_MINCMDS
,
-
mincmds
);
if
(
maxcmds
>
AHD_INT_COALES
C
ING_MAXCMDS_MAX
)
maxcmds
=
AHD_INT_COALES
C
ING_MAXCMDS_MAX
;
if
(
mincmds
>
AHD_INT_COALES
C
ING_MINCMDS_MAX
)
mincmds
=
AHD_INT_COALES
C
ING_MINCMDS_MAX
;
ahd
->
int_coales
c
ing_maxcmds
=
maxcmds
;
ahd_outw
(
ahd
,
INT_COALES
C
ING_TIMER
,
timer
/
AHD_TIMER_US_PER_TICK
);
ahd_outb
(
ahd
,
INT_COALES
C
ING_MAXCMDS
,
-
maxcmds
);
ahd_outb
(
ahd
,
INT_COALES
C
ING_MINCMDS
,
-
mincmds
);
}
void
ahd_enable_coales
s
ing
(
struct
ahd_softc
*
ahd
,
int
enable
)
ahd_enable_coales
c
ing
(
struct
ahd_softc
*
ahd
,
int
enable
)
{
ahd
->
hs_mailbox
&=
~
ENINT_COALES
S
;
ahd
->
hs_mailbox
&=
~
ENINT_COALES
CE
;
if
(
enable
)
ahd
->
hs_mailbox
|=
ENINT_COALES
S
;
ahd
->
hs_mailbox
|=
ENINT_COALES
CE
;
ahd_outb
(
ahd
,
HS_MAILBOX
,
ahd
->
hs_mailbox
);
ahd_flush_device_writes
(
ahd
);
ahd_run_qoutfifo
(
ahd
);
...
...
@@ -7718,20 +7719,20 @@ ahd_stat_timer(void *arg)
}
ahd_lock
(
ahd
,
&
s
);
enint_coal
=
ahd
->
hs_mailbox
&
ENINT_COALES
S
;
if
(
ahd
->
cmdcmplt_total
>
ahd
->
int_coales
s
ing_threshold
)
enint_coal
|=
ENINT_COALES
S
;
else
if
(
ahd
->
cmdcmplt_total
<
ahd
->
int_coales
s
ing_stop_threshold
)
enint_coal
&=
~
ENINT_COALES
S
;
enint_coal
=
ahd
->
hs_mailbox
&
ENINT_COALES
CE
;
if
(
ahd
->
cmdcmplt_total
>
ahd
->
int_coales
c
ing_threshold
)
enint_coal
|=
ENINT_COALES
CE
;
else
if
(
ahd
->
cmdcmplt_total
<
ahd
->
int_coales
c
ing_stop_threshold
)
enint_coal
&=
~
ENINT_COALES
CE
;
if
(
enint_coal
!=
(
ahd
->
hs_mailbox
&
ENINT_COALES
S
))
{
ahd_enable_coales
s
ing
(
ahd
,
enint_coal
);
if
(
enint_coal
!=
(
ahd
->
hs_mailbox
&
ENINT_COALES
CE
))
{
ahd_enable_coales
c
ing
(
ahd
,
enint_coal
);
#ifdef AHD_DEBUG
if
((
ahd_debug
&
AHD_SHOW_INT_COALES
S
ING
)
!=
0
)
printf
(
"%s: Interrupt coales
s
ing "
if
((
ahd_debug
&
AHD_SHOW_INT_COALES
C
ING
)
!=
0
)
printf
(
"%s: Interrupt coales
c
ing "
"now %sabled. Cmds %d
\n
"
,
ahd_name
(
ahd
),
(
enint_coal
&
ENINT_COALES
S
)
?
"en"
:
"dis"
,
(
enint_coal
&
ENINT_COALES
CE
)
?
"en"
:
"dis"
,
ahd
->
cmdcmplt_total
);
#endif
}
...
...
@@ -8279,8 +8280,6 @@ ahd_loadseq(struct ahd_softc *ahd)
download_consts
[
PKT_OVERRUN_BUFOFFSET
]
=
(
ahd
->
overrun_buf
-
(
uint8_t
*
)
ahd
->
qoutfifo
)
/
256
;
download_consts
[
SCB_TRANSFER_SIZE
]
=
SCB_TRANSFER_SIZE_1BYTE_LUN
;
if
((
ahd
->
bugs
&
AHD_PKT_LUN_BUG
)
!=
0
)
download_consts
[
SCB_TRANSFER_SIZE
]
=
SCB_TRANSFER_SIZE_FULL_LUN
;
cur_patch
=
patches
;
downloaded
=
0
;
skip_addr
=
0
;
...
...
drivers/scsi/aic7xxx/aic79xx_inline.h
View file @
4548e111
...
...
@@ -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#4
8
$
* $Id: //depot/aic7xxx/aic7xxx/aic79xx_inline.h#4
9
$
*
* $FreeBSD$
*/
...
...
@@ -272,10 +272,6 @@ ahd_setup_scb_common(struct ahd_softc *ahd, struct scb *scb)
if
((
scb
->
flags
&
SCB_PACKETIZED
)
!=
0
)
{
/* XXX what about ACA?? It is type 4, but TAG_TYPE == 0x3. */
scb
->
hscb
->
task_attribute
=
scb
->
hscb
->
control
&
SCB_TAG_TYPE
;
/*
* For Rev A short lun workaround.
*/
scb
->
hscb
->
pkt_long_lun
[
6
]
=
scb
->
hscb
->
lun
;
}
if
(
scb
->
hscb
->
cdb_len
<=
MAX_CDB_LEN_WITH_SENSE_ADDR
...
...
drivers/scsi/aic7xxx/aic79xx_osm.c
View file @
4548e111
/*
* Adaptec AIC79xx device driver for Linux.
*
* $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_osm.c#16
0
$
* $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_osm.c#16
7
$
*
* --------------------------------------------------------------------------
* Copyright (c) 1994-2000 Justin T. Gibbs.
...
...
@@ -62,11 +62,6 @@
#include <linux/mm.h>
/* For fetching system memory size */
#define __KERNEL_SYSCALLS__
#include <linux/unistd.h>
static
int
errno
;
/*
* Lock protecting manipulation of the ahd softc list.
*/
...
...
@@ -755,31 +750,11 @@ ahd_linux_map_seg(struct ahd_softc *ahd, struct scb *scb,
consumed
=
1
;
sg
->
addr
=
ahd_htole32
(
addr
&
0xFFFFFFFF
);
scb
->
platform_data
->
xfer_len
+=
len
;
if
(
sizeof
(
bus_addr_t
)
>
4
&&
(
ahd
->
flags
&
AHD_39BIT_ADDRESSING
)
!=
0
)
{
/*
* Due to DAC restrictions, we can't
* cross a 4GB boundary.
*/
if
((
addr
^
(
addr
+
len
-
1
))
&
~
0xFFFFFFFF
)
{
struct
ahd_dma_seg
*
next_sg
;
uint32_t
next_len
;
printf
(
"Crossed Seg
\n
"
);
if
((
scb
->
sg_count
+
2
)
>
AHD_NSEG
)
panic
(
"Too few segs for dma mapping. "
"Increase AHD_NSEG
\n
"
);
consumed
++
;
next_sg
=
sg
+
1
;
next_sg
->
addr
=
0
;
next_len
=
0x100000000
-
(
addr
&
0xFFFFFFFF
);
len
-=
next_len
;
next_len
|=
((
addr
>>
8
)
+
0x1000000
)
&
0x7F000000
;
next_sg
->
len
=
ahd_htole32
(
next_len
);
}
len
|=
(
addr
>>
8
)
&
0x7F000000
;
}
&&
(
ahd
->
flags
&
AHD_39BIT_ADDRESSING
)
!=
0
)
len
|=
(
addr
>>
8
)
&
AHD_SG_HIGH_ADDR_MASK
;
sg
->
len
=
ahd_htole32
(
len
);
return
(
consumed
);
}
...
...
@@ -796,14 +771,18 @@ static int ahd_linux_queue(Scsi_Cmnd *, void (*)(Scsi_Cmnd *));
static
int
ahd_linux_slave_alloc
(
Scsi_Device
*
);
static
int
ahd_linux_slave_configure
(
Scsi_Device
*
);
static
void
ahd_linux_slave_destroy
(
Scsi_Device
*
);
#if defined(__i386__)
static
int
ahd_linux_biosparam
(
struct
scsi_device
*
,
struct
block_device
*
,
sector_t
,
int
[]);
#endif
#else
static
int
ahd_linux_release
(
struct
Scsi_Host
*
);
static
void
ahd_linux_select_queue_depth
(
struct
Scsi_Host
*
host
,
Scsi_Device
*
scsi_devs
);
#if defined(__i386__)
static
int
ahd_linux_biosparam
(
Disk
*
,
kdev_t
,
int
[]);
#endif
#endif
static
int
ahd_linux_bus_reset
(
Scsi_Cmnd
*
);
static
int
ahd_linux_dev_reset
(
Scsi_Cmnd
*
);
static
int
ahd_linux_abort
(
Scsi_Cmnd
*
);
...
...
@@ -1211,6 +1190,7 @@ ahd_linux_select_queue_depth(struct Scsi_Host * host,
}
#endif
#if defined(__i386__)
/*
* Return the disk geometry for the given SCSI device.
*/
...
...
@@ -1273,6 +1253,7 @@ ahd_linux_biosparam(Disk *disk, kdev_t dev, int geom[])
geom
[
2
]
=
cylinders
;
return
(
0
);
}
#endif
/*
* Abort the current SCSI command(s).
...
...
@@ -4211,7 +4192,7 @@ ahd_linux_run_device_queue(struct ahd_softc *ahd, struct ahd_linux_device *dev)
/*
* SCSI controller interrupt handler.
*/
AIC_LINUX_IRQRETURN_T
irqreturn_t
ahd_linux_isr
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
{
struct
ahd_softc
*
ahd
;
...
...
@@ -4225,7 +4206,7 @@ ahd_linux_isr(int irq, void *dev_id, struct pt_regs * regs)
ahd_schedule_runq
(
ahd
);
ahd_linux_run_complete_queue
(
ahd
);
ahd_unlock
(
ahd
,
&
flags
);
AIC_LINUX_IRQRETURN
(
ours
);
return
IRQ_RETVAL
(
ours
);
}
void
...
...
drivers/scsi/aic7xxx/aic79xx_osm.h
View file @
4548e111
...
...
@@ -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#13
0
$
* $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_osm.h#13
2
$
*
*/
#ifndef _AIC79XX_LINUX_H_
...
...
@@ -1211,7 +1211,7 @@ void ahd_platform_set_tags(struct ahd_softc *ahd,
int
ahd_platform_abort_scbs
(
struct
ahd_softc
*
ahd
,
int
target
,
char
channel
,
int
lun
,
u_int
tag
,
role_t
role
,
uint32_t
status
);
AIC_LINUX_IRQRETURN_T
irqreturn_t
ahd_linux_isr
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
);
void
ahd_platform_flushwork
(
struct
ahd_softc
*
ahd
);
int
ahd_softc_comp
(
struct
ahd_softc
*
,
struct
ahd_softc
*
);
...
...
drivers/scsi/aic7xxx/aic79xx_osm_pci.c
View file @
4548e111
...
...
@@ -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_pci.c#2
1
$
* $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_osm_pci.c#2
3
$
*/
#include "aic79xx_osm.h"
...
...
@@ -156,19 +156,21 @@ ahd_linux_pci_dev_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
pci_set_master
(
pdev
);
if
(
sizeof
(
bus_addr_t
)
>
4
)
{
uint64_t
memsize
;
uint64_t
memsize
;
bus_addr_t
mask_64bit
;
bus_addr_t
mask_39bit
;
memsize
=
ahd_linux_get_memsize
();
if
(
memsize
>=
0x8000000000
&&
ahd_pci_set_dma_mask
(
pdev
,
0xFFFFFFFFFFFFFFFFULL
)
==
0
)
{
mask_64bit
=
(
bus_addr_t
)(
0xFFFFFFFFFFFFFFFFULL
&
(
bus_addr_t
)
~
0
);
mask_39bit
=
(
bus_addr_t
)(
0x7FFFFFFFFFULL
&
(
bus_addr_t
)
~
0
);
if
(
memsize
>=
0x8000000000ULL
&&
ahd_pci_set_dma_mask
(
pdev
,
mask_64bit
)
==
0
)
{
ahd
->
flags
|=
AHD_64BIT_ADDRESSING
;
ahd
->
platform_data
->
hw_dma_mask
=
(
bus_addr_t
)(
0xFFFFFFFFFFFFFFFFULL
&
(
bus_addr_t
)
~
0
);
ahd
->
platform_data
->
hw_dma_mask
=
mask_64bit
;
}
else
if
(
memsize
>
0x80000000
&&
ahd_pci_set_dma_mask
(
pdev
,
0x7FFFFFFFFFULL
)
==
0
)
{
&&
ahd_pci_set_dma_mask
(
pdev
,
mask_39bit
)
==
0
)
{
ahd
->
flags
|=
AHD_39BIT_ADDRESSING
;
ahd
->
platform_data
->
hw_dma_mask
=
(
bus_addr_t
)(
0x7FFFFFFFFFULL
&
(
bus_addr_t
)
~
0
);
ahd
->
platform_data
->
hw_dma_mask
=
mask_39bit
;
}
}
else
{
ahd_pci_set_dma_mask
(
pdev
,
0xFFFFFFFF
);
...
...
drivers/scsi/aic7xxx/aic79xx_pci.c
View file @
4548e111
...
...
@@ -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/aic79xx_pci.c#7
1
$
* $Id: //depot/aic7xxx/aic7xxx/aic79xx_pci.c#7
3
$
*
* $FreeBSD$
*/
...
...
@@ -65,28 +65,29 @@ ahd_compose_id(u_int device, u_int vendor, u_int subdevice, u_int subvendor)
}
#define ID_ALL_MASK 0xFFFFFFFFFFFFFFFFull
#define ID_ALL_IROC_MASK 0xFFFFFF7FFFFFFFFFull
#define ID_DEV_VENDOR_MASK 0xFFFFFFFF00000000ull
#define ID_9005_GENERIC_MASK 0xFFF0FFFF00000000ull
#define ID_9005_GENERIC_IROC_MASK 0xFFF0FF7F00000000ull
#define ID_AIC7901 0x800F9005FFFF9005ull
#define ID_AIC7901A 0x801E9005FFFF9005ull
#define ID_AIC7901A_IROC 0x809E9005FFFF9005ull
#define ID_AHA_29320A 0x8000900500609005ull
#define ID_AHA_29320ALP 0x8017900500449005ull
#define ID_AIC7901A 0x801E9005FFFF9005ull
#define ID_AHA_29320 0x8012900500429005ull
#define ID_AHA_29320B 0x8013900500439005ull
#define ID_AHA_29320LP 0x8014900500449005ull
#define ID_AHA_29320LP_IROC 0x8094900500449005ull
#define ID_AIC7902 0x801F9005FFFF9005ull
#define ID_AIC7902_IROC 0x809F9005FFFF9005ull
#define ID_AIC7902_B 0x801D9005FFFF9005ull
#define ID_AIC7902_B_IROC 0x809D9005FFFF9005ull
#define ID_AHA_39320 0x8010900500409005ull
#define ID_AHA_39320_B 0x8015900500409005ull
#define ID_AHA_39320A 0x8016900500409005ull
#define ID_AHA_39320D 0x8011900500419005ull
#define ID_AHA_39320D_B 0x801C900500419005ull
#define ID_AHA_39320D_HP 0x8011900500AC0E11ull
#define ID_AHA_39320D_B_HP 0x801C900500AC0E11ull
#define ID_AHA_29320 0x8012900500429005ull
#define ID_AHA_29320B 0x8013900500439005ull
#define ID_AIC7902_PCI_REV_A4 0x3
#define ID_AIC7902_PCI_REV_B0 0x10
#define SUBID_HP 0x0E11
...
...
@@ -113,22 +114,42 @@ ahd_compose_id(u_int device, u_int vendor, u_int subdevice, u_int subvendor)
#define SUBID_9005_SEEPTYPE_NONE 0x0
#define SUBID_9005_SEEPTYPE_4K 0x1
static
ahd_device_setup_t
ahd_aic7901_setup
;
static
ahd_device_setup_t
ahd_aic7901A_setup
;
static
ahd_device_setup_t
ahd_aic7902_setup
;
struct
ahd_pci_identity
ahd_pci_ident_table
[]
=
{
/* aic7901 based controllers */
{
ID_AHA_29320A
,
ID_ALL_MASK
,
"Adaptec 29320A Ultra320 SCSI adapter"
,
ahd_aic7901_setup
},
{
ID_AHA_29320ALP
,
ID_ALL_MASK
,
"Adaptec 29320ALP Ultra320 SCSI adapter"
,
ahd_aic7901_setup
},
/* aic7901A based controllers */
{
ID_AHA_29320
LP
,
ID_AHA_29320
,
ID_ALL_MASK
,
"Adaptec 29320
LP
Ultra320 SCSI adapter"
,
"Adaptec 29320 Ultra320 SCSI adapter"
,
ahd_aic7901A_setup
},
{
ID_AHA_29320
A
,
ID_AHA_29320
B
,
ID_ALL_MASK
,
"Adaptec 29320A Ultra320 SCSI adapter"
,
"Adaptec 29320B Ultra320 SCSI adapter"
,
ahd_aic7901A_setup
},
{
ID_AHA_29320LP
,
ID_ALL_MASK
,
"Adaptec 29320LP Ultra320 SCSI adapter"
,
ahd_aic7901A_setup
},
/* aic7902 based controllers */
...
...
@@ -138,6 +159,12 @@ struct ahd_pci_identity ahd_pci_ident_table [] =
"Adaptec 39320 Ultra320 SCSI adapter"
,
ahd_aic7902_setup
},
{
ID_AHA_39320_B
,
ID_ALL_MASK
,
"Adaptec 39320 Ultra320 SCSI adapter"
,
ahd_aic7902_setup
},
{
ID_AHA_39320A
,
ID_ALL_MASK
,
...
...
@@ -181,6 +208,12 @@ struct ahd_pci_identity ahd_pci_ident_table [] =
ahd_aic7902_setup
},
/* Generic chip probes for devices we don't know 'exactly' */
{
ID_AIC7901
&
ID_DEV_VENDOR_MASK
,
ID_DEV_VENDOR_MASK
,
"Adaptec AIC7901 Ultra320 SCSI adapter"
,
ahd_aic7901_setup
},
{
ID_AIC7901A
&
ID_DEV_VENDOR_MASK
,
ID_DEV_VENDOR_MASK
,
...
...
@@ -332,9 +365,9 @@ ahd_pci_config(struct ahd_softc *ahd, struct ahd_pci_identity *entry)
}
/* Ensure busmastering is enabled */
command
=
ahd_pci_read_config
(
ahd
->
dev_softc
,
PCIR_COMMAND
,
/*bytes*/
1
);
command
=
ahd_pci_read_config
(
ahd
->
dev_softc
,
PCIR_COMMAND
,
/*bytes*/
2
);
command
|=
PCIM_CMD_BUSMASTEREN
;
ahd_pci_write_config
(
ahd
->
dev_softc
,
PCIR_COMMAND
,
command
,
/*bytes*/
1
);
ahd_pci_write_config
(
ahd
->
dev_softc
,
PCIR_COMMAND
,
command
,
/*bytes*/
2
);
error
=
ahd_softc_init
(
ahd
);
if
(
error
!=
0
)
...
...
@@ -867,6 +900,18 @@ ahd_pci_split_intr(struct ahd_softc *ahd, u_int intstat)
ahd_restore_modes
(
ahd
,
saved_modes
);
}
static
int
ahd_aic7901_setup
(
struct
ahd_softc
*
ahd
)
{
int
error
;
error
=
ahd_aic7902_setup
(
ahd
);
if
(
error
!=
0
)
return
(
error
);
ahd
->
chip
=
AHD_AIC7901
;
return
(
0
);
}
static
int
ahd_aic7901A_setup
(
struct
ahd_softc
*
ahd
)
{
...
...
@@ -890,7 +935,7 @@ ahd_aic7902_setup(struct ahd_softc *ahd)
if
(
rev
<
ID_AIC7902_PCI_REV_A4
)
{
printf
(
"%s: Unable to attach to unsupported chip revision %d
\n
"
,
ahd_name
(
ahd
),
rev
);
ahd_pci_write_config
(
pci
,
PCIR_COMMAND
,
0
,
/*bytes*/
1
);
ahd_pci_write_config
(
pci
,
PCIR_COMMAND
,
0
,
/*bytes*/
2
);
return
(
ENXIO
);
}
ahd
->
channel
=
ahd_get_pci_function
(
pci
)
+
'A'
;
...
...
drivers/scsi/aic7xxx/aic79xx_reg.h_shipped
View file @
4548e111
...
...
@@ -2,8 +2,8 @@
* DO NOT EDIT - This file is automatically generated
* from the following source files:
*
* $Id: //depot/aic7xxx/aic7xxx/aic79xx.seq#9
1
$
* $Id: //depot/aic7xxx/aic7xxx/aic79xx.reg#6
7
$
* $Id: //depot/aic7xxx/aic7xxx/aic79xx.seq#9
3
$
* $Id: //depot/aic7xxx/aic7xxx/aic79xx.reg#6
8
$
*/
typedef int (ahd_reg_print_t)(u_int, u_int *, u_int);
typedef struct ahd_reg_parse_entry {
...
...
@@ -2134,24 +2134,24 @@ ahd_reg_print_t ahd_allocfifo_scbptr_print;
#endif
#if AIC_DEBUG_REGISTERS
ahd_reg_print_t ahd_int_coales
s
ing_timer_print;
ahd_reg_print_t ahd_int_coales
c
ing_timer_print;
#else
#define ahd_int_coales
s
ing_timer_print(regvalue, cur_col, wrap) \
ahd_print_register(NULL, 0, "INT_COALES
S
ING_TIMER", 0x14a, regvalue, cur_col, wrap)
#define ahd_int_coales
c
ing_timer_print(regvalue, cur_col, wrap) \
ahd_print_register(NULL, 0, "INT_COALES
C
ING_TIMER", 0x14a, regvalue, cur_col, wrap)
#endif
#if AIC_DEBUG_REGISTERS
ahd_reg_print_t ahd_int_coales
s
ing_maxcmds_print;
ahd_reg_print_t ahd_int_coales
c
ing_maxcmds_print;
#else
#define ahd_int_coales
s
ing_maxcmds_print(regvalue, cur_col, wrap) \
ahd_print_register(NULL, 0, "INT_COALES
S
ING_MAXCMDS", 0x14c, regvalue, cur_col, wrap)
#define ahd_int_coales
c
ing_maxcmds_print(regvalue, cur_col, wrap) \
ahd_print_register(NULL, 0, "INT_COALES
C
ING_MAXCMDS", 0x14c, regvalue, cur_col, wrap)
#endif
#if AIC_DEBUG_REGISTERS
ahd_reg_print_t ahd_int_coales
s
ing_mincmds_print;
ahd_reg_print_t ahd_int_coales
c
ing_mincmds_print;
#else
#define ahd_int_coales
s
ing_mincmds_print(regvalue, cur_col, wrap) \
ahd_print_register(NULL, 0, "INT_COALES
S
ING_MINCMDS", 0x14d, regvalue, cur_col, wrap)
#define ahd_int_coales
c
ing_mincmds_print(regvalue, cur_col, wrap) \
ahd_print_register(NULL, 0, "INT_COALES
C
ING_MINCMDS", 0x14d, regvalue, cur_col, wrap)
#endif
#if AIC_DEBUG_REGISTERS
...
...
@@ -2162,10 +2162,10 @@ ahd_reg_print_t ahd_cmds_pending_print;
#endif
#if AIC_DEBUG_REGISTERS
ahd_reg_print_t ahd_int_coales
s
ing_cmdcount_print;
ahd_reg_print_t ahd_int_coales
c
ing_cmdcount_print;
#else
#define ahd_int_coales
s
ing_cmdcount_print(regvalue, cur_col, wrap) \
ahd_print_register(NULL, 0, "INT_COALES
S
ING_CMDCOUNT", 0x150, regvalue, cur_col, wrap)
#define ahd_int_coales
c
ing_cmdcount_print(regvalue, cur_col, wrap) \
ahd_print_register(NULL, 0, "INT_COALES
C
ING_CMDCOUNT", 0x150, regvalue, cur_col, wrap)
#endif
#if AIC_DEBUG_REGISTERS
...
...
@@ -2432,7 +2432,7 @@ ahd_reg_print_t ahd_scb_disconnected_lists_print;
#define HS_MAILBOX 0x0b
#define HOST_TQINPOS 0x80
#define ENINT_COALES
S
0x40
#define ENINT_COALES
CE
0x40
#define CLRSEQINTSTAT 0x0c
#define CLRSEQ_SWTMRTO 0x10
...
...
@@ -3612,15 +3612,15 @@ ahd_reg_print_t ahd_scb_disconnected_lists_print;
#define ALLOCFIFO_SCBPTR 0x148
#define INT_COALES
S
ING_TIMER 0x14a
#define INT_COALES
C
ING_TIMER 0x14a
#define INT_COALES
S
ING_MAXCMDS 0x14c
#define INT_COALES
C
ING_MAXCMDS 0x14c
#define INT_COALES
S
ING_MINCMDS 0x14d
#define INT_COALES
C
ING_MINCMDS 0x14d
#define CMDS_PENDING 0x14e
#define INT_COALES
S
ING_CMDCOUNT 0x150
#define INT_COALES
C
ING_CMDCOUNT 0x150
#define LOCAL_HS_MAILBOX 0x151
...
...
@@ -3768,5 +3768,5 @@ ahd_reg_print_t ahd_scb_disconnected_lists_print;
/* Exported Labels */
#define LABEL_seq_isr 0x27
0
#define LABEL_timer_isr 0x26
c
#define LABEL_seq_isr 0x27
1
#define LABEL_timer_isr 0x26
d
drivers/scsi/aic7xxx/aic79xx_reg_print.c_shipped
View file @
4548e111
...
...
@@ -2,8 +2,8 @@
* DO NOT EDIT - This file is automatically generated
* from the following source files:
*
* $Id: //depot/aic7xxx/aic7xxx/aic79xx.seq#9
1
$
* $Id: //depot/aic7xxx/aic7xxx/aic79xx.reg#6
7
$
* $Id: //depot/aic7xxx/aic7xxx/aic79xx.seq#9
3
$
* $Id: //depot/aic7xxx/aic7xxx/aic79xx.reg#6
8
$
*/
#include "aic79xx_osm.h"
...
...
@@ -161,7 +161,7 @@ ahd_hescb_qoff_print(u_int regvalue, u_int *cur_col, u_int wrap)
}
static ahd_reg_parse_entry_t HS_MAILBOX_parse_table[] = {
{ "ENINT_COALES
S
", 0x40, 0x40 },
{ "ENINT_COALES
CE
", 0x40, 0x40 },
{ "HOST_TQINPOS", 0x80, 0x80 }
};
...
...
@@ -3375,23 +3375,23 @@ ahd_allocfifo_scbptr_print(u_int regvalue, u_int *cur_col, u_int wrap)
}
int
ahd_int_coales
s
ing_timer_print(u_int regvalue, u_int *cur_col, u_int wrap)
ahd_int_coales
c
ing_timer_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
return (ahd_print_register(NULL, 0, "INT_COALES
S
ING_TIMER",
return (ahd_print_register(NULL, 0, "INT_COALES
C
ING_TIMER",
0x14a, regvalue, cur_col, wrap));
}
int
ahd_int_coales
s
ing_maxcmds_print(u_int regvalue, u_int *cur_col, u_int wrap)
ahd_int_coales
c
ing_maxcmds_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
return (ahd_print_register(NULL, 0, "INT_COALES
S
ING_MAXCMDS",
return (ahd_print_register(NULL, 0, "INT_COALES
C
ING_MAXCMDS",
0x14c, regvalue, cur_col, wrap));
}
int
ahd_int_coales
s
ing_mincmds_print(u_int regvalue, u_int *cur_col, u_int wrap)
ahd_int_coales
c
ing_mincmds_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
return (ahd_print_register(NULL, 0, "INT_COALES
S
ING_MINCMDS",
return (ahd_print_register(NULL, 0, "INT_COALES
C
ING_MINCMDS",
0x14d, regvalue, cur_col, wrap));
}
...
...
@@ -3403,9 +3403,9 @@ ahd_cmds_pending_print(u_int regvalue, u_int *cur_col, u_int wrap)
}
int
ahd_int_coales
s
ing_cmdcount_print(u_int regvalue, u_int *cur_col, u_int wrap)
ahd_int_coales
c
ing_cmdcount_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
return (ahd_print_register(NULL, 0, "INT_COALES
S
ING_CMDCOUNT",
return (ahd_print_register(NULL, 0, "INT_COALES
C
ING_CMDCOUNT",
0x150, regvalue, cur_col, wrap));
}
...
...
drivers/scsi/aic7xxx/aic79xx_seq.h_shipped
View file @
4548e111
...
...
@@ -2,30 +2,30 @@
* DO NOT EDIT - This file is automatically generated
* from the following source files:
*
* $Id: //depot/aic7xxx/aic7xxx/aic79xx.seq#9
1
$
* $Id: //depot/aic7xxx/aic7xxx/aic79xx.reg#6
7
$
* $Id: //depot/aic7xxx/aic7xxx/aic79xx.seq#9
3
$
* $Id: //depot/aic7xxx/aic7xxx/aic79xx.reg#6
8
$
*/
static uint8_t seqprog[] = {
0xff, 0x02, 0x06, 0x78,
0x00, 0xea, 0x
4e
, 0x59,
0x00, 0xea, 0x
50
, 0x59,
0x01, 0xea, 0x04, 0x30,
0xff, 0x04, 0x0c, 0x78,
0x19, 0xea, 0x
4e
, 0x59,
0x19, 0xea, 0x
50
, 0x59,
0x19, 0xea, 0x04, 0x00,
0x33, 0xea, 0x4
2
, 0x59,
0x33, 0xea, 0x4
4
, 0x59,
0x33, 0xea, 0x00, 0x00,
0x60, 0x3a, 0x1a, 0x68,
0x04, 0x47, 0x1b, 0x68,
0xff, 0x21, 0x1b, 0x70,
0x40, 0x4b, 0x9
0
, 0x69,
0x00, 0xe2, 0x5
2
, 0x59,
0x40, 0x4b, 0x9
0
, 0x69,
0x20, 0x4b, 0x8
0
, 0x69,
0x40, 0x4b, 0x9
2
, 0x69,
0x00, 0xe2, 0x5
4
, 0x59,
0x40, 0x4b, 0x9
2
, 0x69,
0x20, 0x4b, 0x8
2
, 0x69,
0xfc, 0x42, 0x24, 0x78,
0x10, 0x40, 0x24, 0x78,
0x00, 0xe2, 0xd
2
, 0x5d,
0x00, 0xe2, 0xd
4
, 0x5d,
0x20, 0x4d, 0x28, 0x78,
0x00, 0xe2, 0xd
2
, 0x5d,
0x00, 0xe2, 0xd
4
, 0x5d,
0x30, 0x3f, 0xc0, 0x09,
0x30, 0xe0, 0x30, 0x60,
0x7f, 0x4a, 0x94, 0x08,
...
...
@@ -35,7 +35,7 @@ static uint8_t seqprog[] = {
0x00, 0xe2, 0x56, 0x58,
0x00, 0xe2, 0x66, 0x58,
0x00, 0xe2, 0x06, 0x40,
0x33, 0xea, 0x4
2
, 0x59,
0x33, 0xea, 0x4
4
, 0x59,
0x33, 0xea, 0x00, 0x00,
0x01, 0x52, 0x64, 0x78,
0x02, 0x58, 0x50, 0x31,
...
...
@@ -43,26 +43,26 @@ static uint8_t seqprog[] = {
0xff, 0xad, 0x4f, 0x78,
0x50, 0x4b, 0x4a, 0x68,
0xbf, 0x3a, 0x74, 0x08,
0x14, 0xea, 0x
4e
, 0x59,
0x14, 0xea, 0x
50
, 0x59,
0x14, 0xea, 0x04, 0x00,
0x08, 0xa8, 0x51, 0x03,
0xff, 0xae, 0x3f, 0x68,
0x00, 0xe2, 0x5
0
, 0x5b,
0x00, 0xe2, 0x5
2
, 0x5b,
0x00, 0xe2, 0x3e, 0x40,
0x00, 0xea, 0x4
2
, 0x59,
0x00, 0xea, 0x4
4
, 0x59,
0x01, 0xea, 0x00, 0x30,
0x80, 0xf9, 0x5e, 0x68,
0x00, 0xe2, 0x4
0
, 0x59,
0x11, 0xea, 0x4
2
, 0x59,
0x00, 0xe2, 0x4
2
, 0x59,
0x11, 0xea, 0x4
4
, 0x59,
0x11, 0xea, 0x00, 0x00,
0x80, 0xf9, 0x4
0
, 0x79,
0x80, 0xf9, 0x4
2
, 0x79,
0xff, 0xea, 0xd4, 0x0d,
0x22, 0xea, 0x4
2
, 0x59,
0x22, 0xea, 0x4
4
, 0x59,
0x22, 0xea, 0x00, 0x00,
0x10, 0x16, 0x70, 0x78,
0x01, 0x0b, 0xa2, 0x32,
0x10, 0x16, 0x2c, 0x00,
0x18, 0xad, 0x
fe, 0x78
,
0x18, 0xad, 0x
00, 0x79
,
0x04, 0xad, 0xca, 0x68,
0x80, 0xad, 0x64, 0x78,
0x10, 0xad, 0x98, 0x78,
...
...
@@ -71,15 +71,15 @@ static uint8_t seqprog[] = {
0x02, 0x8c, 0x59, 0x32,
0x02, 0x28, 0x19, 0x33,
0x02, 0xa8, 0x50, 0x36,
0x33, 0xea, 0x4
2
, 0x59,
0x33, 0xea, 0x4
4
, 0x59,
0x33, 0xea, 0x00, 0x00,
0x40, 0x3a, 0x64, 0x68,
0x50, 0x4b, 0x64, 0x68,
0x22, 0xea, 0x4
2
, 0x59,
0x22, 0xea, 0x4
4
, 0x59,
0x22, 0xea, 0x00, 0x00,
0xe7, 0xad, 0x5a, 0x09,
0x02, 0x8c, 0x59, 0x32,
0x1a, 0xea, 0x
4e
, 0x59,
0x1a, 0xea, 0x
50
, 0x59,
0x1a, 0xea, 0x04, 0x00,
0xff, 0xea, 0xd4, 0x0d,
0xe7, 0xad, 0x5a, 0x09,
...
...
@@ -113,29 +113,30 @@ static uint8_t seqprog[] = {
0xff, 0xea, 0xc0, 0x09,
0x01, 0x4e, 0x9d, 0x1a,
0x00, 0x4f, 0x9f, 0x22,
0x01, 0xaa, 0x6d, 0x33,
0x01, 0xea, 0x5c, 0x33,
0x04, 0xa4, 0x49, 0x32,
0xff, 0xea, 0x4a, 0x03,
0xff, 0xea, 0x4e, 0x03,
0x01, 0x10, 0xd4, 0x31,
0x10, 0xa8, 0xf
3
, 0x68,
0x10, 0xa8, 0xf
5
, 0x68,
0x3d, 0xa9, 0xc5, 0x29,
0xfe, 0xe2, 0xc4, 0x09,
0x01, 0xea, 0xc6, 0x01,
0x02, 0xe2, 0xc8, 0x31,
0x02, 0xec, 0x50, 0x31,
0x02, 0xa0, 0xda, 0x31,
0xff, 0xa9, 0xf
2
, 0x70,
0xff, 0xa9, 0xf
4
, 0x70,
0x02, 0xa0, 0x48, 0x37,
0xff, 0x21, 0xf
b
, 0x70,
0xff, 0x21, 0xf
d
, 0x70,
0x02, 0x22, 0x51, 0x31,
0x02, 0xa0, 0x4c, 0x33,
0x02, 0xa0, 0x44, 0x36,
0x02, 0xa0, 0x40, 0x32,
0x02, 0xa0, 0x44, 0x36,
0x04, 0x47, 0x0
3
, 0x69,
0x40, 0x16, 0x
2e
, 0x69,
0xff, 0x2d, 0x3
3
, 0x61,
0x04, 0x47, 0x0
5
, 0x69,
0x40, 0x16, 0x
30
, 0x69,
0xff, 0x2d, 0x3
5
, 0x61,
0xff, 0x29, 0x65, 0x70,
0x01, 0x37, 0xc1, 0x31,
0x02, 0x28, 0x55, 0x32,
...
...
@@ -148,20 +149,20 @@ static uint8_t seqprog[] = {
0x01, 0x50, 0xa1, 0x1a,
0xff, 0x4e, 0x9d, 0x1a,
0xff, 0x4f, 0x9f, 0x22,
0xff, 0x8d, 0x2
7
, 0x71,
0x80, 0xac, 0x2
6
, 0x71,
0x20, 0x16, 0x2
6
, 0x69,
0xff, 0x8d, 0x2
9
, 0x71,
0x80, 0xac, 0x2
8
, 0x71,
0x20, 0x16, 0x2
8
, 0x69,
0x02, 0x8c, 0x51, 0x31,
0x00, 0xe2, 0x1
0
, 0x41,
0x00, 0xe2, 0x1
2
, 0x41,
0x01, 0xac, 0x08, 0x31,
0x09, 0xea, 0x5a, 0x01,
0x02, 0x8c, 0x51, 0x32,
0xff, 0xea, 0x1a, 0x07,
0x04, 0x24, 0xf9, 0x30,
0x1d, 0xea, 0x3
8
, 0x41,
0x1d, 0xea, 0x3
a
, 0x41,
0x02, 0x2c, 0x51, 0x31,
0x04, 0xa0, 0xf9, 0x30,
0x19, 0xea, 0x3
8
, 0x41,
0x19, 0xea, 0x3
a
, 0x41,
0x06, 0xea, 0x08, 0x81,
0x01, 0xe2, 0x5a, 0x35,
0x02, 0xf2, 0xf0, 0x35,
...
...
@@ -179,23 +180,23 @@ static uint8_t seqprog[] = {
0x02, 0x20, 0xb9, 0x30,
0x02, 0x20, 0x51, 0x31,
0x4c, 0xa9, 0xd7, 0x28,
0x10, 0xa8, 0x6
1
, 0x79,
0x10, 0xa8, 0x6
3
, 0x79,
0x01, 0x6b, 0xc0, 0x30,
0x02, 0x64, 0xc8, 0x00,
0x40, 0x3a, 0x74, 0x04,
0x00, 0xe2, 0x56, 0x58,
0x33, 0xea, 0x4
2
, 0x59,
0x33, 0xea, 0x4
4
, 0x59,
0x33, 0xea, 0x00, 0x00,
0x30, 0x3f, 0xc0, 0x09,
0x30, 0xe0, 0x6
2
, 0x61,
0x20, 0x3f, 0x7
8
, 0x69,
0x10, 0x3f, 0x6
2
, 0x79,
0x30, 0xe0, 0x6
4
, 0x61,
0x20, 0x3f, 0x7
a
, 0x69,
0x10, 0x3f, 0x6
4
, 0x79,
0x02, 0xea, 0x7e, 0x00,
0x00, 0xea, 0x4
2
, 0x59,
0x00, 0xea, 0x4
4
, 0x59,
0x01, 0xea, 0x00, 0x30,
0x02, 0x48, 0x51, 0x35,
0x01, 0xea, 0x7e, 0x00,
0x11, 0xea, 0x4
2
, 0x59,
0x11, 0xea, 0x4
4
, 0x59,
0x11, 0xea, 0x00, 0x00,
0x02, 0x48, 0x51, 0x35,
0x08, 0xea, 0x98, 0x00,
...
...
@@ -205,11 +206,11 @@ static uint8_t seqprog[] = {
0x0f, 0x67, 0xc0, 0x09,
0x00, 0x34, 0x69, 0x02,
0x20, 0xea, 0x96, 0x00,
0x00, 0xe2, 0xf
6
, 0x41,
0x40, 0x3a, 0xa
c
, 0x69,
0x00, 0xe2, 0xf
8
, 0x41,
0x40, 0x3a, 0xa
e
, 0x69,
0x02, 0x55, 0x06, 0x68,
0x02, 0x56, 0xa
c
, 0x69,
0xff, 0x5b, 0xa
c
, 0x61,
0x02, 0x56, 0xa
e
, 0x69,
0xff, 0x5b, 0xa
e
, 0x61,
0x02, 0x20, 0x51, 0x31,
0x80, 0xea, 0xb2, 0x01,
0x44, 0xea, 0x00, 0x00,
...
...
@@ -217,36 +218,36 @@ static uint8_t seqprog[] = {
0x33, 0xea, 0x00, 0x00,
0xff, 0xea, 0xb2, 0x09,
0xff, 0xe0, 0xc0, 0x19,
0xff, 0xe0, 0x
ae
, 0x79,
0xff, 0xe0, 0x
b0
, 0x79,
0x02, 0xa4, 0x51, 0x31,
0x00, 0xe2, 0xa
4
, 0x41,
0x00, 0xe2, 0xa
6
, 0x41,
0x02, 0x5e, 0x50, 0x31,
0x02, 0xa8, 0xb8, 0x30,
0x02, 0x5c, 0x50, 0x31,
0xff, 0xa5, 0x
bf
, 0x71,
0xff, 0xa5, 0x
c1
, 0x71,
0x02, 0xa4, 0x41, 0x31,
0x02, 0x22, 0x51, 0x31,
0x02, 0xa0, 0x4c, 0x33,
0x02, 0xa0, 0x44, 0x32,
0x00, 0xe2, 0xc
8
, 0x41,
0x10, 0xa8, 0xc
9
, 0x69,
0x00, 0xe2, 0xc
a
, 0x41,
0x10, 0xa8, 0xc
b
, 0x69,
0x3d, 0xa9, 0xc9, 0x29,
0x01, 0xe4, 0xc8, 0x01,
0x01, 0xea, 0xca, 0x01,
0xff, 0xea, 0xda, 0x01,
0x02, 0x20, 0x51, 0x31,
0x02, 0xa6, 0x41, 0x32,
0xff, 0x21, 0xd
1
, 0x61,
0xff, 0x21, 0xd
3
, 0x61,
0xff, 0xea, 0x46, 0x02,
0x02, 0x5c, 0x50, 0x31,
0x40, 0xea, 0x96, 0x00,
0x02, 0x56, 0xd
a
, 0x6d,
0x01, 0x55, 0xd
a
, 0x6d,
0x10, 0xa8, 0xd
d
, 0x79,
0x10, 0x40, 0xe
6
, 0x69,
0x01, 0x56, 0xe
6
, 0x79,
0x02, 0x56, 0xd
c
, 0x6d,
0x01, 0x55, 0xd
c
, 0x6d,
0x10, 0xa8, 0xd
f
, 0x79,
0x10, 0x40, 0xe
8
, 0x69,
0x01, 0x56, 0xe
8
, 0x79,
0xff, 0xad, 0x07, 0x78,
0x13, 0xea, 0x
4e
, 0x59,
0x13, 0xea, 0x
50
, 0x59,
0x13, 0xea, 0x04, 0x00,
0x00, 0xe2, 0x06, 0x40,
0xbf, 0x3a, 0x74, 0x08,
...
...
@@ -257,104 +258,104 @@ static uint8_t seqprog[] = {
0x40, 0xea, 0x66, 0x02,
0x08, 0x3c, 0x78, 0x00,
0x80, 0xea, 0x62, 0x02,
0x00, 0xe2, 0xb
2
, 0x5b,
0x00, 0xe2, 0xb
4
, 0x5b,
0x01, 0x36, 0xc1, 0x31,
0x9f, 0xe0, 0x5
4
, 0x7c,
0x80, 0xe0, 0x0
a
, 0x72,
0xa0, 0xe0, 0x4
2
, 0x72,
0xc0, 0xe0, 0x3
8
, 0x72,
0xe0, 0xe0, 0x7
2
, 0x72,
0x01, 0xea, 0x
4e
, 0x59,
0x9f, 0xe0, 0x5
6
, 0x7c,
0x80, 0xe0, 0x0
c
, 0x72,
0xa0, 0xe0, 0x4
4
, 0x72,
0xc0, 0xe0, 0x3
a
, 0x72,
0xe0, 0xe0, 0x7
4
, 0x72,
0x01, 0xea, 0x
50
, 0x59,
0x01, 0xea, 0x04, 0x00,
0x00, 0xe2, 0xf
6
, 0x41,
0x80, 0x33, 0x1
1
, 0x7a,
0x03, 0xea, 0x
4e
, 0x59,
0x00, 0xe2, 0xf
8
, 0x41,
0x80, 0x33, 0x1
3
, 0x7a,
0x03, 0xea, 0x
50
, 0x59,
0x03, 0xea, 0x04, 0x00,
0xee, 0x00, 0x1
8
, 0x6a,
0xee, 0x00, 0x1
a
, 0x6a,
0x05, 0xea, 0xb4, 0x00,
0x33, 0xea, 0x4
2
, 0x59,
0x33, 0xea, 0x4
4
, 0x59,
0x33, 0xea, 0x00, 0x00,
0x02, 0xa8, 0x90, 0x32,
0x00, 0xe2, 0x6
8
, 0x59,
0x00, 0xe2, 0x6
a
, 0x59,
0xef, 0xac, 0xd5, 0x19,
0x00, 0xe2, 0x2
8
, 0x52,
0x00, 0xe2, 0x2
a
, 0x52,
0x09, 0x80, 0xe1, 0x30,
0x02, 0xea, 0x36, 0x00,
0xa8, 0xea, 0x32, 0x00,
0x00, 0xe2, 0x
2e
, 0x42,
0x00, 0xe2, 0x
30
, 0x42,
0x01, 0xac, 0xd1, 0x30,
0x10, 0x80, 0x89, 0x31,
0x20, 0xea, 0x32, 0x00,
0xbf, 0x33, 0x67, 0x0a,
0x20, 0x19, 0x3
0
, 0x6a,
0x02, 0x4d, 0xf
6
, 0x69,
0x20, 0x19, 0x3
2
, 0x6a,
0x02, 0x4d, 0xf
8
, 0x69,
0x40, 0x33, 0x67, 0x02,
0x00, 0xe2, 0xf
6
, 0x41,
0x80, 0x33, 0x
af
, 0x6a,
0x00, 0xe2, 0xf
8
, 0x41,
0x80, 0x33, 0x
b1
, 0x6a,
0x01, 0x44, 0x10, 0x33,
0x08, 0xa8, 0x51, 0x03,
0x00, 0xe2, 0xf
6
, 0x41,
0x00, 0xe2, 0xf
8
, 0x41,
0x10, 0xea, 0x80, 0x00,
0x01, 0x31, 0xc5, 0x31,
0x80, 0xe2, 0x
5e
, 0x62,
0x10, 0xa8, 0x8
3
, 0x6a,
0x80, 0xe2, 0x
60
, 0x62,
0x10, 0xa8, 0x8
5
, 0x6a,
0xc0, 0xaa, 0xc5, 0x01,
0x40, 0xa8, 0x
4f
, 0x6a,
0x40, 0xa8, 0x
51
, 0x6a,
0xbf, 0xe2, 0xc4, 0x09,
0x20, 0xa8, 0x6
3
, 0x7a,
0x20, 0xa8, 0x6
5
, 0x7a,
0x01, 0xe2, 0x88, 0x30,
0x00, 0xe2, 0xb
2
, 0x5b,
0xa0, 0x36, 0x6
b
, 0x62,
0x00, 0xe2, 0xb
4
, 0x5b,
0xa0, 0x36, 0x6
d
, 0x62,
0x23, 0xa8, 0x89, 0x08,
0x00, 0xe2, 0xb
2
, 0x5b,
0xa0, 0x36, 0x6
b
, 0x62,
0x00, 0xa8, 0x6
2
, 0x42,
0xff, 0xe2, 0x6
2
, 0x62,
0x00, 0xe2, 0x8
2
, 0x42,
0x00, 0xe2, 0xb
4
, 0x5b,
0xa0, 0x36, 0x6
d
, 0x62,
0x00, 0xa8, 0x6
4
, 0x42,
0xff, 0xe2, 0x6
4
, 0x62,
0x00, 0xe2, 0x8
4
, 0x42,
0x40, 0xea, 0x98, 0x00,
0x01, 0xe2, 0x88, 0x30,
0x00, 0xe2, 0xb
2
, 0x5b,
0xa0, 0x36, 0x4
1
, 0x72,
0x00, 0xe2, 0xb
4
, 0x5b,
0xa0, 0x36, 0x4
3
, 0x72,
0x40, 0xea, 0x98, 0x00,
0x01, 0x31, 0x89, 0x32,
0x08, 0xea, 0x62, 0x02,
0x00, 0xe2, 0xf
6
, 0x41,
0xe0, 0xea, 0x
ce
, 0x5b,
0x80, 0xe0, 0xb
a
, 0x6a,
0x04, 0xe0, 0x6
0
, 0x73,
0x02, 0xe0, 0x9
0
, 0x73,
0x00, 0xea, 0x1
8
, 0x73,
0x03, 0xe0, 0xa
0
, 0x73,
0x23, 0xe0, 0x9
4
, 0x72,
0x08, 0xe0, 0xb
6
, 0x72,
0x00, 0xe2, 0xb
2
, 0x5b,
0x07, 0xea, 0x
4e
, 0x59,
0x00, 0xe2, 0xf
8
, 0x41,
0xe0, 0xea, 0x
d0
, 0x5b,
0x80, 0xe0, 0xb
c
, 0x6a,
0x04, 0xe0, 0x6
2
, 0x73,
0x02, 0xe0, 0x9
2
, 0x73,
0x00, 0xea, 0x1
a
, 0x73,
0x03, 0xe0, 0xa
2
, 0x73,
0x23, 0xe0, 0x9
6
, 0x72,
0x08, 0xe0, 0xb
8
, 0x72,
0x00, 0xe2, 0xb
4
, 0x5b,
0x07, 0xea, 0x
50
, 0x59,
0x07, 0xea, 0x04, 0x00,
0x08, 0x42, 0xf
7
, 0x71,
0x04, 0x42, 0x9
1
, 0x62,
0x08, 0x42, 0xf
9
, 0x71,
0x04, 0x42, 0x9
3
, 0x62,
0x01, 0x43, 0x89, 0x30,
0x00, 0xe2, 0x8
2
, 0x42,
0x00, 0xe2, 0x8
4
, 0x42,
0x01, 0x44, 0xd4, 0x31,
0x00, 0xe2, 0x8
2
, 0x42,
0x00, 0xe2, 0x8
4
, 0x42,
0x01, 0x00, 0x60, 0x32,
0x33, 0xea, 0x4
2
, 0x59,
0x33, 0xea, 0x4
4
, 0x59,
0x33, 0xea, 0x00, 0x00,
0x4c, 0x34, 0xc1, 0x28,
0x01, 0x64, 0xc0, 0x31,
0x00, 0x30, 0x4
3
, 0x59,
0x00, 0x30, 0x4
5
, 0x59,
0x01, 0x30, 0x01, 0x30,
0x01, 0xe0, 0xb
4
, 0x7a,
0xa0, 0xea, 0xc
4
, 0x5b,
0x01, 0xa0, 0xb
4
, 0x62,
0x01, 0x84, 0xa
d
, 0x7a,
0x01, 0xa7, 0xb
6
, 0x7a,
0x00, 0xe2, 0xb
6
, 0x42,
0x03, 0xea, 0x
4e
, 0x59,
0x01, 0xe0, 0xb
6
, 0x7a,
0xa0, 0xea, 0xc
6
, 0x5b,
0x01, 0xa0, 0xb
6
, 0x62,
0x01, 0x84, 0xa
f
, 0x7a,
0x01, 0xa7, 0xb
8
, 0x7a,
0x00, 0xe2, 0xb
8
, 0x42,
0x03, 0xea, 0x
50
, 0x59,
0x03, 0xea, 0x04, 0x00,
0x00, 0xe2, 0xb
6
, 0x42,
0x07, 0xea, 0xd
6
, 0x5b,
0x00, 0xe2, 0xb
8
, 0x42,
0x07, 0xea, 0xd
8
, 0x5b,
0x01, 0x44, 0xd4, 0x31,
0x00, 0xe2, 0xf
6
, 0x41,
0x00, 0xe2, 0xf
8
, 0x41,
0x3f, 0xe0, 0x6a, 0x0a,
0xc0, 0x34, 0xc1, 0x09,
0x00, 0x35, 0x51, 0x01,
...
...
@@ -365,54 +366,54 @@ static uint8_t seqprog[] = {
0x01, 0xea, 0xc6, 0x01,
0x02, 0xe2, 0xc8, 0x31,
0x02, 0xec, 0x40, 0x31,
0xff, 0xa1, 0xd
6
, 0x72,
0xff, 0xa1, 0xd
8
, 0x72,
0x02, 0xe8, 0xda, 0x31,
0x02, 0xa0, 0x50, 0x31,
0x00, 0xe2, 0xf
8
, 0x42,
0x00, 0xe2, 0xf
a
, 0x42,
0x80, 0x33, 0x67, 0x02,
0x01, 0x44, 0xd4, 0x31,
0x00, 0xe2, 0xb
2
, 0x5b,
0x00, 0xe2, 0xb
4
, 0x5b,
0x01, 0x33, 0x67, 0x02,
0xe0, 0x36, 0x1
3
, 0x63,
0xe0, 0x36, 0x1
5
, 0x63,
0x02, 0x33, 0x67, 0x02,
0x20, 0x46, 0x0
c
, 0x63,
0x20, 0x46, 0x0
e
, 0x63,
0xff, 0xea, 0x52, 0x09,
0xa8, 0xea, 0xc
4
, 0x5b,
0x04, 0xa8, 0xf
3
, 0x7a,
0xa8, 0xea, 0xc
6
, 0x5b,
0x04, 0xa8, 0xf
5
, 0x7a,
0x01, 0x34, 0xc1, 0x31,
0x00, 0xa9, 0xf
3
, 0x62,
0x00, 0xa9, 0xf
5
, 0x62,
0x01, 0x35, 0xc1, 0x31,
0x00, 0xaa, 0xf
d
, 0x72,
0x00, 0xaa, 0xf
f
, 0x72,
0x01, 0xa9, 0x52, 0x11,
0xff, 0xa9, 0xe
8
, 0x6a,
0x00, 0xe2, 0x0
c
, 0x43,
0xff, 0xa9, 0xe
a
, 0x6a,
0x00, 0xe2, 0x0
e
, 0x43,
0x10, 0x33, 0x67, 0x02,
0x04, 0xa8, 0x0
d
, 0x7b,
0x04, 0xa8, 0x0
f
, 0x7b,
0xfb, 0xa8, 0x51, 0x0b,
0xff, 0xea, 0x66, 0x0a,
0x01, 0x9c, 0x0
7
, 0x6b,
0x01, 0x9c, 0x0
9
, 0x6b,
0x02, 0xa8, 0x90, 0x32,
0x00, 0xe2, 0x6
8
, 0x59,
0x10, 0xa8, 0xb
7
, 0x7a,
0xff, 0xea, 0xd
6
, 0x5b,
0x00, 0xe2, 0xb
6
, 0x42,
0x04, 0xea, 0x
4e
, 0x59,
0x00, 0xe2, 0x6
a
, 0x59,
0x10, 0xa8, 0xb
9
, 0x7a,
0xff, 0xea, 0xd
8
, 0x5b,
0x00, 0xe2, 0xb
8
, 0x42,
0x04, 0xea, 0x
50
, 0x59,
0x04, 0xea, 0x04, 0x00,
0x00, 0xe2, 0xb
6
, 0x42,
0x04, 0xea, 0x
4e
, 0x59,
0x00, 0xe2, 0xb
8
, 0x42,
0x04, 0xea, 0x
50
, 0x59,
0x04, 0xea, 0x04, 0x00,
0x00, 0xe2, 0xf
6
, 0x41,
0x08, 0xa8, 0x
af
, 0x7a,
0xc0, 0x33, 0x2
3
, 0x7b,
0x80, 0x33, 0x
af
, 0x6a,
0xff, 0x88, 0x2
3
, 0x6b,
0x40, 0x33, 0x
af
, 0x6a,
0x10, 0xa8, 0x2
9
, 0x7b,
0x0a, 0xea, 0x
4e
, 0x59,
0x00, 0xe2, 0xf
8
, 0x41,
0x08, 0xa8, 0x
b1
, 0x7a,
0xc0, 0x33, 0x2
5
, 0x7b,
0x80, 0x33, 0x
b1
, 0x6a,
0xff, 0x88, 0x2
5
, 0x6b,
0x40, 0x33, 0x
b1
, 0x6a,
0x10, 0xa8, 0x2
b
, 0x7b,
0x0a, 0xea, 0x
50
, 0x59,
0x0a, 0xea, 0x04, 0x00,
0x00, 0xe2, 0x4
8
, 0x5b,
0x00, 0xe2, 0x7
c
, 0x43,
0x50, 0x4b, 0x3
0
, 0x6b,
0x00, 0xe2, 0x4
a
, 0x5b,
0x00, 0xe2, 0x7
e
, 0x43,
0x50, 0x4b, 0x3
2
, 0x6b,
0xbf, 0x3a, 0x74, 0x08,
0x01, 0xe0, 0xf4, 0x31,
0xff, 0xea, 0xc0, 0x09,
...
...
@@ -422,25 +423,25 @@ static uint8_t seqprog[] = {
0x01, 0xfa, 0xc0, 0x35,
0x02, 0xa8, 0x84, 0x32,
0x02, 0xea, 0xb4, 0x00,
0x33, 0xea, 0x4
2
, 0x59,
0x33, 0xea, 0x4
4
, 0x59,
0x33, 0xea, 0x00, 0x00,
0x02, 0x42, 0x51, 0x31,
0xff, 0xae, 0x65, 0x68,
0xff, 0x88, 0x5
5
, 0x6b,
0x01, 0x9c, 0x5
1
, 0x6b,
0x02, 0x9c, 0x5
9
, 0x6b,
0x01, 0x84, 0x5
9
, 0x7b,
0xff, 0x88, 0x5
7
, 0x6b,
0x01, 0x9c, 0x5
3
, 0x6b,
0x02, 0x9c, 0x5
b
, 0x6b,
0x01, 0x84, 0x5
b
, 0x7b,
0x02, 0x28, 0x19, 0x33,
0x02, 0xa8, 0x50, 0x36,
0xff, 0x88, 0x5
9
, 0x73,
0x00, 0xe2, 0x2
c
, 0x5b,
0xff, 0x88, 0x5
b
, 0x73,
0x00, 0xe2, 0x2
e
, 0x5b,
0x02, 0xa8, 0x5c, 0x33,
0x02, 0x2c, 0x19, 0x33,
0x02, 0xa8, 0x58, 0x32,
0x04, 0x9c, 0x39, 0x07,
0xc0, 0x33, 0x
af
, 0x6a,
0xc0, 0x33, 0x
b1
, 0x6a,
0x04, 0xa8, 0x51, 0x03,
0x20, 0xa8, 0x7
d
, 0x6b,
0x20, 0xa8, 0x7
f
, 0x6b,
0x02, 0xa8, 0x40, 0x31,
0xc0, 0x34, 0xc1, 0x09,
0x00, 0x35, 0x51, 0x01,
...
...
@@ -455,56 +456,56 @@ static uint8_t seqprog[] = {
0xf7, 0x57, 0xae, 0x08,
0x08, 0xea, 0x98, 0x00,
0x01, 0x44, 0xd4, 0x31,
0xee, 0x00, 0x8
6
, 0x6b,
0xee, 0x00, 0x8
8
, 0x6b,
0x02, 0xea, 0xb4, 0x00,
0x00, 0xe2, 0x
ae
, 0x5b,
0x09, 0x4c, 0x8
8
, 0x7b,
0x00, 0xe2, 0x
b0
, 0x5b,
0x09, 0x4c, 0x8
a
, 0x7b,
0x08, 0x4c, 0x06, 0x68,
0x0b, 0xea, 0x
4e
, 0x59,
0x0b, 0xea, 0x
50
, 0x59,
0x0b, 0xea, 0x04, 0x00,
0x01, 0x44, 0xd4, 0x31,
0x20, 0x33, 0xf
7
, 0x79,
0x00, 0xe2, 0x9
8
, 0x5b,
0x00, 0xe2, 0xf
6
, 0x41,
0x01, 0x84, 0x9
d
, 0x7b,
0x20, 0x33, 0xf
9
, 0x79,
0x00, 0xe2, 0x9
a
, 0x5b,
0x00, 0xe2, 0xf
8
, 0x41,
0x01, 0x84, 0x9
f
, 0x7b,
0x01, 0x9c, 0x39, 0x07,
0x08, 0x60, 0x20, 0x33,
0x08, 0x80, 0x31, 0x37,
0xdf, 0x33, 0x67, 0x0a,
0xee, 0x00, 0xa
a
, 0x6b,
0xee, 0x00, 0xa
c
, 0x6b,
0x05, 0xea, 0xb4, 0x00,
0x33, 0xea, 0x4
2
, 0x59,
0x33, 0xea, 0x4
4
, 0x59,
0x33, 0xea, 0x00, 0x00,
0x00, 0xe2, 0x6
8
, 0x59,
0x00, 0xe2, 0xb
6
, 0x42,
0x00, 0xe2, 0x6
a
, 0x59,
0x00, 0xe2, 0xb
8
, 0x42,
0x01, 0xea, 0x6c, 0x02,
0xc0, 0xea, 0x66, 0x06,
0xff, 0x42, 0x
be
, 0x6b,
0x01, 0x41, 0xb
2
, 0x6b,
0x02, 0x41, 0xb
2
, 0x7b,
0xff, 0x42, 0x
be
, 0x6b,
0x01, 0x41, 0xb
2
, 0x6b,
0x02, 0x41, 0xb
2
, 0x7b,
0xff, 0x42, 0x
be
, 0x7b,
0x04, 0x4c, 0xb
2
, 0x6b,
0xff, 0x42, 0x
c0
, 0x6b,
0x01, 0x41, 0xb
4
, 0x6b,
0x02, 0x41, 0xb
4
, 0x7b,
0xff, 0x42, 0x
c0
, 0x6b,
0x01, 0x41, 0xb
4
, 0x6b,
0x02, 0x41, 0xb
4
, 0x7b,
0xff, 0x42, 0x
c0
, 0x7b,
0x04, 0x4c, 0xb
4
, 0x6b,
0xe0, 0x41, 0x6c, 0x0e,
0x01, 0x44, 0xd4, 0x31,
0xff, 0x42, 0xc
6
, 0x7b,
0x04, 0x4c, 0xc
6
, 0x6b,
0xff, 0x42, 0xc
8
, 0x7b,
0x04, 0x4c, 0xc
8
, 0x6b,
0xe0, 0x41, 0x6c, 0x0a,
0xe0, 0x36, 0xf
7
, 0x61,
0xe0, 0x36, 0xf
9
, 0x61,
0xff, 0xea, 0xca, 0x09,
0x01, 0xe2, 0xc8, 0x31,
0x01, 0x46, 0xda, 0x35,
0x01, 0x44, 0xd4, 0x35,
0x10, 0xea, 0x80, 0x00,
0x01, 0xe2, 0x62, 0x36,
0x04, 0xa6, 0x
de
, 0x7b,
0x04, 0xa6, 0x
e0
, 0x7b,
0xff, 0xea, 0x5a, 0x09,
0xff, 0xea, 0x4c, 0x0d,
0x01, 0xa6, 0xf
c
, 0x6b,
0x01, 0xa6, 0xf
e
, 0x6b,
0x10, 0xad, 0x64, 0x78,
0x80, 0xad, 0xf
4
, 0x6b,
0x80, 0xad, 0xf
6
, 0x6b,
0x08, 0xad, 0x64, 0x68,
0x04, 0x84, 0xf9, 0x30,
0x00, 0xea, 0x08, 0x81,
...
...
@@ -521,7 +522,7 @@ static uint8_t seqprog[] = {
0x08, 0xb0, 0xe0, 0x30,
0x04, 0xb0, 0xe0, 0x30,
0x03, 0xb0, 0xf0, 0x30,
0x01, 0x78, 0x0
a
, 0x7c,
0x01, 0x78, 0x0
c
, 0x7c,
0x01, 0xa7, 0x4e, 0x11,
0x01, 0xb0, 0x06, 0x33,
0x7f, 0x83, 0xe9, 0x08,
...
...
@@ -532,9 +533,9 @@ static uint8_t seqprog[] = {
0x00, 0x86, 0x0d, 0x23,
0x00, 0x87, 0x0f, 0x23,
0x01, 0x84, 0xc5, 0x31,
0x01, 0xa7, 0x2
0
, 0x7c,
0x01, 0xa7, 0x2
2
, 0x7c,
0x04, 0xe2, 0xc4, 0x01,
0x80, 0x83, 0x2
7
, 0x7c,
0x80, 0x83, 0x2
9
, 0x7c,
0x02, 0xe2, 0xc4, 0x01,
0xff, 0xea, 0x4c, 0x09,
0x01, 0xe2, 0x36, 0x30,
...
...
@@ -546,83 +547,83 @@ static uint8_t seqprog[] = {
0x0b, 0x90, 0xe1, 0x30,
0x01, 0x98, 0x4f, 0x09,
0xfd, 0x9c, 0x49, 0x09,
0x80, 0x9b, 0x3
d
, 0x7c,
0x80, 0x9b, 0x3
f
, 0x7c,
0x02, 0xa4, 0x48, 0x01,
0x01, 0xa7, 0x4
0
, 0x7c,
0x01, 0xa7, 0x4
2
, 0x7c,
0x04, 0xa4, 0x48, 0x01,
0x01, 0xa4, 0x36, 0x30,
0xa8, 0xea, 0x32, 0x00,
0xfd, 0x9c, 0x39, 0x0b,
0x05, 0x9b, 0x07, 0x33,
0x80, 0x83, 0x4
d
, 0x6c,
0x80, 0x83, 0x4
f
, 0x6c,
0x02, 0xea, 0x4c, 0x05,
0xff, 0xea, 0x4c, 0x0d,
0x00, 0xe2, 0x3
c
, 0x59,
0x02, 0xa6, 0xe
0
, 0x6b,
0x00, 0xe2, 0x3
e
, 0x59,
0x02, 0xa6, 0xe
2
, 0x6b,
0x80, 0xf9, 0xf2, 0x05,
0xc0, 0x33, 0x5
b
, 0x7c,
0x03, 0xea, 0x
4e
, 0x59,
0xc0, 0x33, 0x5
d
, 0x7c,
0x03, 0xea, 0x
50
, 0x59,
0x03, 0xea, 0x04, 0x00,
0x20, 0x33, 0x
7f
, 0x7c,
0x01, 0x84, 0x6
5
, 0x6c,
0x06, 0xea, 0x
4e
, 0x59,
0x20, 0x33, 0x
81
, 0x7c,
0x01, 0x84, 0x6
7
, 0x6c,
0x06, 0xea, 0x
50
, 0x59,
0x06, 0xea, 0x04, 0x00,
0x00, 0xe2, 0x8
2
, 0x44,
0x00, 0xe2, 0x8
4
, 0x44,
0x01, 0x00, 0x60, 0x32,
0xee, 0x00, 0x
6e
, 0x6c,
0xee, 0x00, 0x
70
, 0x6c,
0x05, 0xea, 0xb4, 0x00,
0x33, 0xea, 0x4
2
, 0x59,
0x33, 0xea, 0x4
4
, 0x59,
0x33, 0xea, 0x00, 0x00,
0x80, 0x3d, 0x7a, 0x00,
0xfc, 0x42, 0x7
0
, 0x7c,
0xfc, 0x42, 0x7
2
, 0x7c,
0x7f, 0x3d, 0x7a, 0x08,
0x00, 0x30, 0x4
3
, 0x59,
0x00, 0x30, 0x4
5
, 0x59,
0x01, 0x30, 0x01, 0x30,
0x09, 0xea, 0x
4e
, 0x59,
0x09, 0xea, 0x
50
, 0x59,
0x09, 0xea, 0x04, 0x00,
0x00, 0xe2, 0xf
6
, 0x41,
0x01, 0x9c, 0x6
5
, 0x6c,
0x00, 0xe2, 0x3
2
, 0x5c,
0x00, 0xe2, 0xf
8
, 0x41,
0x01, 0x9c, 0x6
7
, 0x6c,
0x00, 0xe2, 0x3
4
, 0x5c,
0x20, 0x33, 0x67, 0x02,
0x01, 0x00, 0x60, 0x32,
0x02, 0xa6, 0x8
a
, 0x7c,
0x00, 0xe2, 0x
4e
, 0x5c,
0x02, 0xa6, 0x8
c
, 0x7c,
0x00, 0xe2, 0x
50
, 0x5c,
0x00, 0xe2, 0x56, 0x58,
0x00, 0xe2, 0x66, 0x58,
0x00, 0xe2, 0x3a, 0x58,
0x00, 0x30, 0x4
3
, 0x59,
0x00, 0x30, 0x4
5
, 0x59,
0x01, 0x30, 0x01, 0x30,
0x20, 0x19, 0x8
a
, 0x6c,
0x00, 0xe2, 0xb
a
, 0x5c,
0x04, 0x19, 0xa
4
, 0x6c,
0x20, 0x19, 0x8
c
, 0x6c,
0x00, 0xe2, 0xb
c
, 0x5c,
0x04, 0x19, 0xa
6
, 0x6c,
0x02, 0x19, 0x32, 0x00,
0x01, 0x84, 0xa
5
, 0x7c,
0x01, 0x1b, 0x
9e
, 0x7c,
0x01, 0x1a, 0xa
4
, 0x6c,
0x00, 0xe2, 0x5
4
, 0x44,
0x80, 0x4b, 0xa
a
, 0x6c,
0x01, 0x4c, 0xa
6
, 0x7c,
0x03, 0x42, 0x5
4
, 0x6c,
0x00, 0xe2, 0xd
a
, 0x5b,
0x01, 0x84, 0xa
7
, 0x7c,
0x01, 0x1b, 0x
a0
, 0x7c,
0x01, 0x1a, 0xa
6
, 0x6c,
0x00, 0xe2, 0x5
6
, 0x44,
0x80, 0x4b, 0xa
c
, 0x6c,
0x01, 0x4c, 0xa
8
, 0x7c,
0x03, 0x42, 0x5
6
, 0x6c,
0x00, 0xe2, 0xd
c
, 0x5b,
0x80, 0xf9, 0xf2, 0x01,
0x04, 0x33, 0xf
7
, 0x79,
0x00, 0xe2, 0xf
6
, 0x41,
0x08, 0x5d, 0xc
2
, 0x6c,
0x04, 0x33, 0xf
9
, 0x79,
0x00, 0xe2, 0xf
8
, 0x41,
0x08, 0x5d, 0xc
4
, 0x6c,
0x00, 0xe2, 0x56, 0x58,
0x00, 0x30, 0x4
3
, 0x59,
0x00, 0x30, 0x4
5
, 0x59,
0x01, 0x30, 0x01, 0x30,
0x02, 0x1b, 0xb
2
, 0x7c,
0x08, 0x5d, 0xc
0
, 0x7c,
0x02, 0x1b, 0xb
4
, 0x7c,
0x08, 0x5d, 0xc
2
, 0x7c,
0x03, 0x68, 0x00, 0x37,
0x01, 0x84, 0x09, 0x07,
0x80, 0x1b, 0xc
c
, 0x7c,
0x80, 0x84, 0xc
d
, 0x6c,
0x80, 0x1b, 0xc
e
, 0x7c,
0x80, 0x84, 0xc
f
, 0x6c,
0xff, 0x85, 0x0b, 0x1b,
0xff, 0x86, 0x0d, 0x23,
0xff, 0x87, 0x0f, 0x23,
0xf8, 0x1b, 0x08, 0x0b,
0xff, 0xea, 0x4e, 0x09,
0x04, 0x1b, 0xd
4
, 0x7c,
0x04, 0x1b, 0xd
6
, 0x7c,
0x01, 0xa7, 0x4e, 0x01,
0xff, 0xea, 0x06, 0x0b,
0x03, 0x68, 0x00, 0x37,
...
...
@@ -631,161 +632,161 @@ static uint8_t seqprog[] = {
0xf9, 0xd9, 0xb2, 0x0d,
0x01, 0xd9, 0xb2, 0x05,
0x01, 0x52, 0x48, 0x31,
0x20, 0xa4, 0xf
c
, 0x7c,
0x20, 0x5b, 0xf
c
, 0x7c,
0x80, 0xf9, 0x0
a
, 0x7d,
0x20, 0xa4, 0xf
e
, 0x7c,
0x20, 0x5b, 0xf
e
, 0x7c,
0x80, 0xf9, 0x0
c
, 0x7d,
0x02, 0xea, 0xb4, 0x00,
0x11, 0x00, 0x00, 0x10,
0x04, 0x19, 0x1
6
, 0x7d,
0x04, 0x19, 0x1
8
, 0x7d,
0xdf, 0x19, 0x32, 0x08,
0x60, 0x5b, 0xf
4
, 0x6c,
0x01, 0x4c, 0xf
0
, 0x7c,
0x60, 0x5b, 0xf
6
, 0x6c,
0x01, 0x4c, 0xf
2
, 0x7c,
0x20, 0x19, 0x32, 0x00,
0x01, 0xd9, 0xb2, 0x05,
0x02, 0xea, 0xb4, 0x00,
0x01, 0xd9, 0xb2, 0x05,
0x10, 0x5b, 0x
0e
, 0x6d,
0x08, 0x5b, 0x1
8
, 0x6d,
0x20, 0x5b, 0x0
8
, 0x6d,
0x02, 0x5b, 0x3
8
, 0x6d,
0x0e, 0xea, 0x
4e
, 0x59,
0x10, 0x5b, 0x
10
, 0x6d,
0x08, 0x5b, 0x1
a
, 0x6d,
0x20, 0x5b, 0x0
a
, 0x6d,
0x02, 0x5b, 0x3
a
, 0x6d,
0x0e, 0xea, 0x
50
, 0x59,
0x0e, 0xea, 0x04, 0x00,
0x80, 0xf9, 0xf
8
, 0x6c,
0x80, 0xf9, 0xf
a
, 0x6c,
0xdf, 0x5c, 0xb8, 0x08,
0x01, 0xd9, 0xb2, 0x05,
0x01, 0x9c, 0xf
3
, 0x6d,
0x00, 0xe2, 0x3
2
, 0x5c,
0x00, 0xe2, 0x4
2
, 0x5d,
0x01, 0x9c, 0xf
5
, 0x6d,
0x00, 0xe2, 0x3
4
, 0x5c,
0x00, 0xe2, 0x4
4
, 0x5d,
0x01, 0xae, 0x5d, 0x1b,
0x01, 0xd9, 0xb2, 0x05,
0x00, 0xe2, 0x2
c
, 0x5b,
0x00, 0xe2, 0x2
e
, 0x5b,
0xf3, 0xac, 0xd5, 0x19,
0x00, 0xe2, 0x2
6
, 0x55,
0x80, 0xac, 0x2
7
, 0x6d,
0x0f, 0xea, 0x
4e
, 0x59,
0x00, 0xe2, 0x2
8
, 0x55,
0x80, 0xac, 0x2
9
, 0x6d,
0x0f, 0xea, 0x
50
, 0x59,
0x0f, 0xea, 0x04, 0x00,
0x00, 0xe2, 0x
2e
, 0x45,
0x00, 0xe2, 0x
30
, 0x45,
0x04, 0x8c, 0xe1, 0x30,
0x01, 0xea, 0xf2, 0x00,
0x02, 0xea, 0x36, 0x00,
0xa8, 0xea, 0x32, 0x00,
0xff, 0xad, 0x3
5
, 0x7d,
0x14, 0xea, 0x
4e
, 0x59,
0xff, 0xad, 0x3
7
, 0x7d,
0x14, 0xea, 0x
50
, 0x59,
0x14, 0xea, 0x04, 0x00,
0x00, 0xe2, 0xa
4
, 0x5d,
0x00, 0xe2, 0xa
6
, 0x5d,
0x01, 0xd9, 0xb2, 0x05,
0x09, 0x80, 0xe1, 0x30,
0x02, 0xea, 0x36, 0x00,
0xa8, 0xea, 0x32, 0x00,
0x00, 0xe2, 0x9
c
, 0x5d,
0x00, 0xe2, 0x9
e
, 0x5d,
0x01, 0xd9, 0xb2, 0x05,
0x02, 0xa6, 0x5
2
, 0x7d,
0x00, 0xe2, 0x3
c
, 0x59,
0x20, 0x5b, 0x6
0
, 0x6d,
0xfc, 0x42, 0x4
c
, 0x7d,
0x10, 0x40, 0x
4e
, 0x6d,
0x20, 0x4d, 0x5
0
, 0x7d,
0x08, 0x5d, 0x6
0
, 0x6d,
0x02, 0xa6, 0xe
0
, 0x6b,
0x00, 0xe2, 0x3
c
, 0x59,
0x20, 0x5b, 0x6
0
, 0x6d,
0x01, 0x1b, 0x8
0
, 0x6d,
0xfc, 0x42, 0x5
c
, 0x7d,
0x10, 0x40, 0x
5e
, 0x6d,
0x02, 0xa6, 0x5
4
, 0x7d,
0x00, 0xe2, 0x3
e
, 0x59,
0x20, 0x5b, 0x6
2
, 0x6d,
0xfc, 0x42, 0x4
e
, 0x7d,
0x10, 0x40, 0x
50
, 0x6d,
0x20, 0x4d, 0x5
2
, 0x7d,
0x08, 0x5d, 0x6
2
, 0x6d,
0x02, 0xa6, 0xe
2
, 0x6b,
0x00, 0xe2, 0x3
e
, 0x59,
0x20, 0x5b, 0x6
2
, 0x6d,
0x01, 0x1b, 0x8
2
, 0x6d,
0xfc, 0x42, 0x5
e
, 0x7d,
0x10, 0x40, 0x
60
, 0x6d,
0x20, 0x4d, 0x64, 0x78,
0x08, 0x5d, 0x64, 0x78,
0x02, 0x19, 0x32, 0x00,
0x01, 0x5b, 0x40, 0x31,
0x00, 0xe2, 0xb
a
, 0x5c,
0x00, 0xe2, 0x9
8
, 0x5b,
0x00, 0xe2, 0xb
c
, 0x5c,
0x00, 0xe2, 0x9
a
, 0x5b,
0x20, 0xea, 0xb6, 0x00,
0x00, 0xe2, 0xd
a
, 0x5b,
0x00, 0xe2, 0xd
c
, 0x5b,
0x20, 0x5c, 0xb8, 0x00,
0x04, 0x19, 0x7
6
, 0x6d,
0x01, 0x1a, 0x7
6
, 0x6d,
0x00, 0xe2, 0x3
c
, 0x59,
0x04, 0x19, 0x7
8
, 0x6d,
0x01, 0x1a, 0x7
8
, 0x6d,
0x00, 0xe2, 0x3
e
, 0x59,
0x01, 0x1a, 0x64, 0x78,
0x80, 0xf9, 0xf2, 0x01,
0x20, 0xa0, 0xd
a
, 0x7d,
0x20, 0xa0, 0xd
c
, 0x7d,
0xff, 0xae, 0x5d, 0x1b,
0x08, 0xa8, 0x3
d
, 0x6b,
0x08, 0xa8, 0x3
f
, 0x6b,
0x02, 0xea, 0xb4, 0x04,
0x01, 0x9c, 0x39, 0x03,
0x40, 0x5b, 0x9
0
, 0x6d,
0x00, 0xe2, 0x3
c
, 0x59,
0x40, 0x5b, 0x9
0
, 0x6d,
0x04, 0x5d, 0xf
4
, 0x7d,
0x01, 0x1a, 0xf
4
, 0x7d,
0x40, 0x5b, 0x9
2
, 0x6d,
0x00, 0xe2, 0x3
e
, 0x59,
0x40, 0x5b, 0x9
2
, 0x6d,
0x04, 0x5d, 0xf
6
, 0x7d,
0x01, 0x1a, 0xf
6
, 0x7d,
0x20, 0x4d, 0x64, 0x78,
0x40, 0x5b, 0xd
a
, 0x7d,
0x04, 0x5d, 0xf
4
, 0x7d,
0x01, 0x1a, 0xf
4
, 0x7d,
0x40, 0x5b, 0xd
c
, 0x7d,
0x04, 0x5d, 0xf
6
, 0x7d,
0x01, 0x1a, 0xf
6
, 0x7d,
0x80, 0xf9, 0xf2, 0x01,
0xff, 0xae, 0x5d, 0x1b,
0x08, 0xa8, 0x3
d
, 0x6b,
0x08, 0xa8, 0x3
f
, 0x6b,
0x02, 0xea, 0xb4, 0x04,
0x00, 0xe2, 0x3
c
, 0x59,
0x00, 0xe2, 0x3
e
, 0x59,
0x01, 0x1b, 0x64, 0x78,
0x80, 0xf9, 0xf2, 0x01,
0x02, 0xea, 0xb4, 0x04,
0x00, 0xe2, 0x3
c
, 0x59,
0x01, 0x1b, 0xb
8
, 0x6d,
0x40, 0x5b, 0xc
6
, 0x7d,
0x01, 0x1b, 0xb
8
, 0x6d,
0x00, 0xe2, 0x3
e
, 0x59,
0x01, 0x1b, 0xb
a
, 0x6d,
0x40, 0x5b, 0xc
8
, 0x7d,
0x01, 0x1b, 0xb
a
, 0x6d,
0x02, 0x19, 0x32, 0x00,
0x01, 0x1a, 0x64, 0x78,
0x80, 0xf9, 0xf2, 0x01,
0xff, 0xea, 0x10, 0x03,
0x08, 0xa8, 0x51, 0x03,
0x00, 0xe2, 0x3
c
, 0x43,
0x01, 0x1a, 0xc
2
, 0x7d,
0x40, 0x5b, 0x
be
, 0x7d,
0x01, 0x1a, 0xa
c
, 0x6d,
0x00, 0xe2, 0x3
e
, 0x43,
0x01, 0x1a, 0xc
4
, 0x7d,
0x40, 0x5b, 0x
c0
, 0x7d,
0x01, 0x1a, 0xa
e
, 0x6d,
0xfc, 0x42, 0x64, 0x78,
0x01, 0x1a, 0xc
6
, 0x6d,
0x10, 0xea, 0x
4e
, 0x59,
0x01, 0x1a, 0xc
8
, 0x6d,
0x10, 0xea, 0x
50
, 0x59,
0x10, 0xea, 0x04, 0x00,
0xfc, 0x42, 0x64, 0x78,
0x10, 0x40, 0xc
c
, 0x6d,
0x10, 0x40, 0xc
e
, 0x6d,
0x20, 0x4d, 0x64, 0x78,
0x40, 0x5b, 0xa
c
, 0x6d,
0x40, 0x5b, 0xa
e
, 0x6d,
0x01, 0x1a, 0x64, 0x78,
0x01, 0xae, 0x5d, 0x1b,
0x30, 0x3f, 0xc0, 0x09,
0x30, 0xe0, 0x64, 0x60,
0x40, 0x4b, 0x64, 0x68,
0xff, 0xea, 0x52, 0x01,
0xee, 0x00, 0xe
0
, 0x6d,
0xee, 0x00, 0xe
2
, 0x6d,
0x80, 0xf9, 0xf2, 0x01,
0xff, 0xae, 0x5d, 0x1b,
0x02, 0xea, 0xb4, 0x00,
0x20, 0xea, 0x9a, 0x00,
0xf3, 0x42, 0xe
c
, 0x6d,
0x12, 0xea, 0x
4e
, 0x59,
0xf3, 0x42, 0xe
e
, 0x6d,
0x12, 0xea, 0x
50
, 0x59,
0x12, 0xea, 0x04, 0x00,
0x00, 0xe2, 0xf
6
, 0x41,
0x0d, 0xea, 0x
4e
, 0x59,
0x00, 0xe2, 0xf
8
, 0x41,
0x0d, 0xea, 0x
50
, 0x59,
0x0d, 0xea, 0x04, 0x00,
0x00, 0xe2, 0xf
6
, 0x41,
0x00, 0xe2, 0xf
8
, 0x41,
0x01, 0xae, 0x5d, 0x1b,
0x11, 0xea, 0x
4e
, 0x59,
0x11, 0xea, 0x
50
, 0x59,
0x11, 0xea, 0x04, 0x00,
0x00, 0xe2, 0x2
c
, 0x5b,
0x00, 0xe2, 0x2
e
, 0x5b,
0x08, 0x5a, 0xb4, 0x00,
0x00, 0xe2, 0x1
a
, 0x5e,
0x00, 0xe2, 0x1
c
, 0x5e,
0xa8, 0xea, 0x32, 0x00,
0x00, 0xe2, 0x3
c
, 0x59,
0x80, 0x1a, 0x0
8
, 0x7e,
0x00, 0xe2, 0x1
a
, 0x5e,
0x00, 0xe2, 0x3
e
, 0x59,
0x80, 0x1a, 0x0
a
, 0x7e,
0x00, 0xe2, 0x1
c
, 0x5e,
0x80, 0x19, 0x32, 0x00,
0x40, 0x5b, 0x
0e
, 0x6e,
0x08, 0x5a, 0x
0e
, 0x7e,
0x40, 0x5b, 0x
10
, 0x6e,
0x08, 0x5a, 0x
10
, 0x7e,
0x20, 0x4d, 0x64, 0x78,
0x02, 0x84, 0x09, 0x03,
0x40, 0x5b, 0xd
a
, 0x7d,
0x40, 0x5b, 0xd
c
, 0x7d,
0xff, 0xae, 0x5d, 0x1b,
0x80, 0xf9, 0xf2, 0x01,
0x08, 0xa8, 0x3
d
, 0x6b,
0x08, 0xa8, 0x3
f
, 0x6b,
0x02, 0xea, 0xb4, 0x04,
0x01, 0x38, 0xe1, 0x30,
0x05, 0x39, 0xe3, 0x98,
...
...
@@ -801,12 +802,20 @@ static uint8_t seqprog[] = {
};
typedef int ahd_patch_func_t (struct ahd_softc *ahd);
static ahd_patch_func_t ahd_patch22_func;
static int
ahd_patch22_func(struct ahd_softc *ahd)
{
return ((ahd->bugs & AHD_PKT_BITBUCKET_BUG) != 0);
}
static ahd_patch_func_t ahd_patch21_func;
static int
ahd_patch21_func(struct ahd_softc *ahd)
{
return ((ahd->bugs & AHD_PKT_BITBUCKET_BUG)
!
= 0);
return ((ahd->bugs & AHD_PKT_BITBUCKET_BUG)
=
= 0);
}
static ahd_patch_func_t ahd_patch20_func;
...
...
@@ -814,7 +823,7 @@ static ahd_patch_func_t ahd_patch20_func;
static int
ahd_patch20_func(struct ahd_softc *ahd)
{
return ((ahd->
bugs & AHD_PKT_BITBUCKET_BUG
) == 0);
return ((ahd->
features & AHD_RTI
) == 0);
}
static ahd_patch_func_t ahd_patch19_func;
...
...
@@ -822,7 +831,7 @@ static ahd_patch_func_t ahd_patch19_func;
static int
ahd_patch19_func(struct ahd_softc *ahd)
{
return ((ahd->f
eatures & AHD_RTI) =
= 0);
return ((ahd->f
lags & AHD_INITIATORROLE) !
= 0);
}
static ahd_patch_func_t ahd_patch18_func;
...
...
@@ -830,7 +839,7 @@ static ahd_patch_func_t ahd_patch18_func;
static int
ahd_patch18_func(struct ahd_softc *ahd)
{
return ((ahd->flags & AHD_
INITIATOR
ROLE) != 0);
return ((ahd->flags & AHD_
TARGET
ROLE) != 0);
}
static ahd_patch_func_t ahd_patch17_func;
...
...
@@ -838,7 +847,7 @@ static ahd_patch_func_t ahd_patch17_func;
static int
ahd_patch17_func(struct ahd_softc *ahd)
{
return ((ahd->
flags & AHD_TARGETROLE
) != 0);
return ((ahd->
bugs & AHD_AUTOFLUSH_BUG
) != 0);
}
static ahd_patch_func_t ahd_patch16_func;
...
...
@@ -846,7 +855,7 @@ static ahd_patch_func_t ahd_patch16_func;
static int
ahd_patch16_func(struct ahd_softc *ahd)
{
return ((ahd->
bugs & AHD_AUTOFLUSH_BUG
) != 0);
return ((ahd->
features & AHD_NEW_DFCNTRL_OPTS
) != 0);
}
static ahd_patch_func_t ahd_patch15_func;
...
...
@@ -854,7 +863,7 @@ static ahd_patch_func_t ahd_patch15_func;
static int
ahd_patch15_func(struct ahd_softc *ahd)
{
return ((ahd->f
eatures & AHD_NEW_DFCNTRL_OPTS
) != 0);
return ((ahd->f
lags & AHD_39BIT_ADDRESSING
) != 0);
}
static ahd_patch_func_t ahd_patch14_func;
...
...
@@ -862,7 +871,7 @@ static ahd_patch_func_t ahd_patch14_func;
static int
ahd_patch14_func(struct ahd_softc *ahd)
{
return ((ahd->flags & AHD_
39
BIT_ADDRESSING) != 0);
return ((ahd->flags & AHD_
64
BIT_ADDRESSING) != 0);
}
static ahd_patch_func_t ahd_patch13_func;
...
...
@@ -870,7 +879,7 @@ static ahd_patch_func_t ahd_patch13_func;
static int
ahd_patch13_func(struct ahd_softc *ahd)
{
return ((ahd->f
lags & AHD_64BIT_ADDRESSING) !
= 0);
return ((ahd->f
eatures & AHD_NEW_DFCNTRL_OPTS) =
= 0);
}
static ahd_patch_func_t ahd_patch12_func;
...
...
@@ -878,7 +887,7 @@ static ahd_patch_func_t ahd_patch12_func;
static int
ahd_patch12_func(struct ahd_softc *ahd)
{
return ((ahd->
features & AHD_NEW_DFCNTRL_OPTS) =
= 0);
return ((ahd->
bugs & AHD_REG_SLOW_SETTLE_BUG) !
= 0);
}
static ahd_patch_func_t ahd_patch11_func;
...
...
@@ -886,7 +895,7 @@ static ahd_patch_func_t ahd_patch11_func;
static int
ahd_patch11_func(struct ahd_softc *ahd)
{
return ((ahd->bugs & AHD_
REG_SLOW_SETTLE
_BUG) != 0);
return ((ahd->bugs & AHD_
EARLY_REQ
_BUG) != 0);
}
static ahd_patch_func_t ahd_patch10_func;
...
...
@@ -894,7 +903,7 @@ static ahd_patch_func_t ahd_patch10_func;
static int
ahd_patch10_func(struct ahd_softc *ahd)
{
return ((ahd->bugs & AHD_
EARLY_REQ_BUG) !
= 0);
return ((ahd->bugs & AHD_
BUSFREEREV_BUG) =
= 0);
}
static ahd_patch_func_t ahd_patch9_func;
...
...
@@ -902,7 +911,7 @@ static ahd_patch_func_t ahd_patch9_func;
static int
ahd_patch9_func(struct ahd_softc *ahd)
{
return ((ahd->
bugs & AHD_BUSFREEREV_BUG) =
= 0);
return ((ahd->
flags & AHD_SEQUENCER_DEBUG) !
= 0);
}
static ahd_patch_func_t ahd_patch8_func;
...
...
@@ -910,7 +919,7 @@ static ahd_patch_func_t ahd_patch8_func;
static int
ahd_patch8_func(struct ahd_softc *ahd)
{
return ((ahd->
flags & AHD_SEQUENCER_DE
BUG) != 0);
return ((ahd->
bugs & AHD_LQO_ATNO_
BUG) != 0);
}
static ahd_patch_func_t ahd_patch7_func;
...
...
@@ -918,7 +927,7 @@ static ahd_patch_func_t ahd_patch7_func;
static int
ahd_patch7_func(struct ahd_softc *ahd)
{
return ((ahd->bugs & AHD_
LQO_ATNO
_BUG) != 0);
return ((ahd->bugs & AHD_
BUSFREEREV
_BUG) != 0);
}
static ahd_patch_func_t ahd_patch6_func;
...
...
@@ -926,7 +935,7 @@ static ahd_patch_func_t ahd_patch6_func;
static int
ahd_patch6_func(struct ahd_softc *ahd)
{
return ((ahd->bugs & AHD_
BUSFREEREV
_BUG) != 0);
return ((ahd->bugs & AHD_
NONPACKFIFO
_BUG) != 0);
}
static ahd_patch_func_t ahd_patch5_func;
...
...
@@ -934,7 +943,7 @@ static ahd_patch_func_t ahd_patch5_func;
static int
ahd_patch5_func(struct ahd_softc *ahd)
{
return ((ahd->bugs & AHD_
NONPACKFIFO
_BUG) != 0);
return ((ahd->bugs & AHD_
SENT_SCB_UPDATE
_BUG) != 0);
}
static ahd_patch_func_t ahd_patch4_func;
...
...
@@ -942,7 +951,7 @@ static ahd_patch_func_t ahd_patch4_func;
static int
ahd_patch4_func(struct ahd_softc *ahd)
{
return ((ahd->bugs & AHD_
SENT_SCB_UPDATE
_BUG) != 0);
return ((ahd->bugs & AHD_
PKT_LUN
_BUG) != 0);
}
static ahd_patch_func_t ahd_patch3_func;
...
...
@@ -1008,109 +1017,110 @@ static struct patch {
{ ahd_patch0_func, 70, 1, 1 },
{ ahd_patch1_func, 73, 1, 2 },
{ ahd_patch0_func, 74, 1, 1 },
{ ahd_patch2_func, 161, 6, 1 },
{ ahd_patch1_func, 167, 2, 1 },
{ ahd_patch4_func, 169, 1, 1 },
{ ahd_patch2_func, 178, 1, 2 },
{ ahd_patch0_func, 179, 1, 1 },
{ ahd_patch5_func, 180, 2, 2 },
{ ahd_patch0_func, 182, 6, 3 },
{ ahd_patch2_func, 185, 1, 2 },
{ ahd_patch0_func, 186, 1, 1 },
{ ahd_patch2_func, 189, 1, 2 },
{ ahd_patch0_func, 190, 1, 1 },
{ ahd_patch6_func, 192, 2, 1 },
{ ahd_patch4_func, 200, 16, 2 },
{ ahd_patch0_func, 216, 1, 1 },
{ ahd_patch7_func, 236, 2, 1 },
{ ahd_patch1_func, 240, 1, 2 },
{ ahd_patch0_func, 241, 1, 1 },
{ ahd_patch6_func, 244, 2, 1 },
{ ahd_patch1_func, 258, 1, 2 },
{ ahd_patch0_func, 259, 1, 1 },
{ ahd_patch1_func, 262, 1, 2 },
{ ahd_patch0_func, 263, 1, 1 },
{ ahd_patch2_func, 266, 1, 2 },
{ ahd_patch0_func, 267, 1, 1 },
{ ahd_patch1_func, 322, 1, 2 },
{ ahd_patch0_func, 323, 1, 1 },
{ ahd_patch2_func, 331, 1, 2 },
{ ahd_patch0_func, 332, 1, 1 },
{ ahd_patch2_func, 335, 1, 2 },
{ ahd_patch0_func, 336, 1, 1 },
{ ahd_patch1_func, 343, 1, 2 },
{ ahd_patch0_func, 344, 1, 1 },
{ ahd_patch8_func, 363, 1, 1 },
{ ahd_patch8_func, 366, 1, 1 },
{ ahd_patch8_func, 368, 1, 1 },
{ ahd_patch8_func, 380, 1, 1 },
{ ahd_patch1_func, 390, 1, 2 },
{ ahd_patch0_func, 391, 1, 1 },
{ ahd_patch1_func, 393, 1, 2 },
{ ahd_patch0_func, 394, 1, 1 },
{ ahd_patch1_func, 402, 1, 2 },
{ ahd_patch0_func, 403, 1, 1 },
{ ahd_patch2_func, 416, 1, 2 },
{ ahd_patch0_func, 417, 1, 1 },
{ ahd_patch9_func, 447, 1, 1 },
{ ahd_patch1_func, 454, 1, 2 },
{ ahd_patch0_func, 455, 1, 1 },
{ ahd_patch2_func, 467, 1, 2 },
{ ahd_patch0_func, 468, 1, 1 },
{ ahd_patch10_func, 473, 6, 2 },
{ ahd_patch0_func, 479, 1, 1 },
{ ahd_patch11_func, 502, 1, 1 },
{ ahd_patch12_func, 511, 1, 1 },
{ ahd_patch13_func, 512, 1, 2 },
{ ahd_patch0_func, 513, 1, 1 },
{ ahd_patch14_func, 518, 1, 1 },
{ ahd_patch13_func, 519, 1, 1 },
{ ahd_patch15_func, 532, 1, 2 },
{ ahd_patch0_func, 533, 1, 1 },
{ ahd_patch1_func, 555, 1, 2 },
{ ahd_patch0_func, 556, 1, 1 },
{ ahd_patch1_func, 559, 1, 2 },
{ ahd_patch0_func, 560, 1, 1 },
{ ahd_patch2_func, 565, 1, 2 },
{ ahd_patch0_func, 566, 1, 1 },
{ ahd_patch2_func, 570, 1, 2 },
{ ahd_patch0_func, 571, 1, 1 },
{ ahd_patch1_func, 572, 1, 2 },
{ ahd_patch0_func, 573, 1, 1 },
{ ahd_patch2_func, 584, 1, 2 },
{ ahd_patch0_func, 585, 1, 1 },
{ ahd_patch16_func, 589, 1, 1 },
{ ahd_patch17_func, 594, 1, 1 },
{ ahd_patch18_func, 595, 2, 1 },
{ ahd_patch17_func, 599, 1, 2 },
{ ahd_patch0_func, 600, 1, 1 },
{ ahd_patch2_func, 603, 1, 2 },
{ ahd_patch0_func, 604, 1, 1 },
{ ahd_patch2_func, 622, 1, 2 },
{ ahd_patch0_func, 623, 1, 1 },
{ ahd_patch19_func, 624, 14, 1 },
{ ahd_patch1_func, 642, 1, 2 },
{ ahd_patch0_func, 643, 1, 1 },
{ ahd_patch19_func, 644, 1, 1 },
{ ahd_patch1_func, 656, 1, 2 },
{ ahd_patch0_func, 657, 1, 1 },
{ ahd_patch1_func, 664, 1, 2 },
{ ahd_patch0_func, 665, 1, 1 },
{ ahd_patch16_func, 688, 1, 1 },
{ ahd_patch16_func, 726, 1, 1 },
{ ahd_patch1_func, 737, 1, 2 },
{ ahd_patch0_func, 738, 1, 1 },
{ ahd_patch1_func, 755, 1, 2 },
{ ahd_patch0_func, 756, 1, 1 },
{ ahd_patch1_func, 758, 1, 2 },
{ ahd_patch0_func, 759, 1, 1 },
{ ahd_patch1_func, 762, 1, 2 },
{ ahd_patch0_func, 763, 1, 1 },
{ ahd_patch20_func, 765, 1, 2 },
{ ahd_patch0_func, 766, 2, 1 },
{ ahd_patch21_func, 769, 4, 2 },
{ ahd_patch0_func, 773, 1, 1 },
{ ahd_patch21_func, 781, 11, 1 }
{ ahd_patch4_func, 107, 1, 1 },
{ ahd_patch2_func, 162, 6, 1 },
{ ahd_patch1_func, 168, 2, 1 },
{ ahd_patch5_func, 170, 1, 1 },
{ ahd_patch2_func, 179, 1, 2 },
{ ahd_patch0_func, 180, 1, 1 },
{ ahd_patch6_func, 181, 2, 2 },
{ ahd_patch0_func, 183, 6, 3 },
{ ahd_patch2_func, 186, 1, 2 },
{ ahd_patch0_func, 187, 1, 1 },
{ ahd_patch2_func, 190, 1, 2 },
{ ahd_patch0_func, 191, 1, 1 },
{ ahd_patch7_func, 193, 2, 1 },
{ ahd_patch5_func, 201, 16, 2 },
{ ahd_patch0_func, 217, 1, 1 },
{ ahd_patch8_func, 237, 2, 1 },
{ ahd_patch1_func, 241, 1, 2 },
{ ahd_patch0_func, 242, 1, 1 },
{ ahd_patch7_func, 245, 2, 1 },
{ ahd_patch1_func, 259, 1, 2 },
{ ahd_patch0_func, 260, 1, 1 },
{ ahd_patch1_func, 263, 1, 2 },
{ ahd_patch0_func, 264, 1, 1 },
{ ahd_patch2_func, 267, 1, 2 },
{ ahd_patch0_func, 268, 1, 1 },
{ ahd_patch1_func, 323, 1, 2 },
{ ahd_patch0_func, 324, 1, 1 },
{ ahd_patch2_func, 332, 1, 2 },
{ ahd_patch0_func, 333, 1, 1 },
{ ahd_patch2_func, 336, 1, 2 },
{ ahd_patch0_func, 337, 1, 1 },
{ ahd_patch1_func, 344, 1, 2 },
{ ahd_patch0_func, 345, 1, 1 },
{ ahd_patch9_func, 364, 1, 1 },
{ ahd_patch9_func, 367, 1, 1 },
{ ahd_patch9_func, 369, 1, 1 },
{ ahd_patch9_func, 381, 1, 1 },
{ ahd_patch1_func, 391, 1, 2 },
{ ahd_patch0_func, 392, 1, 1 },
{ ahd_patch1_func, 394, 1, 2 },
{ ahd_patch0_func, 395, 1, 1 },
{ ahd_patch1_func, 403, 1, 2 },
{ ahd_patch0_func, 404, 1, 1 },
{ ahd_patch2_func, 417, 1, 2 },
{ ahd_patch0_func, 418, 1, 1 },
{ ahd_patch10_func, 448, 1, 1 },
{ ahd_patch1_func, 455, 1, 2 },
{ ahd_patch0_func, 456, 1, 1 },
{ ahd_patch2_func, 468, 1, 2 },
{ ahd_patch0_func, 469, 1, 1 },
{ ahd_patch11_func, 474, 6, 2 },
{ ahd_patch0_func, 480, 1, 1 },
{ ahd_patch12_func, 503, 1, 1 },
{ ahd_patch13_func, 512, 1, 1 },
{ ahd_patch14_func, 513, 1, 2 },
{ ahd_patch0_func, 514, 1, 1 },
{ ahd_patch15_func, 519, 1, 1 },
{ ahd_patch14_func, 520, 1, 1 },
{ ahd_patch16_func, 533, 1, 2 },
{ ahd_patch0_func, 534, 1, 1 },
{ ahd_patch1_func, 556, 1, 2 },
{ ahd_patch0_func, 557, 1, 1 },
{ ahd_patch1_func, 560, 1, 2 },
{ ahd_patch0_func, 561, 1, 1 },
{ ahd_patch2_func, 566, 1, 2 },
{ ahd_patch0_func, 567, 1, 1 },
{ ahd_patch2_func, 571, 1, 2 },
{ ahd_patch0_func, 572, 1, 1 },
{ ahd_patch1_func, 573, 1, 2 },
{ ahd_patch0_func, 574, 1, 1 },
{ ahd_patch2_func, 585, 1, 2 },
{ ahd_patch0_func, 586, 1, 1 },
{ ahd_patch17_func, 590, 1, 1 },
{ ahd_patch18_func, 595, 1, 1 },
{ ahd_patch19_func, 596, 2, 1 },
{ ahd_patch18_func, 600, 1, 2 },
{ ahd_patch0_func, 601, 1, 1 },
{ ahd_patch2_func, 604, 1, 2 },
{ ahd_patch0_func, 605, 1, 1 },
{ ahd_patch2_func, 623, 1, 2 },
{ ahd_patch0_func, 624, 1, 1 },
{ ahd_patch20_func, 625, 14, 1 },
{ ahd_patch1_func, 643, 1, 2 },
{ ahd_patch0_func, 644, 1, 1 },
{ ahd_patch20_func, 645, 1, 1 },
{ ahd_patch1_func, 657, 1, 2 },
{ ahd_patch0_func, 658, 1, 1 },
{ ahd_patch1_func, 665, 1, 2 },
{ ahd_patch0_func, 666, 1, 1 },
{ ahd_patch17_func, 689, 1, 1 },
{ ahd_patch17_func, 727, 1, 1 },
{ ahd_patch1_func, 738, 1, 2 },
{ ahd_patch0_func, 739, 1, 1 },
{ ahd_patch1_func, 756, 1, 2 },
{ ahd_patch0_func, 757, 1, 1 },
{ ahd_patch1_func, 759, 1, 2 },
{ ahd_patch0_func, 760, 1, 1 },
{ ahd_patch1_func, 763, 1, 2 },
{ ahd_patch0_func, 764, 1, 1 },
{ ahd_patch21_func, 766, 1, 2 },
{ ahd_patch0_func, 767, 2, 1 },
{ ahd_patch22_func, 770, 4, 2 },
{ ahd_patch0_func, 774, 1, 1 },
{ ahd_patch22_func, 782, 11, 1 }
};
static struct cs {
...
...
@@ -1121,14 +1131,14 @@ static struct cs {
{ 13, 14 },
{ 29, 42 },
{ 56, 59 },
{ 101, 12
7
},
{ 12
8, 156
},
{ 15
8, 161
},
{ 1
69, 177
},
{ 20
0, 249
},
{ 68
8, 704
},
{ 70
4, 718
},
{ 72
8, 732
}
{ 101, 12
8
},
{ 12
9, 157
},
{ 15
9, 162
},
{ 1
70, 178
},
{ 20
1, 250
},
{ 68
9, 705
},
{ 70
5, 719
},
{ 72
9, 733
}
};
static const int num_critical_sections = sizeof(critical_sections)
...
...
drivers/scsi/aic7xxx/aic7xxx_osm.c
View file @
4548e111
/*
* Adaptec AIC7xxx device driver for Linux.
*
* $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic7xxx_osm.c#22
1
$
* $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic7xxx_osm.c#22
9
$
*
* Copyright (c) 1994 John Aycock
* The University of Calgary Department of Computer Science.
...
...
@@ -141,11 +141,6 @@
#include <linux/mm.h>
/* For fetching system memory size */
#include <linux/blk.h>
/* For block_size() */
#define __KERNEL_SYSCALLS__
#include <linux/unistd.h>
static
int
errno
;
/*
* Lock protecting manipulation of the ahc softc list.
*/
...
...
@@ -746,31 +741,11 @@ ahc_linux_map_seg(struct ahc_softc *ahc, struct scb *scb,
consumed
=
1
;
sg
->
addr
=
ahc_htole32
(
addr
&
0xFFFFFFFF
);
scb
->
platform_data
->
xfer_len
+=
len
;
if
(
sizeof
(
bus_addr_t
)
>
4
&&
(
ahc
->
flags
&
AHC_39BIT_ADDRESSING
)
!=
0
)
{
/*
* Due to DAC restrictions, we can't
* cross a 4GB boundary.
*/
if
((
addr
^
(
addr
+
len
-
1
))
&
~
0xFFFFFFFF
)
{
struct
ahc_dma_seg
*
next_sg
;
uint32_t
next_len
;
printf
(
"Crossed Seg
\n
"
);
if
((
scb
->
sg_count
+
2
)
>
AHC_NSEG
)
panic
(
"Too few segs for dma mapping. "
"Increase AHC_NSEG
\n
"
);
consumed
++
;
next_sg
=
sg
+
1
;
next_sg
->
addr
=
0
;
next_len
=
0x100000000
-
(
addr
&
0xFFFFFFFF
);
len
-=
next_len
;
next_len
|=
((
addr
>>
8
)
+
0x1000000
)
&
0x7F000000
;
next_sg
->
len
=
ahc_htole32
(
next_len
);
}
len
|=
(
addr
>>
8
)
&
0x7F000000
;
}
&&
(
ahc
->
flags
&
AHC_39BIT_ADDRESSING
)
!=
0
)
len
|=
(
addr
>>
8
)
&
AHC_SG_HIGH_ADDR_MASK
;
sg
->
len
=
ahc_htole32
(
len
);
return
(
consumed
);
}
...
...
@@ -1195,10 +1170,10 @@ ahc_linux_select_queue_depth(struct Scsi_Host *host, Scsi_Device *scsi_devs)
}
#endif
#if defined(__i386__)
/*
* Return the disk geometry for the given SCSI device.
*/
#if defined(__i386__)
static
int
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
ahc_linux_biosparam
(
struct
scsi_device
*
sdev
,
struct
block_device
*
bdev
,
...
...
@@ -1747,7 +1722,7 @@ ahc_linux_register_host(struct ahc_softc *ahc, Scsi_Host_Template *template)
struct
Scsi_Host
*
host
;
char
*
new_name
;
u_long
s
;
u_int
target
;
u_int
targ
_offs
et
;
template
->
name
=
ahc
->
description
;
host
=
scsi_register
(
template
,
sizeof
(
struct
ahc_softc
*
));
...
...
@@ -1802,14 +1777,19 @@ ahc_linux_register_host(struct ahc_softc *ahc, Scsi_Host_Template *template)
* negotiation will occur for the first command, and DV
* will comence should that first command be successful.
*/
for
(
target
=
0
;
target
<
host
->
max_id
*
(
host
->
max_channel
+
1
);
target
++
)
{
for
(
targ_offset
=
0
;
targ_offset
<
host
->
max_id
*
(
host
->
max_channel
+
1
);
targ_offset
++
)
{
u_int
channel
;
u_int
target
;
channel
=
0
;
target
=
targ_offset
;
if
(
target
>
7
&&
(
ahc
->
features
&
AHC_TWIN
)
!=
0
)
&&
(
ahc
->
features
&
AHC_TWIN
)
!=
0
)
{
channel
=
1
;
target
&=
0x7
;
}
/*
* Skip our own ID. Some Compaq/HP storage devices
* have enclosure management devices that respond to
...
...
@@ -2443,8 +2423,10 @@ ahc_linux_dv_target(struct ahc_softc *ahc, u_int target_offset)
ahc_unlock
(
ahc
,
&
s
);
return
;
}
ahc_compile_devinfo
(
&
devinfo
,
ahc
->
our_id
,
targ
->
target
,
/*lun*/
0
,
targ
->
channel
+
'A'
,
ROLE_INITIATOR
);
ahc_compile_devinfo
(
&
devinfo
,
targ
->
channel
==
0
?
ahc
->
our_id
:
ahc
->
our_id_b
,
targ
->
target
,
/*lun*/
0
,
targ
->
channel
+
'A'
,
ROLE_INITIATOR
);
#ifdef AHC_DEBUG
if
(
ahc_debug
&
AHC_SHOW_DV
)
{
ahc_print_devinfo
(
ahc
,
&
devinfo
);
...
...
@@ -3881,7 +3863,7 @@ ahc_linux_run_device_queue(struct ahc_softc *ahc, struct ahc_linux_device *dev)
/*
* SCSI controller interrupt handler.
*/
AIC_LINUX_IRQRETURN_T
irqreturn_t
ahc_linux_isr
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
{
struct
ahc_softc
*
ahc
;
...
...
@@ -3895,7 +3877,7 @@ ahc_linux_isr(int irq, void *dev_id, struct pt_regs * regs)
ahc_schedule_runq
(
ahc
);
ahc_linux_run_complete_queue
(
ahc
);
ahc_unlock
(
ahc
,
&
flags
);
AIC_LINUX_IRQRETURN
(
ours
);
return
IRQ_RETVAL
(
ours
);
}
void
...
...
drivers/scsi/aic7xxx/aic7xxx_osm.h
View file @
4548e111
...
...
@@ -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#14
2
$
* $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic7xxx_osm.h#14
6
$
*
*/
#ifndef _AIC7XXX_LINUX_H_
...
...
@@ -305,7 +305,7 @@ ahc_scb_timer_reset(struct scb *scb, u_int usec)
#define AHC_SCSI_HAS_HOST_LOCK 0
#endif
#define AIC7XXX_DRIVER_VERSION "6.2.3
3
"
#define AIC7XXX_DRIVER_VERSION "6.2.3
5
"
/**************************** Front End Queues ********************************/
/*
...
...
@@ -778,7 +778,7 @@ ahc_done_unlock(struct ahc_softc *ahc, unsigned long *flags)
}
static
__inline
void
ahc_list_lockinit
(
void
)
ahc_list_lockinit
()
{
spin_lock_init
(
&
ahc_list_spinlock
);
}
...
...
@@ -1165,7 +1165,7 @@ void ahc_platform_set_tags(struct ahc_softc *ahc,
int
ahc_platform_abort_scbs
(
struct
ahc_softc
*
ahc
,
int
target
,
char
channel
,
int
lun
,
u_int
tag
,
role_t
role
,
uint32_t
status
);
AIC_LINUX_IRQRETURN_T
irqreturn_t
ahc_linux_isr
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
);
void
ahc_platform_flushwork
(
struct
ahc_softc
*
ahc
);
int
ahc_softc_comp
(
struct
ahc_softc
*
,
struct
ahc_softc
*
);
...
...
drivers/scsi/aic7xxx/aic7xxx_osm_pci.c
View file @
4548e111
...
...
@@ -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/aic7xxx_osm_pci.c#4
4
$
* $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic7xxx_osm_pci.c#4
5
$
*/
#include "aic7xxx_osm.h"
...
...
@@ -110,6 +110,7 @@ static int
ahc_linux_pci_dev_probe
(
struct
pci_dev
*
pdev
,
const
struct
pci_device_id
*
ent
)
{
char
buf
[
80
];
bus_addr_t
mask_39bit
;
struct
ahc_softc
*
ahc
;
ahc_dev_softc_t
pci
;
struct
ahc_pci_identity
*
entry
;
...
...
@@ -160,12 +161,12 @@ ahc_linux_pci_dev_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
}
pci_set_master
(
pdev
);
mask_39bit
=
(
bus_addr_t
)(
0x7FFFFFFFFFULL
&
(
bus_addr_t
)
~
0
);
if
(
sizeof
(
bus_addr_t
)
>
4
&&
ahc_linux_get_memsize
()
>
0x80000000
&&
ahc_pci_set_dma_mask
(
pdev
,
0x7FFFFFFFFFULL
)
==
0
)
{
&&
ahc_pci_set_dma_mask
(
pdev
,
mask_39bit
)
==
0
)
{
ahc
->
flags
|=
AHC_39BIT_ADDRESSING
;
ahc
->
platform_data
->
hw_dma_mask
=
(
bus_addr_t
)(
0x7FFFFFFFFFULL
&
(
bus_addr_t
)
~
0
);
ahc
->
platform_data
->
hw_dma_mask
=
mask_39bit
;
}
else
{
ahc_pci_set_dma_mask
(
pdev
,
0xFFFFFFFF
);
ahc
->
platform_data
->
hw_dma_mask
=
0xFFFFFFFF
;
...
...
drivers/scsi/aic7xxx/aic7xxx_pci.c
View file @
4548e111
...
...
@@ -39,7 +39,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_pci.c#6
3
$
* $Id: //depot/aic7xxx/aic7xxx/aic7xxx_pci.c#6
5
$
*
* $FreeBSD$
*/
...
...
@@ -834,10 +834,10 @@ ahc_pci_config(struct ahc_softc *ahc, struct ahc_pci_identity *entry)
ahc_pci_write_config
(
ahc
->
dev_softc
,
DEVCONFIG
,
devconfig
,
/*bytes*/
4
);
/* Ensure busmastering is enabled */
command
=
ahc_pci_read_config
(
ahc
->
dev_softc
,
PCIR_COMMAND
,
/*bytes*/
1
);
command
=
ahc_pci_read_config
(
ahc
->
dev_softc
,
PCIR_COMMAND
,
/*bytes*/
2
);
command
|=
PCIM_CMD_BUSMASTEREN
;
ahc_pci_write_config
(
ahc
->
dev_softc
,
PCIR_COMMAND
,
command
,
/*bytes*/
1
);
ahc_pci_write_config
(
ahc
->
dev_softc
,
PCIR_COMMAND
,
command
,
/*bytes*/
2
);
/* On all PCI adapters, we allow SCB paging */
ahc
->
flags
|=
AHC_PAGESCBS
;
...
...
drivers/scsi/aic7xxx/aiclib.h
View file @
4548e111
...
...
@@ -60,12 +60,9 @@
/*
* Linux Interrupt Support.
*/
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
#define AIC_LINUX_IRQRETURN_T irqreturn_t
#define AIC_LINUX_IRQRETURN(ours) return (IRQ_RETVAL(ours))
#else
#define AIC_LINUX_IRQRETURN_T void
#define AIC_LINUX_IRQRETURN(ours) return
#ifndef IRQ_RETVAL
typedef
void
irqreturn_t
;
#define IRQ_RETVAL(x)
#endif
/*
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment