Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
22a397e2
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,发现更多精彩内容 >>
提交
22a397e2
编写于
11月 20, 2005
作者:
D
Dmitry Torokhov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Input: wistron - convert to dynamic input_dev allocation
Signed-off-by:
N
Dmitry Torokhov
<
dtor@mail.ru
>
上级
84b256a6
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
37 addition
and
16 deletion
+37
-16
drivers/input/misc/wistron_btns.c
drivers/input/misc/wistron_btns.c
+37
-16
未找到文件。
drivers/input/misc/wistron_btns.c
浏览文件 @
22a397e2
...
...
@@ -149,7 +149,7 @@ static int __init map_bios(void)
return
-
ENOMEM
;
}
static
void
__exit
unmap_bios
(
void
)
static
inline
void
unmap_bios
(
void
)
{
iounmap
(
bios_code_map_base
);
iounmap
(
bios_data_map_base
);
...
...
@@ -180,7 +180,7 @@ static void __init bios_attach(void)
call_bios
(
&
regs
);
}
static
void
__exit
bios_detach
(
void
)
static
void
bios_detach
(
void
)
{
struct
regs
regs
;
...
...
@@ -342,31 +342,43 @@ static int __init select_keymap(void)
/* Input layer interface */
static
struct
input_dev
input_dev
=
{
.
name
=
"Wistron laptop buttons"
,
};
static
struct
input_dev
*
input_dev
;
static
void
__init
setup_input_dev
(
void
)
static
int
__init
setup_input_dev
(
void
)
{
const
struct
key_entry
*
key
;
int
error
;
input_dev
=
input_allocate_device
();
if
(
!
input_dev
)
return
-
ENOMEM
;
input_dev
->
name
=
"Wistron laptop buttons"
;
input_dev
->
phys
=
"wistron/input0"
;
input_dev
->
id
.
bustype
=
BUS_HOST
;
for
(
key
=
keymap
;
key
->
type
!=
KE_END
;
key
++
)
{
if
(
key
->
type
==
KE_KEY
)
{
input_dev
.
evbit
[
LONG
(
EV_KEY
)]
=
BIT
(
EV_KEY
);
input_dev
.
keybit
[
LONG
(
key
->
keycode
)]
|=
BIT
(
key
->
keycode
);
input_dev
->
evbit
[
LONG
(
EV_KEY
)]
=
BIT
(
EV_KEY
);
set_bit
(
key
->
keycode
,
input_dev
->
keybit
);
}
}
input_register_device
(
&
input_dev
);
error
=
input_register_device
(
input_dev
);
if
(
error
)
{
input_free_device
(
input_dev
);
return
error
;
}
return
0
;
}
static
void
report_key
(
unsigned
keycode
)
{
input_report_key
(
&
input_dev
,
keycode
,
1
);
input_sync
(
&
input_dev
);
input_report_key
(
&
input_dev
,
keycode
,
0
);
input_sync
(
&
input_dev
);
input_report_key
(
input_dev
,
keycode
,
1
);
input_sync
(
input_dev
);
input_report_key
(
input_dev
,
keycode
,
0
);
input_sync
(
input_dev
);
}
/* Driver core */
...
...
@@ -437,11 +449,14 @@ static int __init wb_module_init(void)
err
=
select_keymap
();
if
(
err
)
return
err
;
err
=
map_bios
();
if
(
err
)
return
err
;
bios_attach
();
cmos_address
=
bios_get_cmos_address
();
if
(
have_wifi
)
{
u16
wifi
=
bios_get_default_setting
(
WIFI
);
if
(
wifi
&
1
)
...
...
@@ -452,6 +467,7 @@ static int __init wb_module_init(void)
if
(
have_wifi
)
bios_set_state
(
WIFI
,
wifi_enabled
);
}
if
(
have_bluetooth
)
{
u16
bt
=
bios_get_default_setting
(
BLUETOOTH
);
if
(
bt
&
1
)
...
...
@@ -463,7 +479,12 @@ static int __init wb_module_init(void)
bios_set_state
(
BLUETOOTH
,
bluetooth_enabled
);
}
setup_input_dev
();
err
=
setup_input_dev
();
if
(
err
)
{
bios_detach
();
unmap_bios
();
return
err
;
}
poll_bios
(
1
);
/* Flush stale event queue and arm timer */
...
...
@@ -473,7 +494,7 @@ static int __init wb_module_init(void)
static
void
__exit
wb_module_exit
(
void
)
{
del_timer_sync
(
&
poll_timer
);
input_unregister_device
(
&
input_dev
);
input_unregister_device
(
input_dev
);
bios_detach
();
unmap_bios
();
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录