Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
d59b66c7
K
Kernel
项目概览
openeuler
/
Kernel
大约 1 年 前同步成功
通知
5
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
d59b66c7
编写于
6月 17, 2007
作者:
P
Pierre Ossman
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
sdio: add modalias support
Signed-off-by:
N
Pierre Ossman
<
drzeus@drzeus.cx
>
上级
9eb3a94d
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
40 addition
and
1 deletion
+40
-1
drivers/mmc/core/sdio_bus.c
drivers/mmc/core/sdio_bus.c
+20
-1
scripts/mod/file2alias.c
scripts/mod/file2alias.c
+20
-0
未找到文件。
drivers/mmc/core/sdio_bus.c
浏览文件 @
d59b66c7
...
...
@@ -68,7 +68,26 @@ static int
sdio_bus_uevent
(
struct
device
*
dev
,
char
**
envp
,
int
num_envp
,
char
*
buf
,
int
buf_size
)
{
envp
[
0
]
=
NULL
;
struct
sdio_func
*
func
=
dev_to_sdio_func
(
dev
);
int
i
=
0
,
length
=
0
;
if
(
add_uevent_var
(
envp
,
num_envp
,
&
i
,
buf
,
buf_size
,
&
length
,
"SDIO_CLASS=%02X"
,
func
->
class
))
return
-
ENOMEM
;
if
(
add_uevent_var
(
envp
,
num_envp
,
&
i
,
buf
,
buf_size
,
&
length
,
"SDIO_ID=%04X:%04X"
,
func
->
vendor
,
func
->
device
))
return
-
ENOMEM
;
if
(
add_uevent_var
(
envp
,
num_envp
,
&
i
,
buf
,
buf_size
,
&
length
,
"MODALIAS=sdio:c%02Xv%04Xd%04X"
,
func
->
class
,
func
->
vendor
,
func
->
device
))
return
-
ENOMEM
;
envp
[
i
]
=
NULL
;
return
0
;
}
...
...
scripts/mod/file2alias.c
浏览文件 @
d59b66c7
...
...
@@ -484,6 +484,22 @@ static int do_parisc_entry(const char *filename, struct parisc_device_id *id,
return
1
;
}
/* Looks like: sdio:cNvNdN. */
static
int
do_sdio_entry
(
const
char
*
filename
,
struct
sdio_device_id
*
id
,
char
*
alias
)
{
id
->
class
=
TO_NATIVE
(
id
->
class
);
id
->
vendor
=
TO_NATIVE
(
id
->
vendor
);
id
->
device
=
TO_NATIVE
(
id
->
device
);
strcpy
(
alias
,
"sdio:"
);
ADD
(
alias
,
"c"
,
id
->
class
!=
(
__u8
)
SDIO_ANY_ID
,
id
->
class
);
ADD
(
alias
,
"v"
,
id
->
vendor
!=
(
__u16
)
SDIO_ANY_ID
,
id
->
vendor
);
ADD
(
alias
,
"d"
,
id
->
device
!=
(
__u16
)
SDIO_ANY_ID
,
id
->
device
);
return
1
;
}
/* Ignore any prefix, eg. v850 prepends _ */
static
inline
int
sym_is
(
const
char
*
symbol
,
const
char
*
name
)
{
...
...
@@ -599,6 +615,10 @@ void handle_moddevtable(struct module *mod, struct elf_info *info,
do_table
(
symval
,
sym
->
st_size
,
sizeof
(
struct
parisc_device_id
),
"parisc"
,
do_parisc_entry
,
mod
);
else
if
(
sym_is
(
symname
,
"__mod_sdio_device_table"
))
do_table
(
symval
,
sym
->
st_size
,
sizeof
(
struct
sdio_device_id
),
"sdio"
,
do_sdio_entry
,
mod
);
}
/* Now add out buffered information to the generated C source */
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录