Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
cdcd3ac4
cloud-kernel
项目概览
openanolis
/
cloud-kernel
大约 1 年 前同步成功
通知
158
Star
36
Fork
7
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
10
列表
看板
标记
里程碑
合并请求
2
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
cloud-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
10
Issue
10
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
cdcd3ac4
编写于
10月 01, 2012
作者:
J
Jiri Kosina
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'multitouch' into for-linus
Conflicts: drivers/hid/hid-multitouch.c
上级
a3cbe10e
f5ff4e1e
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
65 addition
and
7 deletion
+65
-7
drivers/hid/hid-ids.h
drivers/hid/hid-ids.h
+5
-0
drivers/hid/hid-multitouch.c
drivers/hid/hid-multitouch.c
+60
-7
未找到文件。
drivers/hid/hid-ids.h
浏览文件 @
cdcd3ac4
...
...
@@ -268,7 +268,11 @@
#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_72FA 0x72fa
#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7302 0x7302
#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7349 0x7349
#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_73F7 0x73f7
#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_A001 0xa001
#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7224 0x7224
#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_72D0 0x72d0
#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_72C4 0x72c4
#define USB_VENDOR_ID_ELECOM 0x056e
#define USB_DEVICE_ID_ELECOM_BM084 0x0061
...
...
@@ -310,6 +314,7 @@
#define USB_VENDOR_ID_GENERAL_TOUCH 0x0dfc
#define USB_DEVICE_ID_GENERAL_TOUCH_WIN7_TWOFINGERS 0x0003
#define USB_DEVICE_ID_GENERAL_TOUCH_WIN8_PWT_TENFINGERS 0x0100
#define USB_VENDOR_ID_GLAB 0x06c2
#define USB_DEVICE_ID_4_PHIDGETSERVO_30 0x0038
...
...
drivers/hid/hid-multitouch.c
浏览文件 @
cdcd3ac4
...
...
@@ -117,6 +117,8 @@ struct mt_device {
#define MT_CLS_TOPSEED 0x0105
#define MT_CLS_PANASONIC 0x0106
#define MT_CLS_FLATFROG 0x0107
#define MT_CLS_GENERALTOUCH_TWOFINGERS 0x0108
#define MT_CLS_GENERALTOUCH_PWT_TENFINGERS 0x0109
#define MT_DEFAULT_MAXCONTACT 10
...
...
@@ -200,6 +202,17 @@ static struct mt_class mt_classes[] = {
{
.
name
=
MT_CLS_PANASONIC
,
.
quirks
=
MT_QUIRK_NOT_SEEN_MEANS_UP
,
.
maxcontacts
=
4
},
{
.
name
=
MT_CLS_GENERALTOUCH_TWOFINGERS
,
.
quirks
=
MT_QUIRK_NOT_SEEN_MEANS_UP
|
MT_QUIRK_VALID_IS_INRANGE
|
MT_QUIRK_SLOT_IS_CONTACTNUMBER
,
.
maxcontacts
=
2
},
{
.
name
=
MT_CLS_GENERALTOUCH_PWT_TENFINGERS
,
.
quirks
=
MT_QUIRK_NOT_SEEN_MEANS_UP
|
MT_QUIRK_SLOT_IS_CONTACTNUMBER
,
.
maxcontacts
=
10
},
{
.
name
=
MT_CLS_FLATFROG
,
.
quirks
=
MT_QUIRK_NOT_SEEN_MEANS_UP
|
...
...
@@ -682,12 +695,10 @@ static int mt_probe(struct hid_device *hdev, const struct hid_device_id *id)
struct
mt_device
*
td
;
struct
mt_class
*
mtclass
=
mt_classes
;
/* MT_CLS_DEFAULT */
if
(
id
)
{
for
(
i
=
0
;
mt_classes
[
i
].
name
;
i
++
)
{
if
(
id
->
driver_data
==
mt_classes
[
i
].
name
)
{
mtclass
=
&
(
mt_classes
[
i
]);
break
;
}
for
(
i
=
0
;
mt_classes
[
i
].
name
;
i
++
)
{
if
(
id
->
driver_data
==
mt_classes
[
i
].
name
)
{
mtclass
=
&
(
mt_classes
[
i
]);
break
;
}
}
...
...
@@ -747,6 +758,32 @@ static int mt_reset_resume(struct hid_device *hdev)
mt_set_input_mode
(
hdev
);
return
0
;
}
static
int
mt_resume
(
struct
hid_device
*
hdev
)
{
struct
usb_interface
*
intf
;
struct
usb_host_interface
*
interface
;
struct
usb_device
*
dev
;
if
(
hdev
->
bus
!=
BUS_USB
)
return
0
;
intf
=
to_usb_interface
(
hdev
->
dev
.
parent
);
interface
=
intf
->
cur_altsetting
;
dev
=
hid_to_usb_dev
(
hdev
);
/* Some Elan legacy devices require SET_IDLE to be set on resume.
* It should be safe to send it to other devices too.
* Tested on 3M, Stantum, Cypress, Zytronic, eGalax, and Elan panels. */
usb_control_msg
(
dev
,
usb_sndctrlpipe
(
dev
,
0
),
HID_REQ_SET_IDLE
,
USB_TYPE_CLASS
|
USB_RECIP_INTERFACE
,
0
,
interface
->
desc
.
bInterfaceNumber
,
NULL
,
0
,
USB_CTRL_SET_TIMEOUT
);
return
0
;
}
#endif
static
void
mt_remove
(
struct
hid_device
*
hdev
)
...
...
@@ -862,9 +899,21 @@ static const struct hid_device_id mt_devices[] = {
{
.
driver_data
=
MT_CLS_EGALAX_SERIAL
,
MT_USB_DEVICE
(
USB_VENDOR_ID_DWAV
,
USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7349
)
},
{
.
driver_data
=
MT_CLS_EGALAX_SERIAL
,
MT_USB_DEVICE
(
USB_VENDOR_ID_DWAV
,
USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_73F7
)
},
{
.
driver_data
=
MT_CLS_EGALAX_SERIAL
,
MT_USB_DEVICE
(
USB_VENDOR_ID_DWAV
,
USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_A001
)
},
{
.
driver_data
=
MT_CLS_EGALAX
,
HID_USB_DEVICE
(
USB_VENDOR_ID_DWAV
,
USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7224
)
},
{
.
driver_data
=
MT_CLS_EGALAX
,
HID_USB_DEVICE
(
USB_VENDOR_ID_DWAV
,
USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_72D0
)
},
{
.
driver_data
=
MT_CLS_EGALAX
,
HID_USB_DEVICE
(
USB_VENDOR_ID_DWAV
,
USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_72C4
)
},
/* Elo TouchSystems IntelliTouch Plus panel */
{
.
driver_data
=
MT_CLS_DUAL_NSMU_CONTACTID
,
...
...
@@ -877,9 +926,12 @@ static const struct hid_device_id mt_devices[] = {
USB_DEVICE_ID_MULTITOUCH_3200
)
},
/* GeneralTouch panel */
{
.
driver_data
=
MT_CLS_
DUAL_INRANGE_CONTACTNUMBER
,
{
.
driver_data
=
MT_CLS_
GENERALTOUCH_TWOFINGERS
,
MT_USB_DEVICE
(
USB_VENDOR_ID_GENERAL_TOUCH
,
USB_DEVICE_ID_GENERAL_TOUCH_WIN7_TWOFINGERS
)
},
{
.
driver_data
=
MT_CLS_GENERALTOUCH_PWT_TENFINGERS
,
MT_USB_DEVICE
(
USB_VENDOR_ID_GENERAL_TOUCH
,
USB_DEVICE_ID_GENERAL_TOUCH_WIN8_PWT_TENFINGERS
)
},
/* Gametel game controller */
{
.
driver_data
=
MT_CLS_DEFAULT
,
...
...
@@ -1077,6 +1129,7 @@ static struct hid_driver mt_driver = {
.
event
=
mt_event
,
#ifdef CONFIG_PM
.
reset_resume
=
mt_reset_resume
,
.
resume
=
mt_resume
,
#endif
};
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录