Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
raspberrypi-kernel
提交
408bb25b
R
raspberrypi-kernel
项目概览
openeuler
/
raspberrypi-kernel
通知
13
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
raspberrypi-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
408bb25b
编写于
3月 31, 2013
作者:
A
Al Viro
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
switch wd33c93 to ->show_info()
Signed-off-by:
N
Al Viro
<
viro@zeniv.linux.org.uk
>
上级
cab29b99
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
94 addition
and
115 deletion
+94
-115
drivers/scsi/a2091.c
drivers/scsi/a2091.c
+2
-1
drivers/scsi/a3000.c
drivers/scsi/a3000.c
+2
-1
drivers/scsi/gvp11.c
drivers/scsi/gvp11.c
+2
-1
drivers/scsi/mvme147.c
drivers/scsi/mvme147.c
+2
-1
drivers/scsi/wd33c93.c
drivers/scsi/wd33c93.c
+84
-110
drivers/scsi/wd33c93.h
drivers/scsi/wd33c93.h
+2
-1
未找到文件。
drivers/scsi/a2091.c
浏览文件 @
408bb25b
...
...
@@ -166,7 +166,8 @@ static int a2091_bus_reset(struct scsi_cmnd *cmd)
static
struct
scsi_host_template
a2091_scsi_template
=
{
.
module
=
THIS_MODULE
,
.
name
=
"Commodore A2091/A590 SCSI"
,
.
proc_info
=
wd33c93_proc_info
,
.
show_info
=
wd33c93_show_info
,
.
write_info
=
wd33c93_write_info
,
.
proc_name
=
"A2901"
,
.
queuecommand
=
wd33c93_queuecommand
,
.
eh_abort_handler
=
wd33c93_abort
,
...
...
drivers/scsi/a3000.c
浏览文件 @
408bb25b
...
...
@@ -181,7 +181,8 @@ static int a3000_bus_reset(struct scsi_cmnd *cmd)
static
struct
scsi_host_template
amiga_a3000_scsi_template
=
{
.
module
=
THIS_MODULE
,
.
name
=
"Amiga 3000 built-in SCSI"
,
.
proc_info
=
wd33c93_proc_info
,
.
show_info
=
wd33c93_show_info
,
.
write_info
=
wd33c93_write_info
,
.
proc_name
=
"A3000"
,
.
queuecommand
=
wd33c93_queuecommand
,
.
eh_abort_handler
=
wd33c93_abort
,
...
...
drivers/scsi/gvp11.c
浏览文件 @
408bb25b
...
...
@@ -191,7 +191,8 @@ static int gvp11_bus_reset(struct scsi_cmnd *cmd)
static
struct
scsi_host_template
gvp11_scsi_template
=
{
.
module
=
THIS_MODULE
,
.
name
=
"GVP Series II SCSI"
,
.
proc_info
=
wd33c93_proc_info
,
.
show_info
=
wd33c93_show_info
,
.
write_info
=
wd33c93_write_info
,
.
proc_name
=
"GVP11"
,
.
queuecommand
=
wd33c93_queuecommand
,
.
eh_abort_handler
=
wd33c93_abort
,
...
...
drivers/scsi/mvme147.c
浏览文件 @
408bb25b
...
...
@@ -76,7 +76,8 @@ int mvme147_detect(struct scsi_host_template *tpnt)
called
++
;
tpnt
->
proc_name
=
"MVME147"
;
tpnt
->
proc_info
=
&
wd33c93_proc_info
;
tpnt
->
show_info
=
wd33c93_show_info
,
tpnt
->
write_info
=
wd33c93_write_info
,
instance
=
scsi_register
(
tpnt
,
sizeof
(
struct
WD33C93_hostdata
));
if
(
!
instance
)
...
...
drivers/scsi/wd33c93.c
浏览文件 @
408bb25b
...
...
@@ -2054,22 +2054,16 @@ wd33c93_init(struct Scsi_Host *instance, const wd33c93_regs regs,
printk
(
" Version %s - %s
\n
"
,
WD33C93_VERSION
,
WD33C93_DATE
);
}
int
wd33c93_proc_info
(
struct
Scsi_Host
*
instance
,
char
*
buf
,
char
**
start
,
off_t
off
,
int
len
,
int
in
)
int
wd33c93_write_info
(
struct
Scsi_Host
*
instance
,
char
*
buf
,
int
len
)
{
#ifdef PROC_INTERFACE
char
*
bp
;
char
tbuf
[
128
];
struct
WD33C93_hostdata
*
hd
;
struct
scsi_cmnd
*
cmd
;
int
x
;
static
int
stop
=
0
;
hd
=
(
struct
WD33C93_hostdata
*
)
instance
->
hostdata
;
/*
If 'in' is TRUE we need to _read_ the proc file.
We accept the following
/* We accept the following
* keywords (same format as command-line, but arguments are not optional):
* debug
* disconnect
...
...
@@ -2083,145 +2077,124 @@ wd33c93_proc_info(struct Scsi_Host *instance, char *buf, char **start, off_t off
* nosync
*/
if
(
in
)
{
buf
[
len
]
=
'\0'
;
for
(
bp
=
buf
;
*
bp
;
)
{
while
(
','
==
*
bp
||
' '
==
*
bp
)
++
bp
;
if
(
!
strncmp
(
bp
,
"debug:"
,
6
))
{
hd
->
args
=
simple_strtoul
(
bp
+
6
,
&
bp
,
0
)
&
DB_MASK
;
}
else
if
(
!
strncmp
(
bp
,
"disconnect:"
,
11
))
{
x
=
simple_strtoul
(
bp
+
11
,
&
bp
,
0
);
if
(
x
<
DIS_NEVER
||
x
>
DIS_ALWAYS
)
x
=
DIS_ADAPTIVE
;
hd
->
disconnect
=
x
;
}
else
if
(
!
strncmp
(
bp
,
"period:"
,
7
))
{
buf
[
len
]
=
'\0'
;
for
(
bp
=
buf
;
*
bp
;
)
{
while
(
','
==
*
bp
||
' '
==
*
bp
)
++
bp
;
if
(
!
strncmp
(
bp
,
"debug:"
,
6
))
{
hd
->
args
=
simple_strtoul
(
bp
+
6
,
&
bp
,
0
)
&
DB_MASK
;
}
else
if
(
!
strncmp
(
bp
,
"disconnect:"
,
11
))
{
x
=
simple_strtoul
(
bp
+
11
,
&
bp
,
0
);
if
(
x
<
DIS_NEVER
||
x
>
DIS_ALWAYS
)
x
=
DIS_ADAPTIVE
;
hd
->
disconnect
=
x
;
}
else
if
(
!
strncmp
(
bp
,
"period:"
,
7
))
{
x
=
simple_strtoul
(
bp
+
7
,
&
bp
,
0
);
hd
->
default_sx_per
=
hd
->
sx_table
[
round_period
((
unsigned
int
)
x
,
hd
->
sx_table
)].
period_ns
;
}
else
if
(
!
strncmp
(
bp
,
"resync:"
,
7
))
{
set_resync
(
hd
,
(
int
)
simple_strtoul
(
bp
+
7
,
&
bp
,
0
));
}
else
if
(
!
strncmp
(
bp
,
"proc:"
,
5
))
{
hd
->
proc
=
simple_strtoul
(
bp
+
5
,
&
bp
,
0
);
}
else
if
(
!
strncmp
(
bp
,
"nodma:"
,
6
))
{
hd
->
no_dma
=
simple_strtoul
(
bp
+
6
,
&
bp
,
0
);
}
else
if
(
!
strncmp
(
bp
,
"level2:"
,
7
))
{
hd
->
level2
=
simple_strtoul
(
bp
+
7
,
&
bp
,
0
);
}
else
if
(
!
strncmp
(
bp
,
"burst:"
,
6
))
{
hd
->
dma_mode
=
simple_strtol
(
bp
+
6
,
&
bp
,
0
)
?
CTRL_BURST
:
CTRL_DMA
;
}
else
if
(
!
strncmp
(
bp
,
"fast:"
,
5
))
{
x
=
!!
simple_strtol
(
bp
+
5
,
&
bp
,
0
);
if
(
x
!=
hd
->
fast
)
set_resync
(
hd
,
0xff
);
hd
->
fast
=
x
;
}
else
if
(
!
strncmp
(
bp
,
"nosync:"
,
7
))
{
x
=
simple_strtoul
(
bp
+
7
,
&
bp
,
0
);
hd
->
default_sx_per
=
hd
->
sx_table
[
round_period
((
unsigned
int
)
x
,
hd
->
sx_table
)].
period_ns
;
}
else
if
(
!
strncmp
(
bp
,
"resync:"
,
7
))
{
set_resync
(
hd
,
(
int
)
simple_strtoul
(
bp
+
7
,
&
bp
,
0
));
}
else
if
(
!
strncmp
(
bp
,
"proc:"
,
5
))
{
hd
->
proc
=
simple_strtoul
(
bp
+
5
,
&
bp
,
0
);
}
else
if
(
!
strncmp
(
bp
,
"nodma:"
,
6
))
{
hd
->
no_dma
=
simple_strtoul
(
bp
+
6
,
&
bp
,
0
);
}
else
if
(
!
strncmp
(
bp
,
"level2:"
,
7
))
{
hd
->
level2
=
simple_strtoul
(
bp
+
7
,
&
bp
,
0
);
}
else
if
(
!
strncmp
(
bp
,
"burst:"
,
6
))
{
hd
->
dma_mode
=
simple_strtol
(
bp
+
6
,
&
bp
,
0
)
?
CTRL_BURST
:
CTRL_DMA
;
}
else
if
(
!
strncmp
(
bp
,
"fast:"
,
5
))
{
x
=
!!
simple_strtol
(
bp
+
5
,
&
bp
,
0
);
if
(
x
!=
hd
->
fast
)
set_resync
(
hd
,
0xff
);
hd
->
fast
=
x
;
}
else
if
(
!
strncmp
(
bp
,
"nosync:"
,
7
))
{
x
=
simple_strtoul
(
bp
+
7
,
&
bp
,
0
);
set_resync
(
hd
,
x
^
hd
->
no_sync
);
hd
->
no_sync
=
x
;
}
else
{
break
;
/* unknown keyword,syntax-error,... */
}
set_resync
(
hd
,
x
^
hd
->
no_sync
);
hd
->
no_sync
=
x
;
}
else
{
break
;
/* unknown keyword,syntax-error,... */
}
return
len
;
}
return
len
;
#else
return
0
;
#endif
}
int
wd33c93_show_info
(
struct
seq_file
*
m
,
struct
Scsi_Host
*
instance
)
{
#ifdef PROC_INTERFACE
struct
WD33C93_hostdata
*
hd
;
struct
scsi_cmnd
*
cmd
;
int
x
;
hd
=
(
struct
WD33C93_hostdata
*
)
instance
->
hostdata
;
spin_lock_irq
(
&
hd
->
lock
);
bp
=
buf
;
*
bp
=
'\0'
;
if
(
hd
->
proc
&
PR_VERSION
)
{
sprintf
(
tbuf
,
"
\n
Version %s - %s."
,
if
(
hd
->
proc
&
PR_VERSION
)
seq_printf
(
m
,
"
\n
Version %s - %s."
,
WD33C93_VERSION
,
WD33C93_DATE
);
strcat
(
bp
,
tbuf
);
}
if
(
hd
->
proc
&
PR_INFO
)
{
s
printf
(
tbuf
,
"
\n
clock_freq=%02x no_sync=%02x no_dma=%d"
s
eq_printf
(
m
,
"
\n
clock_freq=%02x no_sync=%02x no_dma=%d"
" dma_mode=%02x fast=%d"
,
hd
->
clock_freq
,
hd
->
no_sync
,
hd
->
no_dma
,
hd
->
dma_mode
,
hd
->
fast
);
strcat
(
bp
,
tbuf
);
strcat
(
bp
,
"
\n
sync_xfer[] = "
);
for
(
x
=
0
;
x
<
7
;
x
++
)
{
sprintf
(
tbuf
,
"
\t
%02x"
,
hd
->
sync_xfer
[
x
]);
strcat
(
bp
,
tbuf
);
}
strcat
(
bp
,
"
\n
sync_stat[] = "
);
for
(
x
=
0
;
x
<
7
;
x
++
)
{
sprintf
(
tbuf
,
"
\t
%02x"
,
hd
->
sync_stat
[
x
]);
strcat
(
bp
,
tbuf
);
}
seq_printf
(
m
,
"
\n
sync_xfer[] = "
);
for
(
x
=
0
;
x
<
7
;
x
++
)
seq_printf
(
m
,
"
\t
%02x"
,
hd
->
sync_xfer
[
x
]);
seq_printf
(
m
,
"
\n
sync_stat[] = "
);
for
(
x
=
0
;
x
<
7
;
x
++
)
seq_printf
(
m
,
"
\t
%02x"
,
hd
->
sync_stat
[
x
]);
}
#ifdef PROC_STATISTICS
if
(
hd
->
proc
&
PR_STATISTICS
)
{
strcat
(
bp
,
"
\n
commands issued: "
);
for
(
x
=
0
;
x
<
7
;
x
++
)
{
sprintf
(
tbuf
,
"
\t
%ld"
,
hd
->
cmd_cnt
[
x
]);
strcat
(
bp
,
tbuf
);
}
strcat
(
bp
,
"
\n
disconnects allowed:"
);
for
(
x
=
0
;
x
<
7
;
x
++
)
{
sprintf
(
tbuf
,
"
\t
%ld"
,
hd
->
disc_allowed_cnt
[
x
]);
strcat
(
bp
,
tbuf
);
}
strcat
(
bp
,
"
\n
disconnects done: "
);
for
(
x
=
0
;
x
<
7
;
x
++
)
{
sprintf
(
tbuf
,
"
\t
%ld"
,
hd
->
disc_done_cnt
[
x
]);
strcat
(
bp
,
tbuf
);
}
sprintf
(
tbuf
,
seq_printf
(
m
,
"
\n
commands issued: "
);
for
(
x
=
0
;
x
<
7
;
x
++
)
seq_printf
(
m
,
"
\t
%ld"
,
hd
->
cmd_cnt
[
x
]);
seq_printf
(
m
,
"
\n
disconnects allowed:"
);
for
(
x
=
0
;
x
<
7
;
x
++
)
seq_printf
(
m
,
"
\t
%ld"
,
hd
->
disc_allowed_cnt
[
x
]);
seq_printf
(
m
,
"
\n
disconnects done: "
);
for
(
x
=
0
;
x
<
7
;
x
++
)
seq_printf
(
m
,
"
\t
%ld"
,
hd
->
disc_done_cnt
[
x
]);
seq_printf
(
m
,
"
\n
interrupts: %ld, DATA_PHASE ints: %ld DMA, %ld PIO"
,
hd
->
int_cnt
,
hd
->
dma_cnt
,
hd
->
pio_cnt
);
strcat
(
bp
,
tbuf
);
}
#endif
if
(
hd
->
proc
&
PR_CONNECTED
)
{
s
trcat
(
bp
,
"
\n
connected: "
);
s
eq_printf
(
m
,
"
\n
connected: "
);
if
(
hd
->
connected
)
{
cmd
=
(
struct
scsi_cmnd
*
)
hd
->
connected
;
s
printf
(
tbuf
,
" %d:%d(%02x)"
,
s
eq_printf
(
m
,
" %d:%d(%02x)"
,
cmd
->
device
->
id
,
cmd
->
device
->
lun
,
cmd
->
cmnd
[
0
]);
strcat
(
bp
,
tbuf
);
}
}
if
(
hd
->
proc
&
PR_INPUTQ
)
{
s
trcat
(
bp
,
"
\n
input_Q: "
);
s
eq_printf
(
m
,
"
\n
input_Q: "
);
cmd
=
(
struct
scsi_cmnd
*
)
hd
->
input_Q
;
while
(
cmd
)
{
s
printf
(
tbuf
,
" %d:%d(%02x)"
,
s
eq_printf
(
m
,
" %d:%d(%02x)"
,
cmd
->
device
->
id
,
cmd
->
device
->
lun
,
cmd
->
cmnd
[
0
]);
strcat
(
bp
,
tbuf
);
cmd
=
(
struct
scsi_cmnd
*
)
cmd
->
host_scribble
;
}
}
if
(
hd
->
proc
&
PR_DISCQ
)
{
s
trcat
(
bp
,
"
\n
disconnected_Q:"
);
s
eq_printf
(
m
,
"
\n
disconnected_Q:"
);
cmd
=
(
struct
scsi_cmnd
*
)
hd
->
disconnected_Q
;
while
(
cmd
)
{
s
printf
(
tbuf
,
" %d:%d(%02x)"
,
s
eq_printf
(
m
,
" %d:%d(%02x)"
,
cmd
->
device
->
id
,
cmd
->
device
->
lun
,
cmd
->
cmnd
[
0
]);
strcat
(
bp
,
tbuf
);
cmd
=
(
struct
scsi_cmnd
*
)
cmd
->
host_scribble
;
}
}
s
trcat
(
bp
,
"
\n
"
);
s
eq_printf
(
m
,
"
\n
"
);
spin_unlock_irq
(
&
hd
->
lock
);
*
start
=
buf
;
if
(
stop
)
{
stop
=
0
;
return
0
;
}
if
(
off
>
0x40000
)
/* ALWAYS stop after 256k bytes have been read */
stop
=
1
;
if
(
hd
->
proc
&
PR_STOP
)
/* stop every other time */
stop
=
1
;
return
strlen
(
bp
);
#else
/* PROC_INTERFACE */
return
0
;
#endif
/* PROC_INTERFACE */
return
0
;
}
EXPORT_SYMBOL
(
wd33c93_host_reset
);
...
...
@@ -2229,4 +2202,5 @@ EXPORT_SYMBOL(wd33c93_init);
EXPORT_SYMBOL
(
wd33c93_abort
);
EXPORT_SYMBOL
(
wd33c93_queuecommand
);
EXPORT_SYMBOL
(
wd33c93_intr
);
EXPORT_SYMBOL
(
wd33c93_proc_info
);
EXPORT_SYMBOL
(
wd33c93_show_info
);
EXPORT_SYMBOL
(
wd33c93_write_info
);
drivers/scsi/wd33c93.h
浏览文件 @
408bb25b
...
...
@@ -345,7 +345,8 @@ void wd33c93_init (struct Scsi_Host *instance, const wd33c93_regs regs,
int
wd33c93_abort
(
struct
scsi_cmnd
*
cmd
);
int
wd33c93_queuecommand
(
struct
Scsi_Host
*
h
,
struct
scsi_cmnd
*
cmd
);
void
wd33c93_intr
(
struct
Scsi_Host
*
instance
);
int
wd33c93_proc_info
(
struct
Scsi_Host
*
,
char
*
,
char
**
,
off_t
,
int
,
int
);
int
wd33c93_show_info
(
struct
seq_file
*
,
struct
Scsi_Host
*
);
int
wd33c93_write_info
(
struct
Scsi_Host
*
,
char
*
,
int
);
int
wd33c93_host_reset
(
struct
scsi_cmnd
*
);
#endif
/* WD33C93_H */
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录