Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
gsplhtlxg
clone-Linux
提交
45b30105
C
clone-Linux
项目概览
gsplhtlxg
/
clone-Linux
通知
2
Star
0
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
clone-Linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
45b30105
编写于
5月 29, 2005
作者:
L
Linus Torvalds
浏览文件
操作
浏览文件
下载
差异文件
Automatic merge of 'for-linus' branch from
rsync://rsync.kernel.org/pub/scm/linux/kernel/git/dtor/input
上级
6cf2b3fc
7d6064d4
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
97 addition
and
96 deletion
+97
-96
drivers/input/gameport/Kconfig
drivers/input/gameport/Kconfig
+0
-20
drivers/input/joydev.c
drivers/input/joydev.c
+1
-1
drivers/input/mouse/psmouse-base.c
drivers/input/mouse/psmouse-base.c
+5
-2
drivers/input/mouse/synaptics.c
drivers/input/mouse/synaptics.c
+5
-34
drivers/input/serio/i8042-x86ia64io.h
drivers/input/serio/i8042-x86ia64io.h
+26
-6
drivers/input/serio/i8042.c
drivers/input/serio/i8042.c
+28
-22
drivers/input/touchscreen/gunze.c
drivers/input/touchscreen/gunze.c
+1
-2
include/linux/gameport.h
include/linux/gameport.h
+25
-3
sound/oss/Kconfig
sound/oss/Kconfig
+6
-6
未找到文件。
drivers/input/gameport/Kconfig
浏览文件 @
45b30105
...
...
@@ -68,23 +68,3 @@ config GAMEPORT_CS461X
depends on PCI
endif
# Yes, SOUND_GAMEPORT looks a bit odd. Yes, it ends up being turned on
# in every .config. Please don't touch it. It is here to handle an
# unusual dependency between GAMEPORT and sound drivers.
#
# Some sound drivers call gameport functions. If GAMEPORT is
# not selected, empty stubs are provided for the functions and all is
# well.
# If GAMEPORT is built in, everything is fine.
# If GAMEPORT is a module, however, it would need to be loaded for the
# sound driver to be able to link properly. Therefore, the sound
# driver must be a module as well in that case. Since there's no way
# to express that directly in Kconfig, we use SOUND_GAMEPORT to
# express it. SOUND_GAMEPORT boils down to "if GAMEPORT is 'm',
# anything that depends on SOUND_GAMEPORT must be 'm' as well. if
# GAMEPORT is 'y' or 'n', it can be anything".
config SOUND_GAMEPORT
tristate
default m if GAMEPORT=m
default y
drivers/input/joydev.c
浏览文件 @
45b30105
...
...
@@ -422,7 +422,7 @@ static struct input_handle *joydev_connect(struct input_handler *handler, struct
joydev
->
nkey
++
;
}
for
(
i
=
0
;
i
<
BTN_JOYSTICK
-
BTN_MISC
+
1
;
i
++
)
for
(
i
=
0
;
i
<
BTN_JOYSTICK
-
BTN_MISC
;
i
++
)
if
(
test_bit
(
i
+
BTN_MISC
,
dev
->
keybit
))
{
joydev
->
keymap
[
i
]
=
joydev
->
nkey
;
joydev
->
keypam
[
joydev
->
nkey
]
=
i
+
BTN_MISC
;
...
...
drivers/input/mouse/psmouse-base.c
浏览文件 @
45b30105
...
...
@@ -518,13 +518,16 @@ static int psmouse_probe(struct psmouse *psmouse)
/*
* First, we check if it's a mouse. It should send 0x00 or 0x03
* in case of an IntelliMouse in 4-byte mode or 0x04 for IM Explorer.
* Sunrex K8561 IR Keyboard/Mouse reports 0xff on second and subsequent
* ID queries, probably due to a firmware bug.
*/
param
[
0
]
=
0xa5
;
if
(
ps2_command
(
ps2dev
,
param
,
PSMOUSE_CMD_GETID
))
return
-
1
;
if
(
param
[
0
]
!=
0x00
&&
param
[
0
]
!=
0x03
&&
param
[
0
]
!=
0x04
)
if
(
param
[
0
]
!=
0x00
&&
param
[
0
]
!=
0x03
&&
param
[
0
]
!=
0x04
&&
param
[
0
]
!=
0xff
)
return
-
1
;
/*
...
...
@@ -972,7 +975,7 @@ static int psmouse_set_maxproto(const char *val, struct kernel_param *kp)
return
-
EINVAL
;
if
(
!
strncmp
(
val
,
"any"
,
3
))
{
*
((
unsigned
int
*
)
kp
->
arg
)
=
-
1U
L
;
*
((
unsigned
int
*
)
kp
->
arg
)
=
-
1U
;
return
0
;
}
...
...
drivers/input/mouse/synaptics.c
浏览文件 @
45b30105
...
...
@@ -143,39 +143,6 @@ static int synaptics_identify(struct psmouse *psmouse)
return
-
1
;
}
static
void
print_ident
(
struct
synaptics_data
*
priv
)
{
printk
(
KERN_INFO
"Synaptics Touchpad, model: %ld
\n
"
,
SYN_ID_MODEL
(
priv
->
identity
));
printk
(
KERN_INFO
" Firmware: %ld.%ld
\n
"
,
SYN_ID_MAJOR
(
priv
->
identity
),
SYN_ID_MINOR
(
priv
->
identity
));
if
(
SYN_MODEL_ROT180
(
priv
->
model_id
))
printk
(
KERN_INFO
" 180 degree mounted touchpad
\n
"
);
if
(
SYN_MODEL_PORTRAIT
(
priv
->
model_id
))
printk
(
KERN_INFO
" portrait touchpad
\n
"
);
printk
(
KERN_INFO
" Sensor: %ld
\n
"
,
SYN_MODEL_SENSOR
(
priv
->
model_id
));
if
(
SYN_MODEL_NEWABS
(
priv
->
model_id
))
printk
(
KERN_INFO
" new absolute packet format
\n
"
);
if
(
SYN_MODEL_PEN
(
priv
->
model_id
))
printk
(
KERN_INFO
" pen detection
\n
"
);
if
(
SYN_CAP_EXTENDED
(
priv
->
capabilities
))
{
printk
(
KERN_INFO
" Touchpad has extended capability bits
\n
"
);
if
(
SYN_CAP_MULTI_BUTTON_NO
(
priv
->
ext_cap
))
printk
(
KERN_INFO
" -> %d multi-buttons, i.e. besides standard buttons
\n
"
,
(
int
)(
SYN_CAP_MULTI_BUTTON_NO
(
priv
->
ext_cap
)));
if
(
SYN_CAP_MIDDLE_BUTTON
(
priv
->
capabilities
))
printk
(
KERN_INFO
" -> middle button
\n
"
);
if
(
SYN_CAP_FOUR_BUTTON
(
priv
->
capabilities
))
printk
(
KERN_INFO
" -> four buttons
\n
"
);
if
(
SYN_CAP_MULTIFINGER
(
priv
->
capabilities
))
printk
(
KERN_INFO
" -> multifinger detection
\n
"
);
if
(
SYN_CAP_PALMDETECT
(
priv
->
capabilities
))
printk
(
KERN_INFO
" -> palm detection
\n
"
);
if
(
SYN_CAP_PASS_THROUGH
(
priv
->
capabilities
))
printk
(
KERN_INFO
" -> pass-through port
\n
"
);
}
}
static
int
synaptics_query_hardware
(
struct
psmouse
*
psmouse
)
{
int
retries
=
0
;
...
...
@@ -666,7 +633,11 @@ int synaptics_init(struct psmouse *psmouse)
priv
->
pkt_type
=
SYN_MODEL_NEWABS
(
priv
->
model_id
)
?
SYN_NEWABS
:
SYN_OLDABS
;
print_ident
(
priv
);
printk
(
KERN_INFO
"Synaptics Touchpad, model: %ld, fw: %ld.%ld, id: %#lx, caps: %#lx/%#lx
\n
"
,
SYN_ID_MODEL
(
priv
->
identity
),
SYN_ID_MAJOR
(
priv
->
identity
),
SYN_ID_MINOR
(
priv
->
identity
),
priv
->
model_id
,
priv
->
capabilities
,
priv
->
ext_cap
);
set_input_params
(
&
psmouse
->
dev
,
priv
);
psmouse
->
protocol_handler
=
synaptics_process_byte
;
...
...
drivers/input/serio/i8042-x86ia64io.h
浏览文件 @
45b30105
...
...
@@ -88,9 +88,11 @@ static struct dmi_system_id __initdata i8042_dmi_noloop_table[] = {
};
/*
* Some Fujitsu notebooks are
ahving trouble with touhc
pads if
* Some Fujitsu notebooks are
having trouble with touch
pads if
* active multiplexing mode is activated. Luckily they don't have
* external PS/2 ports so we can safely disable it.
* ... apparently some Toshibas don't like MUX mode either and
* die horrible death on reboot.
*/
static
struct
dmi_system_id
__initdata
i8042_dmi_nomux_table
[]
=
{
{
...
...
@@ -114,6 +116,13 @@ static struct dmi_system_id __initdata i8042_dmi_nomux_table[] = {
DMI_MATCH
(
DMI_PRODUCT_NAME
,
"LifeBook S Series"
),
},
},
{
.
ident
=
"Fujitsu Lifebook S6230"
,
.
matches
=
{
DMI_MATCH
(
DMI_SYS_VENDOR
,
"FUJITSU"
),
DMI_MATCH
(
DMI_PRODUCT_NAME
,
"LifeBook S6230"
),
},
},
{
.
ident
=
"Fujitsu T70H"
,
.
matches
=
{
...
...
@@ -121,6 +130,13 @@ static struct dmi_system_id __initdata i8042_dmi_nomux_table[] = {
DMI_MATCH
(
DMI_PRODUCT_NAME
,
"FMVLT70H"
),
},
},
{
.
ident
=
"Toshiba P10"
,
.
matches
=
{
DMI_MATCH
(
DMI_SYS_VENDOR
,
"TOSHIBA"
),
DMI_MATCH
(
DMI_PRODUCT_NAME
,
"Satellite P10"
),
},
},
{
}
};
...
...
@@ -215,11 +231,15 @@ static struct pnp_driver i8042_pnp_aux_driver = {
static
void
i8042_pnp_exit
(
void
)
{
if
(
i8042_pnp_kbd_registered
)
if
(
i8042_pnp_kbd_registered
)
{
i8042_pnp_kbd_registered
=
0
;
pnp_unregister_driver
(
&
i8042_pnp_kbd_driver
);
}
if
(
i8042_pnp_aux_registered
)
if
(
i8042_pnp_aux_registered
)
{
i8042_pnp_aux_registered
=
0
;
pnp_unregister_driver
(
&
i8042_pnp_aux_driver
);
}
}
static
int
i8042_pnp_init
(
void
)
...
...
@@ -227,7 +247,7 @@ static int i8042_pnp_init(void)
int
result_kbd
,
result_aux
;
if
(
i8042_nopnp
)
{
printk
(
"i8042: PNP detection disabled
\n
"
);
printk
(
KERN_INFO
"i8042: PNP detection disabled
\n
"
);
return
0
;
}
...
...
@@ -241,7 +261,7 @@ static int i8042_pnp_init(void)
#if defined(__ia64__)
return
-
ENODEV
;
#else
printk
(
KERN_
WARNING
"PNP: No PS/2 controller found. Probing ports directly.
\n
"
);
printk
(
KERN_
INFO
"PNP: No PS/2 controller found. Probing ports directly.
\n
"
);
return
0
;
#endif
}
...
...
@@ -265,7 +285,7 @@ static int i8042_pnp_init(void)
i8042_pnp_kbd_irq
=
i8042_kbd_irq
;
}
if
(
result_aux
>
0
&&
!
i8042_pnp_aux_irq
)
{
if
(
!
i8042_pnp_aux_irq
)
{
printk
(
KERN_WARNING
"PNP: PS/2 controller doesn't have AUX irq; using default %#x
\n
"
,
i8042_aux_irq
);
i8042_pnp_aux_irq
=
i8042_aux_irq
;
}
...
...
drivers/input/serio/i8042.c
浏览文件 @
45b30105
...
...
@@ -698,6 +698,26 @@ static void i8042_timer_func(unsigned long data)
i8042_interrupt
(
0
,
NULL
,
NULL
);
}
static
int
i8042_ctl_test
(
void
)
{
unsigned
char
param
;
if
(
!
i8042_reset
)
return
0
;
if
(
i8042_command
(
&
param
,
I8042_CMD_CTL_TEST
))
{
printk
(
KERN_ERR
"i8042.c: i8042 controller self test timeout.
\n
"
);
return
-
1
;
}
if
(
param
!=
I8042_RET_CTL_TEST
)
{
printk
(
KERN_ERR
"i8042.c: i8042 controller selftest failed. (%#x != %#x)
\n
"
,
param
,
I8042_RET_CTL_TEST
);
return
-
1
;
}
return
0
;
}
/*
* i8042_controller init initializes the i8042 controller, and,
...
...
@@ -719,21 +739,8 @@ static int i8042_controller_init(void)
return
-
1
;
}
if
(
i8042_reset
)
{
unsigned
char
param
;
if
(
i8042_command
(
&
param
,
I8042_CMD_CTL_TEST
))
{
printk
(
KERN_ERR
"i8042.c: i8042 controller self test timeout.
\n
"
);
return
-
1
;
}
if
(
param
!=
I8042_RET_CTL_TEST
)
{
printk
(
KERN_ERR
"i8042.c: i8042 controller selftest failed. (%#x != %#x)
\n
"
,
param
,
I8042_RET_CTL_TEST
);
return
-
1
;
}
}
if
(
i8042_ctl_test
())
return
-
1
;
/*
* Save the CTR for restoral on unload / reboot.
...
...
@@ -802,15 +809,11 @@ static int i8042_controller_init(void)
*/
static
void
i8042_controller_reset
(
void
)
{
unsigned
char
param
;
/*
* Reset the controller if requested.
*/
if
(
i8042_reset
)
if
(
i8042_command
(
&
param
,
I8042_CMD_CTL_TEST
))
printk
(
KERN_ERR
"i8042.c: i8042 controller reset timeout.
\n
"
);
i8042_ctl_test
();
/*
* Disable MUX mode if present.
...
...
@@ -922,8 +925,11 @@ static int i8042_resume(struct device *dev, u32 level)
if
(
level
!=
RESUME_ENABLE
)
return
0
;
if
(
i8042_controller_init
())
{
printk
(
KERN_ERR
"i8042: resume failed
\n
"
);
if
(
i8042_ctl_test
())
return
-
1
;
if
(
i8042_command
(
&
i8042_ctr
,
I8042_CMD_CTL_WCTR
))
{
printk
(
KERN_ERR
"i8042: Can't write CTR
\n
"
);
return
-
1
;
}
...
...
drivers/input/touchscreen/gunze.c
浏览文件 @
45b30105
...
...
@@ -68,8 +68,7 @@ static void gunze_process_packet(struct gunze* gunze, struct pt_regs *regs)
if
(
gunze
->
idx
!=
GUNZE_MAX_LENGTH
||
gunze
->
data
[
5
]
!=
','
||
(
gunze
->
data
[
0
]
!=
'T'
&&
gunze
->
data
[
0
]
!=
'R'
))
{
gunze
->
data
[
10
]
=
0
;
printk
(
KERN_WARNING
"gunze.c: bad packet: >%s<
\n
"
,
gunze
->
data
);
printk
(
KERN_WARNING
"gunze.c: bad packet: >%.*s<
\n
"
,
GUNZE_MAX_LENGTH
,
gunze
->
data
);
return
;
}
...
...
include/linux/gameport.h
浏览文件 @
45b30105
...
...
@@ -67,6 +67,8 @@ int gameport_open(struct gameport *gameport, struct gameport_driver *drv, int mo
void
gameport_close
(
struct
gameport
*
gameport
);
void
gameport_rescan
(
struct
gameport
*
gameport
);
#if defined(CONFIG_GAMEPORT) || (defined(MODULE) && defined(CONFIG_GAMEPORT_MODULE))
void
__gameport_register_port
(
struct
gameport
*
gameport
,
struct
module
*
owner
);
static
inline
void
gameport_register_port
(
struct
gameport
*
gameport
)
{
...
...
@@ -75,6 +77,29 @@ static inline void gameport_register_port(struct gameport *gameport)
void
gameport_unregister_port
(
struct
gameport
*
gameport
);
void
gameport_set_phys
(
struct
gameport
*
gameport
,
const
char
*
fmt
,
...)
__attribute__
((
format
(
printf
,
2
,
3
)));
#else
static
inline
void
gameport_register_port
(
struct
gameport
*
gameport
)
{
return
;
}
static
inline
void
gameport_unregister_port
(
struct
gameport
*
gameport
)
{
return
;
}
static
inline
void
gameport_set_phys
(
struct
gameport
*
gameport
,
const
char
*
fmt
,
...)
{
return
;
}
#endif
static
inline
struct
gameport
*
gameport_allocate_port
(
void
)
{
struct
gameport
*
gameport
=
kcalloc
(
1
,
sizeof
(
struct
gameport
),
GFP_KERNEL
);
...
...
@@ -92,9 +117,6 @@ static inline void gameport_set_name(struct gameport *gameport, const char *name
strlcpy
(
gameport
->
name
,
name
,
sizeof
(
gameport
->
name
));
}
void
gameport_set_phys
(
struct
gameport
*
gameport
,
const
char
*
fmt
,
...)
__attribute__
((
format
(
printf
,
2
,
3
)));
/*
* Use the following fucntions to manipulate gameport's per-port
* driver-specific data.
...
...
sound/oss/Kconfig
浏览文件 @
45b30105
...
...
@@ -112,7 +112,7 @@ config SOUND_BCM_CS4297A
config SOUND_ES1370
tristate "Ensoniq AudioPCI (ES1370)"
depends on SOUND_PRIME!=n && SOUND && PCI
&& SOUND_GAMEPORT
depends on SOUND_PRIME!=n && SOUND && PCI
help
Say Y or M if you have a PCI sound card utilizing the Ensoniq
ES1370 chipset, such as Ensoniq's AudioPCI (non-97). To find
...
...
@@ -125,7 +125,7 @@ config SOUND_ES1370
config SOUND_ES1371
tristate "Creative Ensoniq AudioPCI 97 (ES1371)"
depends on SOUND_PRIME!=n && SOUND && PCI
&& SOUND_GAMEPORT
depends on SOUND_PRIME!=n && SOUND && PCI
help
Say Y or M if you have a PCI sound card utilizing the Ensoniq
ES1371 chipset, such as Ensoniq's AudioPCI97. To find out if
...
...
@@ -138,7 +138,7 @@ config SOUND_ES1371
config SOUND_ESSSOLO1
tristate "ESS Technology Solo1"
depends on SOUND_PRIME!=n && SOUND &&
SOUND_GAMEPORT &&
PCI
depends on SOUND_PRIME!=n && SOUND && PCI
help
Say Y or M if you have a PCI sound card utilizing the ESS Technology
Solo1 chip. To find out if your sound card uses a
...
...
@@ -179,7 +179,7 @@ config SOUND_HARMONY
config SOUND_SONICVIBES
tristate "S3 SonicVibes"
depends on SOUND_PRIME!=n && SOUND
&& SOUND_GAMEPORT
depends on SOUND_PRIME!=n && SOUND
help
Say Y or M if you have a PCI sound card utilizing the S3
SonicVibes chipset. To find out if your sound card uses a
...
...
@@ -226,7 +226,7 @@ config SOUND_AU1550_AC97
config SOUND_TRIDENT
tristate "Trident 4DWave DX/NX, SiS 7018 or ALi 5451 PCI Audio Core"
depends on SOUND_PRIME!=n && SOUND
&& SOUND_GAMEPORT
depends on SOUND_PRIME!=n && SOUND
---help---
Say Y or M if you have a PCI sound card utilizing the Trident
4DWave-DX/NX chipset or your mother board chipset has SiS 7018
...
...
@@ -739,7 +739,7 @@ config SOUND_NM256
config SOUND_MAD16
tristate "OPTi MAD16 and/or Mozart based cards"
depends on SOUND_OSS
&& SOUND_GAMEPORT
depends on SOUND_OSS
---help---
Answer Y if your card has a Mozart (OAK OTI-601) or MAD16 (OPTi
82C928 or 82C929 or 82C931) audio interface chip. These chips are
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录