Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
3abee352
Commit
3abee352
authored
Mar 20, 2012
by
Jiri Kosina
Browse files
Options
Browse Files
Download
Plain Diff
Merge branches 'battery-scope', 'logitech' and 'multitouch' into for-linus
parents
550cf00d
45d9c273
76503166
9e87f22a
Changes
7
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
204 additions
and
59 deletions
+204
-59
drivers/hid/Kconfig
drivers/hid/Kconfig
+2
-0
drivers/hid/hid-core.c
drivers/hid/hid-core.c
+13
-3
drivers/hid/hid-ids.h
drivers/hid/hid-ids.h
+15
-1
drivers/hid/hid-input.c
drivers/hid/hid-input.c
+8
-1
drivers/hid/hid-logitech-dj.c
drivers/hid/hid-logitech-dj.c
+1
-1
drivers/hid/hid-multitouch.c
drivers/hid/hid-multitouch.c
+164
-53
drivers/hid/usbhid/hid-quirks.c
drivers/hid/usbhid/hid-quirks.c
+1
-0
No files found.
drivers/hid/Kconfig
View file @
3abee352
...
@@ -354,7 +354,9 @@ config HID_MULTITOUCH
...
@@ -354,7 +354,9 @@ config HID_MULTITOUCH
- LG Display panels (Dell ST2220Tc)
- LG Display panels (Dell ST2220Tc)
- Lumio CrystalTouch panels
- Lumio CrystalTouch panels
- MosArt dual-touch panels
- MosArt dual-touch panels
- Panasonic multitouch panels
- PenMount dual touch panels
- PenMount dual touch panels
- Perixx Peripad 701 touchpad
- PixArt optical touch screen
- PixArt optical touch screen
- Pixcir dual touch panels
- Pixcir dual touch panels
- Quanta panels
- Quanta panels
...
...
drivers/hid/hid-core.c
View file @
3abee352
...
@@ -1232,7 +1232,6 @@ int hid_connect(struct hid_device *hdev, unsigned int connect_mask)
...
@@ -1232,7 +1232,6 @@ int hid_connect(struct hid_device *hdev, unsigned int connect_mask)
hdev
->
claimed
|=
HID_CLAIMED_INPUT
;
hdev
->
claimed
|=
HID_CLAIMED_INPUT
;
if
(
hdev
->
quirks
&
HID_QUIRK_MULTITOUCH
)
{
if
(
hdev
->
quirks
&
HID_QUIRK_MULTITOUCH
)
{
/* this device should be handled by hid-multitouch, skip it */
/* this device should be handled by hid-multitouch, skip it */
hdev
->
quirks
&=
~
HID_QUIRK_MULTITOUCH
;
return
-
ENODEV
;
return
-
ENODEV
;
}
}
...
@@ -1409,6 +1408,8 @@ static const struct hid_device_id hid_have_special_driver[] = {
...
@@ -1409,6 +1408,8 @@ static const struct hid_device_id hid_have_special_driver[] = {
{
HID_USB_DEVICE
(
USB_VENDOR_ID_DWAV
,
USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_480D
)
},
{
HID_USB_DEVICE
(
USB_VENDOR_ID_DWAV
,
USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_480D
)
},
{
HID_USB_DEVICE
(
USB_VENDOR_ID_DWAV
,
USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_480E
)
},
{
HID_USB_DEVICE
(
USB_VENDOR_ID_DWAV
,
USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_480E
)
},
{
HID_USB_DEVICE
(
USB_VENDOR_ID_DWAV
,
USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_720C
)
},
{
HID_USB_DEVICE
(
USB_VENDOR_ID_DWAV
,
USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_720C
)
},
{
HID_USB_DEVICE
(
USB_VENDOR_ID_DWAV
,
USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7224
)
},
{
HID_USB_DEVICE
(
USB_VENDOR_ID_DWAV
,
USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_725E
)
},
{
HID_USB_DEVICE
(
USB_VENDOR_ID_DWAV
,
USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_726B
)
},
{
HID_USB_DEVICE
(
USB_VENDOR_ID_DWAV
,
USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_726B
)
},
{
HID_USB_DEVICE
(
USB_VENDOR_ID_DWAV
,
USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_72A1
)
},
{
HID_USB_DEVICE
(
USB_VENDOR_ID_DWAV
,
USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_72A1
)
},
{
HID_USB_DEVICE
(
USB_VENDOR_ID_DWAV
,
USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7302
)
},
{
HID_USB_DEVICE
(
USB_VENDOR_ID_DWAV
,
USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7302
)
},
...
@@ -1501,6 +1502,8 @@ static const struct hid_device_id hid_have_special_driver[] = {
...
@@ -1501,6 +1502,8 @@ static const struct hid_device_id hid_have_special_driver[] = {
{
HID_USB_DEVICE
(
USB_VENDOR_ID_NTRIG
,
USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_18
)
},
{
HID_USB_DEVICE
(
USB_VENDOR_ID_NTRIG
,
USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_18
)
},
{
HID_USB_DEVICE
(
USB_VENDOR_ID_ORTEK
,
USB_DEVICE_ID_ORTEK_PKB1700
)
},
{
HID_USB_DEVICE
(
USB_VENDOR_ID_ORTEK
,
USB_DEVICE_ID_ORTEK_PKB1700
)
},
{
HID_USB_DEVICE
(
USB_VENDOR_ID_ORTEK
,
USB_DEVICE_ID_ORTEK_WKB2000
)
},
{
HID_USB_DEVICE
(
USB_VENDOR_ID_ORTEK
,
USB_DEVICE_ID_ORTEK_WKB2000
)
},
{
HID_USB_DEVICE
(
USB_VENDOR_ID_PANASONIC
,
USB_DEVICE_ID_PANABOARD_UBT780
)
},
{
HID_USB_DEVICE
(
USB_VENDOR_ID_PANASONIC
,
USB_DEVICE_ID_PANABOARD_UBT880
)
},
{
HID_USB_DEVICE
(
USB_VENDOR_ID_PENMOUNT
,
USB_DEVICE_ID_PENMOUNT_PCI
)
},
{
HID_USB_DEVICE
(
USB_VENDOR_ID_PENMOUNT
,
USB_DEVICE_ID_PENMOUNT_PCI
)
},
{
HID_USB_DEVICE
(
USB_VENDOR_ID_PETALYNX
,
USB_DEVICE_ID_PETALYNX_MAXTER_REMOTE
)
},
{
HID_USB_DEVICE
(
USB_VENDOR_ID_PETALYNX
,
USB_DEVICE_ID_PETALYNX_MAXTER_REMOTE
)
},
{
HID_USB_DEVICE
(
USB_VENDOR_ID_PIXART
,
USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN
)
},
{
HID_USB_DEVICE
(
USB_VENDOR_ID_PIXART
,
USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN
)
},
...
@@ -1663,6 +1666,10 @@ static int hid_bus_match(struct device *dev, struct device_driver *drv)
...
@@ -1663,6 +1666,10 @@ static int hid_bus_match(struct device *dev, struct device_driver *drv)
struct
hid_driver
*
hdrv
=
container_of
(
drv
,
struct
hid_driver
,
driver
);
struct
hid_driver
*
hdrv
=
container_of
(
drv
,
struct
hid_driver
,
driver
);
struct
hid_device
*
hdev
=
container_of
(
dev
,
struct
hid_device
,
dev
);
struct
hid_device
*
hdev
=
container_of
(
dev
,
struct
hid_device
,
dev
);
if
((
hdev
->
quirks
&
HID_QUIRK_MULTITOUCH
)
&&
!
strncmp
(
hdrv
->
name
,
"hid-multitouch"
,
14
))
return
1
;
if
(
!
hid_match_device
(
hdev
,
hdrv
))
if
(
!
hid_match_device
(
hdev
,
hdrv
))
return
0
;
return
0
;
...
@@ -1687,8 +1694,11 @@ static int hid_device_probe(struct device *dev)
...
@@ -1687,8 +1694,11 @@ static int hid_device_probe(struct device *dev)
if
(
!
hdev
->
driver
)
{
if
(
!
hdev
->
driver
)
{
id
=
hid_match_device
(
hdev
,
hdrv
);
id
=
hid_match_device
(
hdev
,
hdrv
);
if
(
id
==
NULL
)
{
if
(
id
==
NULL
)
{
ret
=
-
ENODEV
;
if
(
!
((
hdev
->
quirks
&
HID_QUIRK_MULTITOUCH
)
&&
goto
unlock
;
!
strncmp
(
hdrv
->
name
,
"hid-multitouch"
,
14
)))
{
ret
=
-
ENODEV
;
goto
unlock
;
}
}
}
hdev
->
driver
=
hdrv
;
hdev
->
driver
=
hdrv
;
...
...
drivers/hid/hid-ids.h
View file @
3abee352
...
@@ -41,7 +41,7 @@
...
@@ -41,7 +41,7 @@
#define USB_VENDOR_ID_ACTIONSTAR 0x2101
#define USB_VENDOR_ID_ACTIONSTAR 0x2101
#define USB_DEVICE_ID_ACTIONSTAR_1011 0x1011
#define USB_DEVICE_ID_ACTIONSTAR_1011 0x1011
#define USB_VENDOR_ID_ADS_TECH
0x06e1
#define USB_VENDOR_ID_ADS_TECH 0x06e1
#define USB_DEVICE_ID_ADS_TECH_RADIO_SI470X 0xa155
#define USB_DEVICE_ID_ADS_TECH_RADIO_SI470X 0xa155
#define USB_VENDOR_ID_AFATECH 0x15a4
#define USB_VENDOR_ID_AFATECH 0x15a4
...
@@ -152,6 +152,7 @@
...
@@ -152,6 +152,7 @@
#define USB_VENDOR_ID_ATMEL 0x03eb
#define USB_VENDOR_ID_ATMEL 0x03eb
#define USB_DEVICE_ID_ATMEL_MULTITOUCH 0x211c
#define USB_DEVICE_ID_ATMEL_MULTITOUCH 0x211c
#define USB_DEVICE_ID_ATMEL_MXT_DIGITIZER 0x2118
#define USB_VENDOR_ID_AVERMEDIA 0x07ca
#define USB_VENDOR_ID_AVERMEDIA 0x07ca
#define USB_DEVICE_ID_AVER_FM_MR800 0xb800
#define USB_DEVICE_ID_AVER_FM_MR800 0xb800
...
@@ -240,11 +241,18 @@
...
@@ -240,11 +241,18 @@
#define USB_DEVICE_ID_EGALAX_TOUCHCONTROLLER 0x0001
#define USB_DEVICE_ID_EGALAX_TOUCHCONTROLLER 0x0001
#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_480D 0x480d
#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_480D 0x480d
#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_480E 0x480e
#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_480E 0x480e
#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7207 0x7207
#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_720C 0x720c
#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_720C 0x720c
#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7224 0x7224
#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_722A 0x722A
#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_725E 0x725e
#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7262 0x7262
#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_726B 0x726b
#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_726B 0x726b
#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_72AA 0x72aa
#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_72A1 0x72a1
#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_72A1 0x72a1
#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_72FA 0x72fa
#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_7302 0x7302
#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7349 0x7349
#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_A001 0xa001
#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_A001 0xa001
#define USB_VENDOR_ID_ELECOM 0x056e
#define USB_VENDOR_ID_ELECOM 0x056e
...
@@ -377,6 +385,7 @@
...
@@ -377,6 +385,7 @@
#define USB_VENDOR_ID_IDEACOM 0x1cb6
#define USB_VENDOR_ID_IDEACOM 0x1cb6
#define USB_DEVICE_ID_IDEACOM_IDC6650 0x6650
#define USB_DEVICE_ID_IDEACOM_IDC6650 0x6650
#define USB_DEVICE_ID_IDEACOM_IDC6651 0x6651
#define USB_VENDOR_ID_ILITEK 0x222a
#define USB_VENDOR_ID_ILITEK 0x222a
#define USB_DEVICE_ID_ILITEK_MULTITOUCH 0x0001
#define USB_DEVICE_ID_ILITEK_MULTITOUCH 0x0001
...
@@ -568,6 +577,10 @@
...
@@ -568,6 +577,10 @@
#define USB_DEVICE_ID_ORTEK_PKB1700 0x1700
#define USB_DEVICE_ID_ORTEK_PKB1700 0x1700
#define USB_DEVICE_ID_ORTEK_WKB2000 0x2000
#define USB_DEVICE_ID_ORTEK_WKB2000 0x2000
#define USB_VENDOR_ID_PANASONIC 0x04da
#define USB_DEVICE_ID_PANABOARD_UBT780 0x1044
#define USB_DEVICE_ID_PANABOARD_UBT880 0x104d
#define USB_VENDOR_ID_PANJIT 0x134c
#define USB_VENDOR_ID_PANJIT 0x134c
#define USB_VENDOR_ID_PANTHERLORD 0x0810
#define USB_VENDOR_ID_PANTHERLORD 0x0810
...
@@ -662,6 +675,7 @@
...
@@ -662,6 +675,7 @@
#define USB_VENDOR_ID_TOPSEED2 0x1784
#define USB_VENDOR_ID_TOPSEED2 0x1784
#define USB_DEVICE_ID_TOPSEED2_RF_COMBO 0x0004
#define USB_DEVICE_ID_TOPSEED2_RF_COMBO 0x0004
#define USB_DEVICE_ID_TOPSEED2_PERIPAD_701 0x0016
#define USB_VENDOR_ID_TOPMAX 0x0663
#define USB_VENDOR_ID_TOPMAX 0x0663
#define USB_DEVICE_ID_TOPMAX_COBRAPAD 0x0103
#define USB_DEVICE_ID_TOPMAX_COBRAPAD 0x0103
...
...
drivers/hid/hid-input.c
View file @
3abee352
...
@@ -279,7 +279,8 @@ static enum power_supply_property hidinput_battery_props[] = {
...
@@ -279,7 +279,8 @@ static enum power_supply_property hidinput_battery_props[] = {
POWER_SUPPLY_PROP_ONLINE
,
POWER_SUPPLY_PROP_ONLINE
,
POWER_SUPPLY_PROP_CAPACITY
,
POWER_SUPPLY_PROP_CAPACITY
,
POWER_SUPPLY_PROP_MODEL_NAME
,
POWER_SUPPLY_PROP_MODEL_NAME
,
POWER_SUPPLY_PROP_STATUS
POWER_SUPPLY_PROP_STATUS
,
POWER_SUPPLY_PROP_SCOPE
,
};
};
#define HID_BATTERY_QUIRK_PERCENT (1 << 0)
/* always reports percent */
#define HID_BATTERY_QUIRK_PERCENT (1 << 0)
/* always reports percent */
...
@@ -344,6 +345,10 @@ static int hidinput_get_battery_property(struct power_supply *psy,
...
@@ -344,6 +345,10 @@ static int hidinput_get_battery_property(struct power_supply *psy,
val
->
intval
=
POWER_SUPPLY_STATUS_DISCHARGING
;
val
->
intval
=
POWER_SUPPLY_STATUS_DISCHARGING
;
break
;
break
;
case
POWER_SUPPLY_PROP_SCOPE
:
val
->
intval
=
POWER_SUPPLY_SCOPE_DEVICE
;
break
;
default:
default:
ret
=
-
EINVAL
;
ret
=
-
EINVAL
;
break
;
break
;
...
@@ -403,6 +408,8 @@ static bool hidinput_setup_battery(struct hid_device *dev, unsigned report_type,
...
@@ -403,6 +408,8 @@ static bool hidinput_setup_battery(struct hid_device *dev, unsigned report_type,
battery
->
name
=
NULL
;
battery
->
name
=
NULL
;
}
}
power_supply_powers
(
battery
,
&
dev
->
dev
);
out:
out:
return
true
;
return
true
;
}
}
...
...
drivers/hid/hid-logitech-dj.c
View file @
3abee352
...
@@ -445,7 +445,7 @@ static int logi_dj_recv_switch_to_dj_mode(struct dj_receiver_dev *djrcv_dev,
...
@@ -445,7 +445,7 @@ static int logi_dj_recv_switch_to_dj_mode(struct dj_receiver_dev *djrcv_dev,
dj_report
.
report_id
=
REPORT_ID_DJ_SHORT
;
dj_report
.
report_id
=
REPORT_ID_DJ_SHORT
;
dj_report
.
device_index
=
0xFF
;
dj_report
.
device_index
=
0xFF
;
dj_report
.
report_type
=
REPORT_TYPE_CMD_SWITCH
;
dj_report
.
report_type
=
REPORT_TYPE_CMD_SWITCH
;
dj_report
.
report_params
[
CMD_SWITCH_PARAM_DEVBITFIELD
]
=
0x
1
F
;
dj_report
.
report_params
[
CMD_SWITCH_PARAM_DEVBITFIELD
]
=
0x
3
F
;
dj_report
.
report_params
[
CMD_SWITCH_PARAM_TIMEOUT_SECONDS
]
=
(
u8
)
timeout
;
dj_report
.
report_params
[
CMD_SWITCH_PARAM_TIMEOUT_SECONDS
]
=
(
u8
)
timeout
;
return
logi_dj_recv_send_report
(
djrcv_dev
,
&
dj_report
);
return
logi_dj_recv_send_report
(
djrcv_dev
,
&
dj_report
);
}
}
...
...
drivers/hid/hid-multitouch.c
View file @
3abee352
This diff is collapsed.
Click to expand it.
drivers/hid/usbhid/hid-quirks.c
View file @
3abee352
...
@@ -74,6 +74,7 @@ static const struct hid_blacklist {
...
@@ -74,6 +74,7 @@ static const struct hid_blacklist {
{
USB_VENDOR_ID_PIXART
,
USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN2
,
HID_QUIRK_NO_INIT_REPORTS
},
{
USB_VENDOR_ID_PIXART
,
USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN2
,
HID_QUIRK_NO_INIT_REPORTS
},
{
USB_VENDOR_ID_PRODIGE
,
USB_DEVICE_ID_PRODIGE_CORDLESS
,
HID_QUIRK_NOGET
},
{
USB_VENDOR_ID_PRODIGE
,
USB_DEVICE_ID_PRODIGE_CORDLESS
,
HID_QUIRK_NOGET
},
{
USB_VENDOR_ID_QUANTA
,
USB_DEVICE_ID_PIXART_IMAGING_INC_OPTICAL_TOUCH_SCREEN
,
HID_QUIRK_NOGET
},
{
USB_VENDOR_ID_QUANTA
,
USB_DEVICE_ID_PIXART_IMAGING_INC_OPTICAL_TOUCH_SCREEN
,
HID_QUIRK_NOGET
},
{
USB_VENDOR_ID_QUANTA
,
USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH_3008
,
HID_QUIRK_NOGET
},
{
USB_VENDOR_ID_SUN
,
USB_DEVICE_ID_RARITAN_KVM_DONGLE
,
HID_QUIRK_NOGET
},
{
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_1
,
HID_QUIRK_NOGET
},
{
USB_VENDOR_ID_SYMBOL
,
USB_DEVICE_ID_SYMBOL_SCANNER_2
,
HID_QUIRK_NOGET
},
{
USB_VENDOR_ID_SYMBOL
,
USB_DEVICE_ID_SYMBOL_SCANNER_2
,
HID_QUIRK_NOGET
},
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment