Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
raspberrypi-kernel
提交
6ccc6d7e
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看板
提交
6ccc6d7e
编写于
10月 13, 2008
作者:
B
Bartlomiej Zolnierkiewicz
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ide-generic: no need to probe all ports at once
Signed-off-by:
N
Bartlomiej Zolnierkiewicz
<
bzolnier@gmail.com
>
上级
bfa7d8e5
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
12 addition
and
35 deletion
+12
-35
drivers/ide/ide-generic.c
drivers/ide/ide-generic.c
+12
-35
未找到文件。
drivers/ide/ide-generic.c
浏览文件 @
6ccc6d7e
...
...
@@ -137,10 +137,9 @@ static void ide_generic_check_pci_legacy_iobases(int *primary, int *secondary)
static
int
__init
ide_generic_init
(
void
)
{
hw_regs_t
hw
[
MAX_HWIFS
],
*
hws
[
MAX_HWIFS
];
struct
ide_host
*
host
;
hw_regs_t
hw
,
*
hws
[]
=
{
&
hw
,
NULL
,
NULL
,
NULL
};
unsigned
long
io_addr
;
int
i
,
rc
,
primary
=
0
,
secondary
=
0
;
int
i
,
rc
=
0
,
primary
=
0
,
secondary
=
0
;
#ifdef CONFIG_MIPS
if
(
!
ide_probe_legacy
())
...
...
@@ -161,13 +160,9 @@ static int __init ide_generic_init(void)
printk
(
KERN_INFO
DRV_NAME
": enforcing probing of I/O ports "
"upon user request
\n
"
);
memset
(
hws
,
0
,
sizeof
(
hw_regs_t
*
)
*
MAX_HWIFS
);
for
(
i
=
0
;
i
<
ARRAY_SIZE
(
legacy_bases
);
i
++
)
{
io_addr
=
legacy_bases
[
i
];
hws
[
i
]
=
NULL
;
if
((
probe_mask
&
(
1
<<
i
))
&&
io_addr
)
{
if
(
!
request_region
(
io_addr
,
8
,
DRV_NAME
))
{
printk
(
KERN_ERR
"%s: I/O resource 0x%lX-0x%lX "
...
...
@@ -184,45 +179,27 @@ static int __init ide_generic_init(void)
continue
;
}
memset
(
&
hw
[
i
],
0
,
sizeof
(
hw
[
i
]
));
ide_std_init_ports
(
&
hw
[
i
]
,
io_addr
,
io_addr
+
0x206
);
memset
(
&
hw
,
0
,
sizeof
(
hw
));
ide_std_init_ports
(
&
hw
,
io_addr
,
io_addr
+
0x206
);
#ifdef CONFIG_IA64
hw
[
i
]
.
irq
=
isa_irq_to_vector
(
legacy_irqs
[
i
]);
hw
.
irq
=
isa_irq_to_vector
(
legacy_irqs
[
i
]);
#else
hw
[
i
]
.
irq
=
legacy_irqs
[
i
];
hw
.
irq
=
legacy_irqs
[
i
];
#endif
hw
[
i
]
.
chipset
=
ide_generic
;
hw
.
chipset
=
ide_generic
;
hws
[
i
]
=
&
hw
[
i
];
rc
=
ide_host_add
(
NULL
,
hws
,
NULL
);
if
(
rc
)
{
release_region
(
io_addr
+
0x206
,
1
);
release_region
(
io_addr
,
8
);
}
}
}
host
=
ide_host_alloc_all
(
NULL
,
hws
);
if
(
host
==
NULL
)
{
rc
=
-
ENOMEM
;
goto
err
;
}
rc
=
ide_host_register
(
host
,
NULL
,
hws
);
if
(
rc
)
goto
err_free
;
if
(
ide_generic_sysfs_init
())
printk
(
KERN_ERR
DRV_NAME
": failed to create ide_generic "
"class
\n
"
);
return
0
;
err_free:
ide_host_free
(
host
);
err:
for
(
i
=
0
;
i
<
MAX_HWIFS
;
i
++
)
{
if
(
hws
[
i
]
==
NULL
)
continue
;
io_addr
=
hws
[
i
]
->
io_ports
.
data_addr
;
release_region
(
io_addr
+
0x206
,
1
);
release_region
(
io_addr
,
8
);
}
return
rc
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录