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
Kirill Smelkov
linux
Commits
1d022f90
Commit
1d022f90
authored
Feb 09, 2004
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge
bk://bk.arm.linux.org.uk/linux-2.6-rmk
into home.osdl.org:/home/torvalds/v2.5/linux
parents
f3016267
89d22544
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
201 additions
and
201 deletions
+201
-201
drivers/net/arm/ether1.c
drivers/net/arm/ether1.c
+56
-56
drivers/scsi/arm/acornscsi.c
drivers/scsi/arm/acornscsi.c
+88
-88
drivers/scsi/arm/acornscsi.h
drivers/scsi/arm/acornscsi.h
+42
-42
drivers/scsi/arm/arxescsi.c
drivers/scsi/arm/arxescsi.c
+3
-3
drivers/scsi/arm/cumana_2.c
drivers/scsi/arm/cumana_2.c
+4
-4
drivers/scsi/arm/eesox.c
drivers/scsi/arm/eesox.c
+4
-4
drivers/scsi/arm/powertec.c
drivers/scsi/arm/powertec.c
+4
-4
No files found.
drivers/net/arm/ether1.c
View file @
1d022f90
...
...
@@ -149,34 +149,34 @@ ether1_writebuffer (struct net_device *dev, void *data, unsigned int start, unsi
length
-=
thislen
;
__asm__
__volatile__
(
"subs %3, %3, #2
bmi 2f
1: ldr %0, [%1], #2
mov %0, %0, lsl #16
orr %0, %0, %0, lsr #16
str %0, [%2], #4
subs %3, %3, #2
bmi 2f
ldr %0, [%1], #2
mov %0, %0, lsl #16
orr %0, %0, %0, lsr #16
str %0, [%2], #4
subs %3, %3, #2
bmi 2f
ldr %0, [%1], #2
mov %0, %0, lsl #16
orr %0, %0, %0, lsr #16
str %0, [%2], #4
subs %3, %3, #2
bmi 2f
ldr %0, [%1], #2
mov %0, %0, lsl #16
orr %0, %0, %0, lsr #16
str %0, [%2], #4
subs %3, %3, #2
bpl 1b
2: adds %3, %3, #1
ldreqb %0, [%1]
"subs %3, %3, #2
\n
\
bmi 2f
\n
\
1: ldr %0, [%1], #2
\n
\
mov %0, %0, lsl #16
\n
\
orr %0, %0, %0, lsr #16
\n
\
str %0, [%2], #4
\n
\
subs %3, %3, #2
\n
\
bmi 2f
\n
\
ldr %0, [%1], #2
\n
\
mov %0, %0, lsl #16
\n
\
orr %0, %0, %0, lsr #16
\n
\
str %0, [%2], #4
\n
\
subs %3, %3, #2
\n
\
bmi 2f
\n
\
ldr %0, [%1], #2
\n
\
mov %0, %0, lsl #16
\n
\
orr %0, %0, %0, lsr #16
\n
\
str %0, [%2], #4
\n
\
subs %3, %3, #2
\n
\
bmi 2f
\n
\
ldr %0, [%1], #2
\n
\
mov %0, %0, lsl #16
\n
\
orr %0, %0, %0, lsr #16
\n
\
str %0, [%2], #4
\n
\
subs %3, %3, #2
\n
\
bpl 1b
\n
\
2: adds %3, %3, #1
\n
\
ldreqb %0, [%1]
\n
\
streqb %0, [%2]"
:
"=&r"
(
used
),
"=&r"
(
data
)
:
"r"
(
addr
),
"r"
(
thislen
),
"1"
(
data
));
...
...
@@ -211,34 +211,34 @@ ether1_readbuffer (struct net_device *dev, void *data, unsigned int start, unsig
length
-=
thislen
;
__asm__
__volatile__
(
"subs %3, %3, #2
bmi 2f
1: ldr %0, [%2], #4
strb %0, [%1], #1
mov %0, %0, lsr #8
strb %0, [%1], #1
subs %3, %3, #2
bmi 2f
ldr %0, [%2], #4
strb %0, [%1], #1
mov %0, %0, lsr #8
strb %0, [%1], #1
subs %3, %3, #2
bmi 2f
ldr %0, [%2], #4
strb %0, [%1], #1
mov %0, %0, lsr #8
strb %0, [%1], #1
subs %3, %3, #2
bmi 2f
ldr %0, [%2], #4
strb %0, [%1], #1
mov %0, %0, lsr #8
strb %0, [%1], #1
subs %3, %3, #2
bpl 1b
2: adds %3, %3, #1
ldreqb %0, [%2]
"subs %3, %3, #2
\n
\
bmi 2f
\n
\
1: ldr %0, [%2], #4
\n
\
strb %0, [%1], #1
\n
\
mov %0, %0, lsr #8
\n
\
strb %0, [%1], #1
\n
\
subs %3, %3, #2
\n
\
bmi 2f
\n
\
ldr %0, [%2], #4
\n
\
strb %0, [%1], #1
\n
\
mov %0, %0, lsr #8
\n
\
strb %0, [%1], #1
\n
\
subs %3, %3, #2
\n
\
bmi 2f
\n
\
ldr %0, [%2], #4
\n
\
strb %0, [%1], #1
\n
\
mov %0, %0, lsr #8
\n
\
strb %0, [%1], #1
\n
\
subs %3, %3, #2
\n
\
bmi 2f
\n
\
ldr %0, [%2], #4
\n
\
strb %0, [%1], #1
\n
\
mov %0, %0, lsr #8
\n
\
strb %0, [%1], #1
\n
\
subs %3, %3, #2
\n
\
bpl 1b
\n
\
2: adds %3, %3, #1
\n
\
ldreqb %0, [%2]
\n
\
streqb %0, [%1]"
:
"=&r"
(
used
),
"=&r"
(
data
)
:
"r"
(
addr
),
"r"
(
thislen
),
"1"
(
data
));
...
...
drivers/scsi/arm/acornscsi.c
View file @
1d022f90
...
...
@@ -216,7 +216,7 @@ sbic_arm_write(unsigned int io_port, int reg, int value)
static
inline
int
sbic_arm_read
(
unsigned
int
io_port
,
int
reg
)
{
if
(
reg
==
ASR
)
if
(
reg
==
SBIC_
ASR
)
return
__raw_readl
(
io_port
)
&
255
;
__raw_writeb
(
reg
,
io_port
);
return
__raw_readl
(
io_port
+
4
)
&
255
;
...
...
@@ -238,9 +238,9 @@ int sbic_arm_read(unsigned int io_port, int reg)
static
inline
unsigned
int
dmac_address
(
unsigned
int
io_port
)
{
return
dmac_read
(
io_port
,
TXADRHI
)
<<
16
|
dmac_read
(
io_port
,
TXADRMD
)
<<
8
|
dmac_read
(
io_port
,
TXADRLO
);
return
dmac_read
(
io_port
,
DMAC_
TXADRHI
)
<<
16
|
dmac_read
(
io_port
,
DMAC_
TXADRMD
)
<<
8
|
dmac_read
(
io_port
,
DMAC_
TXADRLO
);
}
static
...
...
@@ -248,15 +248,15 @@ void acornscsi_dumpdma(AS_Host *host, char *where)
{
unsigned
int
mode
,
addr
,
len
;
mode
=
dmac_read
(
host
->
dma
.
io_port
,
MODECON
);
mode
=
dmac_read
(
host
->
dma
.
io_port
,
DMAC_
MODECON
);
addr
=
dmac_address
(
host
->
dma
.
io_port
);
len
=
dmac_read
(
host
->
dma
.
io_port
,
TXCNTHI
)
<<
8
|
dmac_read
(
host
->
dma
.
io_port
,
TXCNTLO
);
len
=
dmac_read
(
host
->
dma
.
io_port
,
DMAC_
TXCNTHI
)
<<
8
|
dmac_read
(
host
->
dma
.
io_port
,
DMAC_
TXCNTLO
);
printk
(
"scsi%d: %s: DMAC %02x @%06x+%04x msk %02x, "
,
host
->
host
->
host_no
,
where
,
mode
,
addr
,
(
len
+
1
)
&
0xffff
,
dmac_read
(
host
->
dma
.
io_port
,
MASKREG
));
dmac_read
(
host
->
dma
.
io_port
,
DMAC_
MASKREG
));
printk
(
"DMA @%06x, "
,
host
->
dma
.
start_addr
);
printk
(
"BH @%p +%04x, "
,
host
->
scsi
.
SCp
.
ptr
,
...
...
@@ -272,7 +272,7 @@ unsigned long acornscsi_sbic_xfcount(AS_Host *host)
{
unsigned
long
length
;
length
=
sbic_arm_read
(
host
->
scsi
.
io_port
,
TRANSCNTH
)
<<
16
;
length
=
sbic_arm_read
(
host
->
scsi
.
io_port
,
SBIC_
TRANSCNTH
)
<<
16
;
length
|=
sbic_arm_readnext
(
host
->
scsi
.
io_port
)
<<
8
;
length
|=
sbic_arm_readnext
(
host
->
scsi
.
io_port
);
...
...
@@ -285,7 +285,7 @@ acornscsi_sbic_wait(AS_Host *host, int stat_mask, int stat, int timeout, char *m
int
asr
;
do
{
asr
=
sbic_arm_read
(
host
->
scsi
.
io_port
,
ASR
);
asr
=
sbic_arm_read
(
host
->
scsi
.
io_port
,
SBIC_
ASR
);
if
((
asr
&
stat_mask
)
==
stat
)
return
0
;
...
...
@@ -304,7 +304,7 @@ int acornscsi_sbic_issuecmd(AS_Host *host, int command)
if
(
acornscsi_sbic_wait
(
host
,
ASR_CIP
,
0
,
1000
,
"issuing command"
))
return
-
1
;
sbic_arm_write
(
host
->
scsi
.
io_port
,
CMND
,
command
);
sbic_arm_write
(
host
->
scsi
.
io_port
,
SBIC_
CMND
,
command
);
return
0
;
}
...
...
@@ -353,12 +353,12 @@ void acornscsi_resetcard(AS_Host *host)
printk
(
"scsi%d: timeout while resetting card
\n
"
,
host
->
host
->
host_no
);
sbic_arm_read
(
host
->
scsi
.
io_port
,
ASR
);
sbic_arm_read
(
host
->
scsi
.
io_port
,
SSR
);
sbic_arm_read
(
host
->
scsi
.
io_port
,
SBIC_
ASR
);
sbic_arm_read
(
host
->
scsi
.
io_port
,
S
BIC_S
SR
);
/* setup sbic - WD33C93A */
sbic_arm_write
(
host
->
scsi
.
io_port
,
OWNID
,
OWNID_EAF
|
host
->
host
->
this_id
);
sbic_arm_write
(
host
->
scsi
.
io_port
,
CMND
,
CMND_RESET
);
sbic_arm_write
(
host
->
scsi
.
io_port
,
SBIC_
OWNID
,
OWNID_EAF
|
host
->
host
->
this_id
);
sbic_arm_write
(
host
->
scsi
.
io_port
,
SBIC_
CMND
,
CMND_RESET
);
/*
* Command should cause a reset interrupt
...
...
@@ -374,26 +374,26 @@ void acornscsi_resetcard(AS_Host *host)
printk
(
"scsi%d: timeout while resetting card
\n
"
,
host
->
host
->
host_no
);
sbic_arm_read
(
host
->
scsi
.
io_port
,
ASR
);
if
(
sbic_arm_read
(
host
->
scsi
.
io_port
,
SSR
)
!=
0x01
)
sbic_arm_read
(
host
->
scsi
.
io_port
,
SBIC_
ASR
);
if
(
sbic_arm_read
(
host
->
scsi
.
io_port
,
S
BIC_S
SR
)
!=
0x01
)
printk
(
KERN_CRIT
"scsi%d: WD33C93A didn't give enhanced reset interrupt
\n
"
,
host
->
host
->
host_no
);
sbic_arm_write
(
host
->
scsi
.
io_port
,
CTRL
,
INIT_SBICDMA
|
CTRL_IDI
);
sbic_arm_write
(
host
->
scsi
.
io_port
,
TIMEOUT
,
TIMEOUT_TIME
);
sbic_arm_write
(
host
->
scsi
.
io_port
,
SYNCHTRANSFER
,
SYNCHTRANSFER_2DBA
);
sbic_arm_write
(
host
->
scsi
.
io_port
,
SOURCEID
,
SOURCEID_ER
|
SOURCEID_DSP
);
sbic_arm_write
(
host
->
scsi
.
io_port
,
SBIC_
CTRL
,
INIT_SBICDMA
|
CTRL_IDI
);
sbic_arm_write
(
host
->
scsi
.
io_port
,
SBIC_
TIMEOUT
,
TIMEOUT_TIME
);
sbic_arm_write
(
host
->
scsi
.
io_port
,
S
BIC_S
YNCHTRANSFER
,
SYNCHTRANSFER_2DBA
);
sbic_arm_write
(
host
->
scsi
.
io_port
,
S
BIC_S
OURCEID
,
SOURCEID_ER
|
SOURCEID_DSP
);
host
->
card
.
page_reg
=
0x40
;
outb
(
host
->
card
.
page_reg
,
host
->
card
.
io_page
);
/* setup dmac - uPC71071 */
dmac_write
(
host
->
dma
.
io_port
,
INIT
,
0
);
dmac_write
(
host
->
dma
.
io_port
,
DMAC_
INIT
,
0
);
#ifdef USE_DMAC
dmac_write
(
host
->
dma
.
io_port
,
INIT
,
INIT_8BIT
);
dmac_write
(
host
->
dma
.
io_port
,
CHANNEL
,
CHANNEL_0
);
dmac_write
(
host
->
dma
.
io_port
,
DEVCON0
,
INIT_DEVCON0
);
dmac_write
(
host
->
dma
.
io_port
,
DEVCON1
,
INIT_DEVCON1
);
dmac_write
(
host
->
dma
.
io_port
,
DMAC_
INIT
,
INIT_8BIT
);
dmac_write
(
host
->
dma
.
io_port
,
DMAC_
CHANNEL
,
CHANNEL_0
);
dmac_write
(
host
->
dma
.
io_port
,
D
MAC_D
EVCON0
,
INIT_DEVCON0
);
dmac_write
(
host
->
dma
.
io_port
,
D
MAC_D
EVCON1
,
INIT_DEVCON1
);
#endif
host
->
SCpnt
=
NULL
;
...
...
@@ -741,9 +741,9 @@ intr_ret_t acornscsi_kick(AS_Host *host)
* If we have an interrupt pending, then we may have been reselected.
* In this case, we don't want to write to the registers
*/
if
(
!
(
sbic_arm_read
(
host
->
scsi
.
io_port
,
ASR
)
&
(
ASR_INT
|
ASR_BSY
|
ASR_CIP
)))
{
sbic_arm_write
(
host
->
scsi
.
io_port
,
DESTID
,
SCpnt
->
device
->
id
);
sbic_arm_write
(
host
->
scsi
.
io_port
,
CMND
,
CMND_SELWITHATN
);
if
(
!
(
sbic_arm_read
(
host
->
scsi
.
io_port
,
SBIC_
ASR
)
&
(
ASR_INT
|
ASR_BSY
|
ASR_CIP
)))
{
sbic_arm_write
(
host
->
scsi
.
io_port
,
SBIC_
DESTID
,
SCpnt
->
device
->
id
);
sbic_arm_write
(
host
->
scsi
.
io_port
,
SBIC_
CMND
,
CMND_SELWITHATN
);
}
/*
...
...
@@ -807,7 +807,7 @@ void acornscsi_done(AS_Host *host, Scsi_Cmnd **SCpntp, unsigned int result)
Scsi_Cmnd
*
SCpnt
=
*
SCpntp
;
/* clean up */
sbic_arm_write
(
host
->
scsi
.
io_port
,
SOURCEID
,
SOURCEID_ER
|
SOURCEID_DSP
);
sbic_arm_write
(
host
->
scsi
.
io_port
,
S
BIC_S
OURCEID
,
SOURCEID_ER
|
SOURCEID_DSP
);
host
->
stats
.
fins
+=
1
;
...
...
@@ -1008,7 +1008,7 @@ void acornscsi_data_write(AS_Host *host, char *ptr,
static
inline
void
acornscsi_dma_stop
(
AS_Host
*
host
)
{
dmac_write
(
host
->
dma
.
io_port
,
MASKREG
,
MASK_ON
);
dmac_write
(
host
->
dma
.
io_port
,
DMAC_
MASKREG
,
MASK_ON
);
dmac_clearintr
(
host
->
dma
.
io_intr_clear
);
#if (DEBUG & DEBUG_DMA)
...
...
@@ -1031,7 +1031,7 @@ void acornscsi_dma_setup(AS_Host *host, dmadir_t direction)
host
->
dma
.
direction
=
direction
;
dmac_write
(
host
->
dma
.
io_port
,
MASKREG
,
MASK_ON
);
dmac_write
(
host
->
dma
.
io_port
,
DMAC_
MASKREG
,
MASK_ON
);
if
(
direction
==
DMA_OUT
)
{
#if (DEBUG & DEBUG_NO_WRITE)
...
...
@@ -1062,13 +1062,13 @@ void acornscsi_dma_setup(AS_Host *host, dmadir_t direction)
length
);
length
-=
1
;
dmac_write
(
host
->
dma
.
io_port
,
TXCNTLO
,
length
);
dmac_write
(
host
->
dma
.
io_port
,
TXCNTHI
,
length
>>
8
);
dmac_write
(
host
->
dma
.
io_port
,
TXADRLO
,
address
);
dmac_write
(
host
->
dma
.
io_port
,
TXADRMD
,
address
>>
8
);
dmac_write
(
host
->
dma
.
io_port
,
TXADRHI
,
0
);
dmac_write
(
host
->
dma
.
io_port
,
MODECON
,
mode
);
dmac_write
(
host
->
dma
.
io_port
,
MASKREG
,
MASK_OFF
);
dmac_write
(
host
->
dma
.
io_port
,
DMAC_
TXCNTLO
,
length
);
dmac_write
(
host
->
dma
.
io_port
,
DMAC_
TXCNTHI
,
length
>>
8
);
dmac_write
(
host
->
dma
.
io_port
,
DMAC_
TXADRLO
,
address
);
dmac_write
(
host
->
dma
.
io_port
,
DMAC_
TXADRMD
,
address
>>
8
);
dmac_write
(
host
->
dma
.
io_port
,
DMAC_
TXADRHI
,
0
);
dmac_write
(
host
->
dma
.
io_port
,
DMAC_
MODECON
,
mode
);
dmac_write
(
host
->
dma
.
io_port
,
DMAC_
MASKREG
,
MASK_OFF
);
#if (DEBUG & DEBUG_DMA)
DBG
(
host
->
SCpnt
,
acornscsi_dumpdma
(
host
,
"strt"
));
...
...
@@ -1088,7 +1088,7 @@ void acornscsi_dma_setup(AS_Host *host, dmadir_t direction)
static
void
acornscsi_dma_cleanup
(
AS_Host
*
host
)
{
dmac_write
(
host
->
dma
.
io_port
,
MASKREG
,
MASK_ON
);
dmac_write
(
host
->
dma
.
io_port
,
DMAC_
MASKREG
,
MASK_ON
);
dmac_clearintr
(
host
->
dma
.
io_intr_clear
);
/*
...
...
@@ -1152,7 +1152,7 @@ void acornscsi_dma_intr(AS_Host *host)
DBG
(
host
->
SCpnt
,
acornscsi_dumpdma
(
host
,
"inti"
));
#endif
dmac_write
(
host
->
dma
.
io_port
,
MASKREG
,
MASK_ON
);
dmac_write
(
host
->
dma
.
io_port
,
DMAC_
MASKREG
,
MASK_ON
);
dmac_clearintr
(
host
->
dma
.
io_intr_clear
);
/*
...
...
@@ -1190,12 +1190,12 @@ void acornscsi_dma_intr(AS_Host *host)
length
);
length
-=
1
;
dmac_write
(
host
->
dma
.
io_port
,
TXCNTLO
,
length
);
dmac_write
(
host
->
dma
.
io_port
,
TXCNTHI
,
length
>>
8
);
dmac_write
(
host
->
dma
.
io_port
,
TXADRLO
,
address
);
dmac_write
(
host
->
dma
.
io_port
,
TXADRMD
,
address
>>
8
);
dmac_write
(
host
->
dma
.
io_port
,
TXADRHI
,
0
);
dmac_write
(
host
->
dma
.
io_port
,
MASKREG
,
MASK_OFF
);
dmac_write
(
host
->
dma
.
io_port
,
DMAC_
TXCNTLO
,
length
);
dmac_write
(
host
->
dma
.
io_port
,
DMAC_
TXCNTHI
,
length
>>
8
);
dmac_write
(
host
->
dma
.
io_port
,
DMAC_
TXADRLO
,
address
);
dmac_write
(
host
->
dma
.
io_port
,
DMAC_
TXADRMD
,
address
>>
8
);
dmac_write
(
host
->
dma
.
io_port
,
DMAC_
TXADRHI
,
0
);
dmac_write
(
host
->
dma
.
io_port
,
DMAC_
MASKREG
,
MASK_OFF
);
#if (DEBUG & DEBUG_DMA)
DBG
(
host
->
SCpnt
,
acornscsi_dumpdma
(
host
,
"into"
));
...
...
@@ -1209,15 +1209,15 @@ void acornscsi_dma_intr(AS_Host *host)
* attention condition. We continue giving one byte until
* the device recognises the attention.
*/
if (dmac_read(host->dma.io_port, STATUS) & STATUS_RQ0) {
if (dmac_read(host->dma.io_port,
DMAC_
STATUS) & STATUS_RQ0) {
acornscsi_abortcmd(host, host->SCpnt->tag);
dmac_write(host->dma.io_port, TXCNTLO, 0);
dmac_write(host->dma.io_port, TXCNTHI, 0);
dmac_write(host->dma.io_port, TXADRLO, 0);
dmac_write(host->dma.io_port, TXADRMD, 0);
dmac_write(host->dma.io_port, TXADRHI, 0);
dmac_write(host->dma.io_port, MASKREG, MASK_OFF);
dmac_write(host->dma.io_port,
DMAC_
TXCNTLO, 0);
dmac_write(host->dma.io_port,
DMAC_
TXCNTHI, 0);
dmac_write(host->dma.io_port,
DMAC_
TXADRLO, 0);
dmac_write(host->dma.io_port,
DMAC_
TXADRMD, 0);
dmac_write(host->dma.io_port,
DMAC_
TXADRHI, 0);
dmac_write(host->dma.io_port,
DMAC_
MASKREG, MASK_OFF);
}
#endif
}
...
...
@@ -1271,9 +1271,9 @@ void acornscsi_dma_adjust(AS_Host *host)
host
->
dma
.
xfer_setup
=
0
;
else
{
transferred
+=
host
->
dma
.
start_addr
;
dmac_write
(
host
->
dma
.
io_port
,
TXADRLO
,
transferred
);
dmac_write
(
host
->
dma
.
io_port
,
TXADRMD
,
transferred
>>
8
);
dmac_write
(
host
->
dma
.
io_port
,
TXADRHI
,
transferred
>>
16
);
dmac_write
(
host
->
dma
.
io_port
,
DMAC_
TXADRLO
,
transferred
);
dmac_write
(
host
->
dma
.
io_port
,
DMAC_
TXADRMD
,
transferred
>>
8
);
dmac_write
(
host
->
dma
.
io_port
,
DMAC_
TXADRHI
,
transferred
>>
16
);
#if (DEBUG & (DEBUG_DMA|DEBUG_WRITE))
DBG
(
host
->
SCpnt
,
acornscsi_dumpdma
(
host
,
"adjo"
));
#endif
...
...
@@ -1292,12 +1292,12 @@ acornscsi_write_pio(AS_Host *host, char *bytes, int *ptr, int len, unsigned int
int
my_ptr
=
*
ptr
;
while
(
my_ptr
<
len
)
{
asr
=
sbic_arm_read
(
host
->
scsi
.
io_port
,
ASR
);
asr
=
sbic_arm_read
(
host
->
scsi
.
io_port
,
SBIC_
ASR
);
if
(
asr
&
ASR_DBR
)
{
timeout
=
max_timeout
;
sbic_arm_write
(
host
->
scsi
.
io_port
,
DATA
,
bytes
[
my_ptr
++
]);
sbic_arm_write
(
host
->
scsi
.
io_port
,
SBIC_
DATA
,
bytes
[
my_ptr
++
]);
}
else
if
(
asr
&
ASR_INT
)
break
;
else
if
(
--
timeout
==
0
)
...
...
@@ -1320,7 +1320,7 @@ acornscsi_sendcommand(AS_Host *host)
{
Scsi_Cmnd
*
SCpnt
=
host
->
SCpnt
;
sbic_arm_write
(
host
->
scsi
.
io_port
,
TRANSCNTH
,
0
);
sbic_arm_write
(
host
->
scsi
.
io_port
,
SBIC_
TRANSCNTH
,
0
);
sbic_arm_writenext
(
host
->
scsi
.
io_port
,
0
);
sbic_arm_writenext
(
host
->
scsi
.
io_port
,
SCpnt
->
cmd_len
-
host
->
scsi
.
SCp
.
sent_command
);
...
...
@@ -1351,7 +1351,7 @@ void acornscsi_sendmessage(AS_Host *host)
acornscsi_sbic_wait
(
host
,
ASR_DBR
,
ASR_DBR
,
1000
,
"sending message 1"
);
sbic_arm_write
(
host
->
scsi
.
io_port
,
DATA
,
NOP
);
sbic_arm_write
(
host
->
scsi
.
io_port
,
SBIC_
DATA
,
NOP
);
host
->
scsi
.
last_message
=
NOP
;
#if (DEBUG & DEBUG_MESSAGES)
...
...
@@ -1365,7 +1365,7 @@ void acornscsi_sendmessage(AS_Host *host)
acornscsi_sbic_wait
(
host
,
ASR_DBR
,
ASR_DBR
,
1000
,
"sending message 2"
);
sbic_arm_write
(
host
->
scsi
.
io_port
,
DATA
,
msg
->
msg
[
0
]);
sbic_arm_write
(
host
->
scsi
.
io_port
,
SBIC_
DATA
,
msg
->
msg
[
0
]);
host
->
scsi
.
last_message
=
msg
->
msg
[
0
];
#if (DEBUG & DEBUG_MESSAGES)
...
...
@@ -1382,7 +1382,7 @@ void acornscsi_sendmessage(AS_Host *host)
* initiator. This provides an interlock so that the
* initiator can determine which message byte is rejected.
*/
sbic_arm_write
(
host
->
scsi
.
io_port
,
TRANSCNTH
,
0
);
sbic_arm_write
(
host
->
scsi
.
io_port
,
SBIC_
TRANSCNTH
,
0
);
sbic_arm_writenext
(
host
->
scsi
.
io_port
,
0
);
sbic_arm_writenext
(
host
->
scsi
.
io_port
,
message_length
);
acornscsi_sbic_issuecmd
(
host
,
CMND_XFERINFO
);
...
...
@@ -1421,7 +1421,7 @@ void acornscsi_readstatusbyte(AS_Host *host)
{
acornscsi_sbic_issuecmd
(
host
,
CMND_XFERINFO
|
CMND_SBT
);
acornscsi_sbic_wait
(
host
,
ASR_DBR
,
ASR_DBR
,
1000
,
"reading status byte"
);
host
->
scsi
.
SCp
.
Status
=
sbic_arm_read
(
host
->
scsi
.
io_port
,
DATA
);
host
->
scsi
.
SCp
.
Status
=
sbic_arm_read
(
host
->
scsi
.
io_port
,
SBIC_
DATA
);
}
/*
...
...
@@ -1438,12 +1438,12 @@ unsigned char acornscsi_readmessagebyte(AS_Host *host)
acornscsi_sbic_wait
(
host
,
ASR_DBR
,
ASR_DBR
,
1000
,
"for message byte"
);
message
=
sbic_arm_read
(
host
->
scsi
.
io_port
,
DATA
);
message
=
sbic_arm_read
(
host
->
scsi
.
io_port
,
SBIC_
DATA
);
/* wait for MSGIN-XFER-PAUSED */
acornscsi_sbic_wait
(
host
,
ASR_INT
,
ASR_INT
,
1000
,
"for interrupt after message byte"
);
sbic_arm_read
(
host
->
scsi
.
io_port
,
SSR
);
sbic_arm_read
(
host
->
scsi
.
io_port
,
S
BIC_S
SR
);
return
message
;
}
...
...
@@ -1480,7 +1480,7 @@ void acornscsi_message(AS_Host *host)
/* wait for next msg-in */
acornscsi_sbic_wait
(
host
,
ASR_INT
,
ASR_INT
,
1000
,
"for interrupt after negate ack"
);
sbic_arm_read
(
host
->
scsi
.
io_port
,
SSR
);
sbic_arm_read
(
host
->
scsi
.
io_port
,
S
BIC_S
SR
);
}
}
while
(
msgidx
<
msglen
);
...
...
@@ -1602,7 +1602,7 @@ void acornscsi_message(AS_Host *host)
host
->
host
->
host_no
,
acornscsi_target
(
host
));
host
->
device
[
host
->
SCpnt
->
device
->
id
].
sync_xfer
=
SYNCHTRANSFER_2DBA
;
host
->
device
[
host
->
SCpnt
->
device
->
id
].
sync_state
=
SYNC_ASYNCHRONOUS
;
sbic_arm_write
(
host
->
scsi
.
io_port
,
SYNCHTRANSFER
,
host
->
device
[
host
->
SCpnt
->
device
->
id
].
sync_xfer
);
sbic_arm_write
(
host
->
scsi
.
io_port
,
S
BIC_S
YNCHTRANSFER
,
host
->
device
[
host
->
SCpnt
->
device
->
id
].
sync_xfer
);
break
;
default:
...
...
@@ -1652,7 +1652,7 @@ void acornscsi_message(AS_Host *host)
host
->
device
[
host
->
SCpnt
->
device
->
id
].
sync_xfer
=
calc_sync_xfer
(
period
*
4
,
length
);
}
sbic_arm_write
(
host
->
scsi
.
io_port
,
SYNCHTRANSFER
,
host
->
device
[
host
->
SCpnt
->
device
->
id
].
sync_xfer
);
sbic_arm_write
(
host
->
scsi
.
io_port
,
S
BIC_S
YNCHTRANSFER
,
host
->
device
[
host
->
SCpnt
->
device
->
id
].
sync_xfer
);
break
;
#else
/* We do not accept synchronous transfers. Respond with a
...
...
@@ -1792,7 +1792,7 @@ int acornscsi_starttransfer(AS_Host *host)
residual
=
host
->
SCpnt
->
request_bufflen
-
host
->
scsi
.
SCp
.
scsi_xferred
;
sbic_arm_write
(
host
->
scsi
.
io_port
,
SYNCHTRANSFER
,
host
->
device
[
host
->
SCpnt
->
device
->
id
].
sync_xfer
);
sbic_arm_write
(
host
->
scsi
.
io_port
,
S
BIC_S
YNCHTRANSFER
,
host
->
device
[
host
->
SCpnt
->
device
->
id
].
sync_xfer
);
sbic_arm_writenext
(
host
->
scsi
.
io_port
,
residual
>>
16
);
sbic_arm_writenext
(
host
->
scsi
.
io_port
,
residual
>>
8
);
sbic_arm_writenext
(
host
->
scsi
.
io_port
,
residual
);
...
...
@@ -1816,7 +1816,7 @@ int acornscsi_reconnect(AS_Host *host)
{
unsigned
int
target
,
lun
,
ok
=
0
;
target
=
sbic_arm_read
(
host
->
scsi
.
io_port
,
SOURCEID
);
target
=
sbic_arm_read
(
host
->
scsi
.
io_port
,
S
BIC_S
OURCEID
);
if
(
!
(
target
&
8
))
printk
(
KERN_ERR
"scsi%d: invalid source id after reselection "
...
...
@@ -1832,7 +1832,7 @@ int acornscsi_reconnect(AS_Host *host)
host
->
SCpnt
=
NULL
;
}
lun
=
sbic_arm_read
(
host
->
scsi
.
io_port
,
DATA
)
&
7
;
lun
=
sbic_arm_read
(
host
->
scsi
.
io_port
,
SBIC_
DATA
)
&
7
;
host
->
scsi
.
reconnected
.
target
=
target
;
host
->
scsi
.
reconnected
.
lun
=
lun
;
...
...
@@ -1952,7 +1952,7 @@ static
void
acornscsi_abortcmd
(
AS_Host
*
host
,
unsigned
char
tag
)
{
host
->
scsi
.
phase
=
PHASE_ABORTED
;
sbic_arm_write
(
host
->
scsi
.
io_port
,
CMND
,
CMND_ASSERTATN
);
sbic_arm_write
(
host
->
scsi
.
io_port
,
SBIC_
CMND
,
CMND_ASSERTATN
);
msgqueue_flush
(
&
host
->
scsi
.
msgs
);
#ifdef CONFIG_SCSI_ACORNSCSI_TAGGED_QUEUE
...
...
@@ -1979,11 +1979,11 @@ intr_ret_t acornscsi_sbicintr(AS_Host *host, int in_irq)
{
unsigned
int
asr
,
ssr
;
asr
=
sbic_arm_read
(
host
->
scsi
.
io_port
,
ASR
);
asr
=
sbic_arm_read
(
host
->
scsi
.
io_port
,
SBIC_
ASR
);
if
(
!
(
asr
&
ASR_INT
))
return
INTR_IDLE
;
ssr
=
sbic_arm_read
(
host
->
scsi
.
io_port
,
SSR
);
ssr
=
sbic_arm_read
(
host
->
scsi
.
io_port
,
S
BIC_S
SR
);
#if (DEBUG & DEBUG_PHASES)
print_sbic_status
(
asr
,
ssr
,
host
->
scsi
.
phase
);
...
...
@@ -1999,15 +1999,15 @@ intr_ret_t acornscsi_sbicintr(AS_Host *host, int in_irq)
printk
(
KERN_ERR
"scsi%d: reset in standard mode but wanted advanced mode.
\n
"
,
host
->
host
->
host_no
);
/* setup sbic - WD33C93A */
sbic_arm_write
(
host
->
scsi
.
io_port
,
OWNID
,
OWNID_EAF
|
host
->
host
->
this_id
);
sbic_arm_write
(
host
->
scsi
.
io_port
,
CMND
,
CMND_RESET
);
sbic_arm_write
(
host
->
scsi
.
io_port
,
SBIC_
OWNID
,
OWNID_EAF
|
host
->
host
->
this_id
);
sbic_arm_write
(
host
->
scsi
.
io_port
,
SBIC_
CMND
,
CMND_RESET
);
return
INTR_IDLE
;
case
0x01
:
/* reset state - advanced */
sbic_arm_write
(
host
->
scsi
.
io_port
,
CTRL
,
INIT_SBICDMA
|
CTRL_IDI
);
sbic_arm_write
(
host
->
scsi
.
io_port
,
TIMEOUT
,
TIMEOUT_TIME
);
sbic_arm_write
(
host
->
scsi
.
io_port
,
SYNCHTRANSFER
,
SYNCHTRANSFER_2DBA
);
sbic_arm_write
(
host
->
scsi
.
io_port
,
SOURCEID
,
SOURCEID_ER
|
SOURCEID_DSP
);
sbic_arm_write
(
host
->
scsi
.
io_port
,
SBIC_
CTRL
,
INIT_SBICDMA
|
CTRL_IDI
);
sbic_arm_write
(
host
->
scsi
.
io_port
,
SBIC_
TIMEOUT
,
TIMEOUT_TIME
);
sbic_arm_write
(
host
->
scsi
.
io_port
,
S
BIC_S
YNCHTRANSFER
,
SYNCHTRANSFER_2DBA
);
sbic_arm_write
(
host
->
scsi
.
io_port
,
S
BIC_S
OURCEID
,
SOURCEID_ER
|
SOURCEID_DSP
);
msgqueue_flush
(
&
host
->
scsi
.
msgs
);
return
INTR_IDLE
;
...
...
@@ -2025,10 +2025,10 @@ intr_ret_t acornscsi_sbicintr(AS_Host *host, int in_irq)
msgqueue_flush
(
&
host
->
scsi
.
msgs
);
host
->
dma
.
transferred
=
host
->
scsi
.
SCp
.
scsi_xferred
;
/* 33C93 gives next interrupt indicating bus phase */
asr
=
sbic_arm_read
(
host
->
scsi
.
io_port
,
ASR
);
asr
=
sbic_arm_read
(
host
->
scsi
.
io_port
,
SBIC_
ASR
);
if
(
!
(
asr
&
ASR_INT
))
break
;
ssr
=
sbic_arm_read
(
host
->
scsi
.
io_port
,
SSR
);
ssr
=
sbic_arm_read
(
host
->
scsi
.
io_port
,
S
BIC_S
SR
);
ADD_STATUS
(
8
,
ssr
,
host
->
scsi
.
phase
,
1
);
ADD_STATUS
(
host
->
SCpnt
->
device
->
id
,
ssr
,
host
->
scsi
.
phase
,
1
);
goto
connected
;
...
...
@@ -2655,7 +2655,7 @@ acornscsi_do_abort(AS_Host *host, Scsi_Cmnd *SCpnt)
* busylun bit.
*/
case
PHASE_CONNECTED
:
sbic_arm_write
(
host
->
scsi
.
io_port
,
CMND
,
CMND_DISCONNECT
);
sbic_arm_write
(
host
->
scsi
.
io_port
,
SBIC_
CMND
,
CMND_DISCONNECT
);
host
->
SCpnt
=
NULL
;
res
=
res_success_clear
;
break
;
...
...
@@ -2699,8 +2699,8 @@ int acornscsi_abort(Scsi_Cmnd *SCpnt)
#if (DEBUG & DEBUG_ABORT)
{
int
asr
,
ssr
;
asr
=
sbic_arm_read
(
host
->
scsi
.
io_port
,
ASR
);
ssr
=
sbic_arm_read
(
host
->
scsi
.
io_port
,
SSR
);
asr
=
sbic_arm_read
(
host
->
scsi
.
io_port
,
SBIC_
ASR
);
ssr
=
sbic_arm_read
(
host
->
scsi
.
io_port
,
S
BIC_S
SR
);
printk
(
KERN_WARNING
"acornscsi_abort: "
);
print_sbic_status
(
asr
,
ssr
,
host
->
scsi
.
phase
);
...
...
@@ -2787,8 +2787,8 @@ int acornscsi_reset(Scsi_Cmnd *SCpnt, unsigned int reset_flags)
{
int
asr
,
ssr
;
asr
=
sbic_arm_read
(
host
->
scsi
.
io_port
,
ASR
);
ssr
=
sbic_arm_read
(
host
->
scsi
.
io_port
,
SSR
);
asr
=
sbic_arm_read
(
host
->
scsi
.
io_port
,
SBIC_
ASR
);
ssr
=
sbic_arm_read
(
host
->
scsi
.
io_port
,
S
BIC_S
SR
);
printk
(
KERN_WARNING
"acornscsi_reset: "
);
print_sbic_status
(
asr
,
ssr
,
host
->
scsi
.
phase
);
...
...
drivers/scsi/arm/acornscsi.h
View file @
1d022f90
...
...
@@ -13,13 +13,13 @@
#define ACORNSCSI_H
/* SBIC registers */
#define
OWNID
0
#define
SBIC_OWNID
0
#define OWNID_FS1 (1<<7)
#define OWNID_FS2 (1<<6)
#define OWNID_EHP (1<<4)
#define OWNID_EAF (1<<3)
#define
CTRL
1
#define
SBIC_CTRL
1
#define CTRL_DMAMODE (1<<7)
#define CTRL_DMADBAMODE (1<<6)
#define CTRL_DMABURST (1<<5)
...
...
@@ -30,25 +30,25 @@
#define CTRL_HA (1<<1)
#define CTRL_HSP (1<<0)
#define
TIMEOUT
2
#define TOTSECTS 3
#define TOTHEADS 4
#define
TOTCYLH
5
#define
TOTCYLL
6
#define LOGADDRH 7
#define LOGADDRM2 8
#define LOGADDRM1 9
#define LOGADDRL 10
#define SECTORNUM 11
#define
HEADNUM
12
#define
CYLH
13
#define
CYLL
14
#define TARGETLUN 15
#define
SBIC_TIMEOUT
2
#define
SBIC_
TOTSECTS 3
#define
SBIC_
TOTHEADS 4
#define
SBIC_TOTCYLH
5
#define
SBIC_TOTCYLL
6
#define
SBIC_
LOGADDRH 7
#define
SBIC_
LOGADDRM2 8
#define
SBIC_
LOGADDRM1 9
#define
SBIC_
LOGADDRL 10
#define S
BIC_S
ECTORNUM 11
#define
SBIC_HEADNUM
12
#define
SBIC_CYLH
13
#define
SBIC_CYLL
14
#define
SBIC_
TARGETLUN 15
#define TARGETLUN_TLV (1<<7)
#define TARGETLUN_DOK (1<<6)
#define CMNDPHASE 16
#define S
YNCHTRANSFER
17
#define
SBIC_
CMNDPHASE 16
#define S
BIC_SYNCHTRANSFER
17
#define SYNCHTRANSFER_OF0 0x00
#define SYNCHTRANSFER_OF1 0x01
#define SYNCHTRANSFER_OF2 0x02
...
...
@@ -70,21 +70,21 @@
#define SYNCHTRANSFER_6DBA 0x60
#define SYNCHTRANSFER_7DBA 0x70
#define TRANSCNTH 18
#define TRANSCNTM 19
#define TRANSCNTL 20
#define
DESTID
21
#define
SBIC_
TRANSCNTH 18
#define
SBIC_
TRANSCNTM 19
#define
SBIC_
TRANSCNTL 20
#define
SBIC_DESTID
21
#define DESTID_SCC (1<<7)
#define DESTID_DPD (1<<6)
#define SOURCEID 22
#define S
BIC_S
OURCEID 22
#define SOURCEID_ER (1<<7)
#define SOURCEID_ES (1<<6)
#define SOURCEID_DSP (1<<5)
#define SOURCEID_SIV (1<<4)
#define S
SR
23
#define
CMND
24
#define S
BIC_SSR
23
#define
SBIC_CMND
24
#define CMND_RESET 0x00
#define CMND_ABORT 0x01
#define CMND_ASSERTATN 0x02
...
...
@@ -113,8 +113,8 @@
#define CMND_XFERINFO 0x20
#define CMND_SBT (1<<7)
#define
DATA
25
#define
ASR
26
#define
SBIC_DATA
25
#define
SBIC_ASR
26
#define ASR_INT (1<<7)
#define ASR_LCI (1<<6)
#define ASR_BSY (1<<5)
...
...
@@ -123,22 +123,22 @@
#define ASR_DBR (1<<0)
/* DMAC registers */
#define
INIT
0x00
#define
DMAC_INIT
0x00
#define INIT_8BIT (1)
#define
CHANNEL
0x80
#define
DMAC_CHANNEL
0x80
#define CHANNEL_0 0x00
#define CHANNEL_1 0x01
#define CHANNEL_2 0x02
#define CHANNEL_3 0x03
#define
TXCNTLO
0x01
#define
TXCNTHI
0x81
#define
TXADRLO
0x02
#define
TXADRMD
0x82
#define
TXADRHI
0x03
#define
DMAC_TXCNTLO
0x01
#define
DMAC_TXCNTHI
0x81
#define
DMAC_TXADRLO
0x02
#define
DMAC_TXADRMD
0x82
#define
DMAC_TXADRHI
0x03
#define D
EVCON0
0x04
#define D
MAC_DEVCON0
0x04
#define DEVCON0_AKL (1<<7)
#define DEVCON0_RQL (1<<6)
#define DEVCON0_EXW (1<<5)
...
...
@@ -148,11 +148,11 @@
#define DEVCON0_AHLD (1<<1)
#define DEVCON0_MTM (1<<0)
#define D
EVCON1
0x84
#define D
MAC_DEVCON1
0x84
#define DEVCON1_WEV (1<<1)
#define DEVCON1_BHLD (1<<0)
#define
MODECON
0x05
#define
DMAC_MODECON
0x05
#define MODECON_WOED 0x01
#define MODECON_VERIFY 0x00
#define MODECON_READ 0x04
...
...
@@ -164,14 +164,14 @@
#define MODECON_BLOCK 0x80
#define MODECON_CASCADE 0xC0
#define
STATUS
0x85
#define
DMAC_STATUS
0x85
#define STATUS_TC0 (1<<0)
#define STATUS_RQ0 (1<<4)
#define
TEMPLO
0x06
#define
TEMPHI
0x86
#define
REQREG
0x07
#define
MASKREG
0x87
#define
DMAC_TEMPLO
0x06
#define
DMAC_TEMPHI
0x86
#define
DMAC_REQREG
0x07
#define
DMAC_MASKREG
0x87
#define MASKREG_M0 0x01
#define MASKREG_M1 0x02
#define MASKREG_M2 0x04
...
...
drivers/scsi/arm/arxescsi.c
View file @
1d022f90
...
...
@@ -300,7 +300,7 @@ arxescsi_probe(struct expansion_card *ec, const struct ecard_id *id)
goto
out_region
;
}
host
=
scsi_
register
(
&
arxescsi_template
,
sizeof
(
struct
arxescsi_info
));
host
=
scsi_
host_alloc
(
&
arxescsi_template
,
sizeof
(
struct
arxescsi_info
));
if
(
!
host
)
{
ret
=
-
ENOMEM
;
goto
out_unmap
;
...
...
@@ -341,7 +341,7 @@ arxescsi_probe(struct expansion_card *ec, const struct ecard_id *id)
fas216_release
(
host
);
out_unregister:
scsi_
unregister
(
host
);
scsi_
host_put
(
host
);
out_unmap:
iounmap
(
base
);
out_region:
...
...
@@ -366,7 +366,7 @@ static void __devexit arxescsi_remove(struct expansion_card *ec)
release_mem_region
(
resbase
,
reslen
);
fas216_release
(
host
);
scsi_
unregister
(
host
);
scsi_
host_put
(
host
);
}
static
const
struct
ecard_id
arxescsi_cids
[]
=
{
...
...
drivers/scsi/arm/cumana_2.c
View file @
1d022f90
...
...
@@ -422,8 +422,8 @@ cumanascsi2_probe(struct expansion_card *ec, const struct ecard_id *id)
goto
out_region
;
}
host
=
scsi_
register
(
&
cumanascsi2_template
,
sizeof
(
struct
cumanascsi2_info
));
host
=
scsi_
host_alloc
(
&
cumanascsi2_template
,
sizeof
(
struct
cumanascsi2_info
));
if
(
!
host
)
{
ret
=
-
ENOMEM
;
goto
out_unmap
;
...
...
@@ -498,7 +498,7 @@ cumanascsi2_probe(struct expansion_card *ec, const struct ecard_id *id)
fas216_release
(
host
);
out_free:
scsi_
unregister
(
host
);
scsi_
host_put
(
host
);
out_unmap:
iounmap
(
base
);
...
...
@@ -531,7 +531,7 @@ static void __devexit cumanascsi2_remove(struct expansion_card *ec)
release_mem_region
(
resbase
,
reslen
);
fas216_release
(
host
);
scsi_
unregister
(
host
);
scsi_
host_put
(
host
);
}
static
const
struct
ecard_id
cumanascsi2_cids
[]
=
{
...
...
drivers/scsi/arm/eesox.c
View file @
1d022f90
...
...
@@ -529,8 +529,8 @@ eesoxscsi_probe(struct expansion_card *ec, const struct ecard_id *id)
goto
out_region
;
}
host
=
scsi_
register
(
&
eesox_template
,
sizeof
(
struct
eesoxscsi_info
));
host
=
scsi_
host_alloc
(
&
eesox_template
,
sizeof
(
struct
eesoxscsi_info
));
if
(
!
host
)
{
ret
=
-
ENOMEM
;
goto
out_unmap
;
...
...
@@ -606,7 +606,7 @@ eesoxscsi_probe(struct expansion_card *ec, const struct ecard_id *id)
out_free:
device_remove_file
(
&
ec
->
dev
,
&
dev_attr_bus_term
);
scsi_
unregister
(
host
);
scsi_
host_put
(
host
);
out_unmap:
iounmap
(
base
);
...
...
@@ -641,7 +641,7 @@ static void __devexit eesoxscsi_remove(struct expansion_card *ec)
release_mem_region
(
resbase
,
reslen
);
fas216_release
(
host
);
scsi_
unregister
(
host
);
scsi_
host_put
(
host
);
}
static
const
struct
ecard_id
eesoxscsi_cids
[]
=
{
...
...
drivers/scsi/arm/powertec.c
View file @
1d022f90
...
...
@@ -332,8 +332,8 @@ powertecscsi_probe(struct expansion_card *ec, const struct ecard_id *id)
goto
out_region
;
}
host
=
scsi_
register
(
&
powertecscsi_template
,
sizeof
(
struct
powertec_info
));
host
=
scsi_
host_alloc
(
&
powertecscsi_template
,
sizeof
(
struct
powertec_info
));
if
(
!
host
)
{
ret
=
-
ENOMEM
;
goto
out_unmap
;
...
...
@@ -407,7 +407,7 @@ powertecscsi_probe(struct expansion_card *ec, const struct ecard_id *id)
out_free:
device_remove_file
(
&
ec
->
dev
,
&
dev_attr_bus_term
);
scsi_
unregister
(
host
);
scsi_
host_put
(
host
);
out_unmap:
iounmap
(
base
);
...
...
@@ -442,7 +442,7 @@ static void __devexit powertecscsi_remove(struct expansion_card *ec)
release_mem_region
(
resbase
,
reslen
);
fas216_release
(
host
);
scsi_
unregister
(
host
);
scsi_
host_put
(
host
);
}
static
const
struct
ecard_id
powertecscsi_cids
[]
=
{
...
...
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