Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
raspberrypi-kernel
提交
3ee420ba
R
raspberrypi-kernel
项目概览
openeuler
/
raspberrypi-kernel
通知
13
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
raspberrypi-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
3ee420ba
编写于
12月 12, 2014
作者:
J
Jiri Kosina
浏览文件
操作
浏览文件
下载
差异文件
Merge branches 'for-3.18/upstream-fixes' and 'for-3.19/upstream' into for-linus
Conflicts: drivers/hid/hid-input.c
上级
a32c99e7
d1c7e29e
7bb9d643
变更
12
隐藏空白更改
内联
并排
Showing
12 changed file
with
50 addition
and
43 deletion
+50
-43
drivers/hid/Kconfig
drivers/hid/Kconfig
+2
-1
drivers/hid/hid-core.c
drivers/hid/hid-core.c
+10
-11
drivers/hid/hid-ids.h
drivers/hid/hid-ids.h
+1
-0
drivers/hid/hid-input.c
drivers/hid/hid-input.c
+1
-1
drivers/hid/hid-roccat-kone.c
drivers/hid/hid-roccat-kone.c
+5
-4
drivers/hid/hid-saitek.c
drivers/hid/hid-saitek.c
+3
-1
drivers/hid/i2c-hid/i2c-hid.c
drivers/hid/i2c-hid/i2c-hid.c
+1
-1
drivers/hid/usbhid/hid-core.c
drivers/hid/usbhid/hid-core.c
+24
-12
drivers/hid/usbhid/usbhid.h
drivers/hid/usbhid/usbhid.h
+1
-0
drivers/hid/wacom_sys.c
drivers/hid/wacom_sys.c
+1
-8
drivers/hid/wacom_wac.c
drivers/hid/wacom_wac.c
+1
-0
include/linux/hid.h
include/linux/hid.h
+0
-4
未找到文件。
drivers/hid/Kconfig
浏览文件 @
3ee420ba
...
...
@@ -629,7 +629,7 @@ config HID_ROCCAT
support for its special functionalities.
config HID_SAITEK
tristate "Saitek non-fully HID-compliant devices"
tristate "Saitek
(Mad Catz)
non-fully HID-compliant devices"
depends on HID
---help---
Support for Saitek devices that are not fully compliant with the
...
...
@@ -637,6 +637,7 @@ config HID_SAITEK
Supported devices:
- PS1000 Dual Analog Pad
- R.A.T.9 Gaming Mouse
- R.A.T.7 Gaming Mouse
- M.M.O.7 Gaming Mouse
...
...
drivers/hid/hid-core.c
浏览文件 @
3ee420ba
...
...
@@ -779,16 +779,6 @@ static int hid_scan_report(struct hid_device *hid)
(
hid
->
group
==
HID_GROUP_MULTITOUCH
))
hid
->
group
=
HID_GROUP_MULTITOUCH_WIN_8
;
/*
* Vendor specific handlings
*/
if
((
hid
->
vendor
==
USB_VENDOR_ID_SYNAPTICS
)
&&
(
hid
->
group
==
HID_GROUP_GENERIC
)
&&
/* only bind to the mouse interface of composite USB devices */
(
hid
->
bus
!=
BUS_USB
||
hid
->
type
==
HID_TYPE_USBMOUSE
))
/* hid-rmi should take care of them, not hid-generic */
hid
->
group
=
HID_GROUP_RMI
;
/*
* Vendor specific handlings
*/
...
...
@@ -796,6 +786,13 @@ static int hid_scan_report(struct hid_device *hid)
case
USB_VENDOR_ID_WACOM
:
hid
->
group
=
HID_GROUP_WACOM
;
break
;
case
USB_VENDOR_ID_SYNAPTICS
:
if
((
hid
->
group
==
HID_GROUP_GENERIC
)
&&
(
hid
->
bus
!=
BUS_USB
||
hid
->
type
==
HID_TYPE_USBMOUSE
))
/* hid-rmi should only bind to the mouse interface of
* composite USB devices */
hid
->
group
=
HID_GROUP_RMI
;
break
;
}
vfree
(
parser
);
...
...
@@ -1910,6 +1907,7 @@ static const struct hid_device_id hid_have_special_driver[] = {
{
HID_USB_DEVICE
(
USB_VENDOR_ID_SAITEK
,
USB_DEVICE_ID_SAITEK_PS1000
)
},
{
HID_USB_DEVICE
(
USB_VENDOR_ID_SAITEK
,
USB_DEVICE_ID_SAITEK_RAT7
)
},
{
HID_USB_DEVICE
(
USB_VENDOR_ID_SAITEK
,
USB_DEVICE_ID_SAITEK_MMO7
)
},
{
HID_USB_DEVICE
(
USB_VENDOR_ID_MADCATZ
,
USB_DEVICE_ID_MADCATZ_RAT9
)
},
#endif
{
HID_USB_DEVICE
(
USB_VENDOR_ID_SAMSUNG
,
USB_DEVICE_ID_SAMSUNG_IR_REMOTE
)
},
{
HID_USB_DEVICE
(
USB_VENDOR_ID_SAMSUNG
,
USB_DEVICE_ID_SAMSUNG_WIRELESS_KBD_MOUSE
)
},
...
...
@@ -2539,7 +2537,8 @@ int hid_add_device(struct hid_device *hdev)
* Scan generic devices for group information
*/
if
(
hid_ignore_special_drivers
||
!
hid_match_id
(
hdev
,
hid_have_special_driver
))
{
(
!
hdev
->
group
&&
!
hid_match_id
(
hdev
,
hid_have_special_driver
)))
{
ret
=
hid_scan_report
(
hdev
);
if
(
ret
)
hid_warn
(
hdev
,
"bad device descriptor (%d)
\n
"
,
ret
);
...
...
drivers/hid/hid-ids.h
浏览文件 @
3ee420ba
...
...
@@ -621,6 +621,7 @@
#define USB_VENDOR_ID_MADCATZ 0x0738
#define USB_DEVICE_ID_MADCATZ_BEATPAD 0x4540
#define USB_DEVICE_ID_MADCATZ_RAT9 0x1709
#define USB_VENDOR_ID_MCC 0x09db
#define USB_DEVICE_ID_MCC_PMD1024LS 0x0076
...
...
drivers/hid/hid-input.c
浏览文件 @
3ee420ba
...
...
@@ -872,7 +872,7 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel
case
0x2cb
:
map_key_clear
(
KEY_KBDINPUTASSIST_ACCEPT
);
break
;
case
0x2cc
:
map_key_clear
(
KEY_KBDINPUTASSIST_CANCEL
);
break
;
default:
goto
ignore
;
default:
map_key_clear
(
KEY_UNKNOWN
)
;
}
break
;
...
...
drivers/hid/hid-roccat-kone.c
浏览文件 @
3ee420ba
...
...
@@ -46,6 +46,7 @@ static void kone_profile_activated(struct kone_device *kone, uint new_profile)
static
void
kone_profile_report
(
struct
kone_device
*
kone
,
uint
new_profile
)
{
struct
kone_roccat_report
roccat_report
;
roccat_report
.
event
=
kone_mouse_event_switch_profile
;
roccat_report
.
value
=
new_profile
;
roccat_report
.
key
=
0
;
...
...
@@ -163,6 +164,7 @@ static int kone_set_settings(struct usb_device *usb_dev,
struct
kone_settings
const
*
settings
)
{
int
retval
;
retval
=
kone_send
(
usb_dev
,
kone_command_settings
,
settings
,
sizeof
(
struct
kone_settings
));
if
(
retval
)
...
...
@@ -387,7 +389,7 @@ static struct bin_attribute bin_attr_profile##number = { \
.read = kone_sysfs_read_profilex, \
.write = kone_sysfs_write_profilex, \
.private = &profile_numbers[number-1], \
}
;
}
PROFILE_ATTR
(
1
);
PROFILE_ATTR
(
2
);
PROFILE_ATTR
(
3
);
...
...
@@ -456,6 +458,7 @@ static ssize_t kone_sysfs_show_tcu(struct device *dev,
static
int
kone_tcu_command
(
struct
usb_device
*
usb_dev
,
int
number
)
{
unsigned
char
value
;
value
=
number
;
return
kone_send
(
usb_dev
,
kone_command_calibrate
,
&
value
,
1
);
}
...
...
@@ -697,10 +700,8 @@ static int kone_init_specials(struct hid_device *hdev)
==
USB_INTERFACE_PROTOCOL_MOUSE
)
{
kone
=
kzalloc
(
sizeof
(
*
kone
),
GFP_KERNEL
);
if
(
!
kone
)
{
hid_err
(
hdev
,
"can't alloc device descriptor
\n
"
);
if
(
!
kone
)
return
-
ENOMEM
;
}
hid_set_drvdata
(
hdev
,
kone
);
retval
=
kone_init_kone_device_struct
(
usb_dev
,
kone
);
...
...
drivers/hid/hid-saitek.c
浏览文件 @
3ee420ba
...
...
@@ -7,7 +7,7 @@
* (This module is based on "hid-ortek".)
* Copyright (c) 2012 Andreas Hübner
*
* R.A.T.7, M.M.O.7 (USB gaming mice):
* R.A.T.7,
R.A.T.9,
M.M.O.7 (USB gaming mice):
* Fixes the mode button which cycles through three constantly pressed
* buttons. All three press events are mapped to one button and the
* missing release event is generated immediately.
...
...
@@ -179,6 +179,8 @@ static const struct hid_device_id saitek_devices[] = {
.
driver_data
=
SAITEK_FIX_PS1000
},
{
HID_USB_DEVICE
(
USB_VENDOR_ID_SAITEK
,
USB_DEVICE_ID_SAITEK_RAT7
),
.
driver_data
=
SAITEK_RELEASE_MODE_RAT7
},
{
HID_USB_DEVICE
(
USB_VENDOR_ID_MADCATZ
,
USB_DEVICE_ID_MADCATZ_RAT9
),
.
driver_data
=
SAITEK_RELEASE_MODE_RAT7
},
{
HID_USB_DEVICE
(
USB_VENDOR_ID_SAITEK
,
USB_DEVICE_ID_SAITEK_MMO7
),
.
driver_data
=
SAITEK_RELEASE_MODE_MMO7
},
{
}
...
...
drivers/hid/i2c-hid/i2c-hid.c
浏览文件 @
3ee420ba
...
...
@@ -369,7 +369,7 @@ static int i2c_hid_hwreset(struct i2c_client *client)
static
void
i2c_hid_get_input
(
struct
i2c_hid
*
ihid
)
{
int
ret
,
ret_size
;
int
size
=
le16_to_cpu
(
ihid
->
hdesc
.
wMaxInputLength
)
;
int
size
=
ihid
->
bufsize
;
ret
=
i2c_master_recv
(
ihid
->
client
,
ihid
->
inbuf
,
size
);
if
(
ret
!=
size
)
{
...
...
drivers/hid/usbhid/hid-core.c
浏览文件 @
3ee420ba
...
...
@@ -278,18 +278,20 @@ static void hid_irq_in(struct urb *urb)
usbhid
->
retry_delay
=
0
;
if
((
hid
->
quirks
&
HID_QUIRK_ALWAYS_POLL
)
&&
!
hid
->
open
)
break
;
hid_input_report
(
urb
->
context
,
HID_INPUT_REPORT
,
urb
->
transfer_buffer
,
urb
->
actual_length
,
1
);
/*
* autosuspend refused while keys are pressed
* because most keyboards don't wake up when
* a key is released
*/
if
(
hid_check_keys_pressed
(
hid
))
set_bit
(
HID_KEYS_PRESSED
,
&
usbhid
->
iofl
);
else
clear_bit
(
HID_KEYS_PRESSED
,
&
usbhid
->
iofl
);
if
(
!
test_bit
(
HID_RESUME_RUNNING
,
&
usbhid
->
iofl
))
{
hid_input_report
(
urb
->
context
,
HID_INPUT_REPORT
,
urb
->
transfer_buffer
,
urb
->
actual_length
,
1
);
/*
* autosuspend refused while keys are pressed
* because most keyboards don't wake up when
* a key is released
*/
if
(
hid_check_keys_pressed
(
hid
))
set_bit
(
HID_KEYS_PRESSED
,
&
usbhid
->
iofl
);
else
clear_bit
(
HID_KEYS_PRESSED
,
&
usbhid
->
iofl
);
}
break
;
case
-
EPIPE
:
/* stall */
usbhid_mark_busy
(
usbhid
);
...
...
@@ -688,6 +690,7 @@ int usbhid_open(struct hid_device *hid)
goto
done
;
}
usbhid
->
intf
->
needs_remote_wakeup
=
1
;
set_bit
(
HID_RESUME_RUNNING
,
&
usbhid
->
iofl
);
res
=
hid_start_in
(
hid
);
if
(
res
)
{
if
(
res
!=
-
ENOSPC
)
{
...
...
@@ -701,6 +704,15 @@ int usbhid_open(struct hid_device *hid)
}
}
usb_autopm_put_interface
(
usbhid
->
intf
);
/*
* In case events are generated while nobody was listening,
* some are released when the device is re-opened.
* Wait 50 msec for the queue to empty before allowing events
* to go through hid.
*/
msleep
(
50
);
clear_bit
(
HID_RESUME_RUNNING
,
&
usbhid
->
iofl
);
}
done:
mutex_unlock
(
&
hid_open_mut
);
...
...
drivers/hid/usbhid/usbhid.h
浏览文件 @
3ee420ba
...
...
@@ -52,6 +52,7 @@ struct usb_interface *usbhid_find_interface(int minor);
#define HID_STARTED 8
#define HID_KEYS_PRESSED 10
#define HID_NO_BANDWIDTH 11
#define HID_RESUME_RUNNING 12
/*
* USB-specific HID struct, to be pointed to
...
...
drivers/hid/wacom_sys.c
浏览文件 @
3ee420ba
...
...
@@ -70,22 +70,15 @@ static int wacom_raw_event(struct hid_device *hdev, struct hid_report *report,
static
int
wacom_open
(
struct
input_dev
*
dev
)
{
struct
wacom
*
wacom
=
input_get_drvdata
(
dev
);
int
retval
;
mutex_lock
(
&
wacom
->
lock
);
retval
=
hid_hw_open
(
wacom
->
hdev
);
mutex_unlock
(
&
wacom
->
lock
);
return
retval
;
return
hid_hw_open
(
wacom
->
hdev
)
;
}
static
void
wacom_close
(
struct
input_dev
*
dev
)
{
struct
wacom
*
wacom
=
input_get_drvdata
(
dev
);
mutex_lock
(
&
wacom
->
lock
);
hid_hw_close
(
wacom
->
hdev
);
mutex_unlock
(
&
wacom
->
lock
);
}
/*
...
...
drivers/hid/wacom_wac.c
浏览文件 @
3ee420ba
...
...
@@ -3026,6 +3026,7 @@ const struct hid_device_id wacom_ids[] = {
{
USB_DEVICE_WACOM
(
0x4004
)
},
{
USB_DEVICE_WACOM
(
0x5000
)
},
{
USB_DEVICE_WACOM
(
0x5002
)
},
{
USB_DEVICE_LENOVO
(
0x6004
)
},
{
USB_DEVICE_WACOM
(
HID_ANY_ID
)
},
{
}
...
...
include/linux/hid.h
浏览文件 @
3ee420ba
...
...
@@ -312,10 +312,6 @@ struct hid_item {
* Vendor specific HID device groups
*/
#define HID_GROUP_RMI 0x0100
/*
* Vendor specific HID device groups
*/
#define HID_GROUP_WACOM 0x0101
/*
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录