Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
3e097d12
cloud-kernel
项目概览
openanolis
/
cloud-kernel
1 年多 前同步成功
通知
160
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看板
提交
3e097d12
编写于
9月 01, 2015
作者:
J
Jiri Kosina
浏览文件
操作
浏览文件
下载
差异文件
Merge branches 'for-4.2/upstream-fixes-devm-fixed' and 'for-4.3/upstream' into for-linus
上级
0be01712
c9b57724
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
34 addition
and
12 deletion
+34
-12
drivers/hid/hid-core.c
drivers/hid/hid-core.c
+19
-0
drivers/hid/hid-ids.h
drivers/hid/hid-ids.h
+2
-1
drivers/hid/hid-input.c
drivers/hid/hid-input.c
+4
-1
drivers/hid/usbhid/hid-core.c
drivers/hid/usbhid/hid-core.c
+3
-2
drivers/hid/usbhid/hid-quirks.c
drivers/hid/usbhid/hid-quirks.c
+2
-1
drivers/hid/wacom_sys.c
drivers/hid/wacom_sys.c
+4
-7
未找到文件。
drivers/hid/hid-core.c
浏览文件 @
3e097d12
...
...
@@ -427,6 +427,7 @@ static int hid_parser_local(struct hid_parser *parser, struct hid_item *item)
{
__u32
data
;
unsigned
n
;
__u32
count
;
data
=
item_udata
(
item
);
...
...
@@ -490,6 +491,24 @@ static int hid_parser_local(struct hid_parser *parser, struct hid_item *item)
if
(
item
->
size
<=
2
)
data
=
(
parser
->
global
.
usage_page
<<
16
)
+
data
;
count
=
data
-
parser
->
local
.
usage_minimum
;
if
(
count
+
parser
->
local
.
usage_index
>=
HID_MAX_USAGES
)
{
/*
* We do not warn if the name is not set, we are
* actually pre-scanning the device.
*/
if
(
dev_name
(
&
parser
->
device
->
dev
))
hid_warn
(
parser
->
device
,
"ignoring exceeding usage max
\n
"
);
data
=
HID_MAX_USAGES
-
parser
->
local
.
usage_index
+
parser
->
local
.
usage_minimum
-
1
;
if
(
data
<=
0
)
{
hid_err
(
parser
->
device
,
"no more usage index available
\n
"
);
return
-
1
;
}
}
for
(
n
=
parser
->
local
.
usage_minimum
;
n
<=
data
;
n
++
)
if
(
hid_add_usage
(
parser
,
n
))
{
dbg_hid
(
"hid_add_usage failed
\n
"
);
...
...
drivers/hid/hid-ids.h
浏览文件 @
3e097d12
...
...
@@ -922,7 +922,8 @@
#define USB_DEVICE_ID_TOUCHPACK_RTS 0x1688
#define USB_VENDOR_ID_TPV 0x25aa
#define USB_DEVICE_ID_TPV_OPTICAL_TOUCHSCREEN 0x8883
#define USB_DEVICE_ID_TPV_OPTICAL_TOUCHSCREEN_8882 0x8882
#define USB_DEVICE_ID_TPV_OPTICAL_TOUCHSCREEN_8883 0x8883
#define USB_VENDOR_ID_TURBOX 0x062a
#define USB_DEVICE_ID_TURBOX_KEYBOARD 0x0201
...
...
drivers/hid/hid-input.c
浏览文件 @
3e097d12
...
...
@@ -1166,8 +1166,11 @@ void hidinput_hid_event(struct hid_device *hid, struct hid_field *field, struct
input_event
(
input
,
usage
->
type
,
usage
->
code
,
value
);
if
((
field
->
flags
&
HID_MAIN_ITEM_RELATIVE
)
&&
(
usage
->
type
==
EV_KEY
))
if
((
field
->
flags
&
HID_MAIN_ITEM_RELATIVE
)
&&
usage
->
type
==
EV_KEY
&&
value
)
{
input_sync
(
input
);
input_event
(
input
,
usage
->
type
,
usage
->
code
,
0
);
}
}
void
hidinput_report_event
(
struct
hid_device
*
hid
,
struct
hid_report
*
report
)
...
...
drivers/hid/usbhid/hid-core.c
浏览文件 @
3e097d12
...
...
@@ -164,7 +164,7 @@ static void hid_io_error(struct hid_device *hid)
if
(
time_after
(
jiffies
,
usbhid
->
stop_retry
))
{
/* Retries failed, so do a port reset unless we lack bandwidth*/
if
(
test_bit
(
HID_NO_BANDWIDTH
,
&
usbhid
->
iofl
)
if
(
!
test_bit
(
HID_NO_BANDWIDTH
,
&
usbhid
->
iofl
)
&&
!
test_and_set_bit
(
HID_RESET_PENDING
,
&
usbhid
->
iofl
))
{
schedule_work
(
&
usbhid
->
reset_work
);
...
...
@@ -710,7 +710,8 @@ int usbhid_open(struct hid_device *hid)
* Wait 50 msec for the queue to empty before allowing events
* to go through hid.
*/
msleep
(
50
);
if
(
res
==
0
&&
!
(
hid
->
quirks
&
HID_QUIRK_ALWAYS_POLL
))
msleep
(
50
);
clear_bit
(
HID_RESUME_RUNNING
,
&
usbhid
->
iofl
);
}
done:
...
...
drivers/hid/usbhid/hid-quirks.c
浏览文件 @
3e097d12
...
...
@@ -117,7 +117,8 @@ static const struct hid_blacklist {
{
USB_VENDOR_ID_SUN
,
USB_DEVICE_ID_RARITAN_KVM_DONGLE
,
HID_QUIRK_NOGET
},
{
USB_VENDOR_ID_SYMBOL
,
USB_DEVICE_ID_SYMBOL_SCANNER_1
,
HID_QUIRK_NOGET
},
{
USB_VENDOR_ID_SYMBOL
,
USB_DEVICE_ID_SYMBOL_SCANNER_2
,
HID_QUIRK_NOGET
},
{
USB_VENDOR_ID_TPV
,
USB_DEVICE_ID_TPV_OPTICAL_TOUCHSCREEN
,
HID_QUIRK_NOGET
},
{
USB_VENDOR_ID_TPV
,
USB_DEVICE_ID_TPV_OPTICAL_TOUCHSCREEN_8882
,
HID_QUIRK_NOGET
},
{
USB_VENDOR_ID_TPV
,
USB_DEVICE_ID_TPV_OPTICAL_TOUCHSCREEN_8883
,
HID_QUIRK_NOGET
},
{
USB_VENDOR_ID_TURBOX
,
USB_DEVICE_ID_TURBOX_KEYBOARD
,
HID_QUIRK_NOGET
},
{
USB_VENDOR_ID_UCLOGIC
,
USB_DEVICE_ID_UCLOGIC_TABLET_KNA5
,
HID_QUIRK_MULTI_INPUT
},
{
USB_VENDOR_ID_UCLOGIC
,
USB_DEVICE_ID_UCLOGIC_TABLET_TWA60
,
HID_QUIRK_MULTI_INPUT
},
...
...
drivers/hid/wacom_sys.c
浏览文件 @
3e097d12
...
...
@@ -335,7 +335,7 @@ static int wacom_set_device_mode(struct hid_device *hdev, int report_id,
if
(
error
>=
0
)
error
=
wacom_get_report
(
hdev
,
HID_FEATURE_REPORT
,
rep_data
,
length
,
1
);
}
while
(
(
error
<
0
||
rep_data
[
1
]
!=
mode
)
&&
limit
++
<
WAC_MSG_RETRIES
);
}
while
(
error
>=
0
&&
rep_data
[
1
]
!=
mode
&&
limit
++
<
WAC_MSG_RETRIES
);
kfree
(
rep_data
);
...
...
@@ -1149,12 +1149,9 @@ static void wacom_free_inputs(struct wacom *wacom)
{
struct
wacom_wac
*
wacom_wac
=
&
(
wacom
->
wacom_wac
);
if
(
wacom_wac
->
pen_input
)
input_free_device
(
wacom_wac
->
pen_input
);
if
(
wacom_wac
->
touch_input
)
input_free_device
(
wacom_wac
->
touch_input
);
if
(
wacom_wac
->
pad_input
)
input_free_device
(
wacom_wac
->
pad_input
);
input_free_device
(
wacom_wac
->
pen_input
);
input_free_device
(
wacom_wac
->
touch_input
);
input_free_device
(
wacom_wac
->
pad_input
);
wacom_wac
->
pen_input
=
NULL
;
wacom_wac
->
touch_input
=
NULL
;
wacom_wac
->
pad_input
=
NULL
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录