Skip to content

Commit fea9123

Browse files
committed
Merge tag 'input-for-v6.15-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
Pull input fixes from Dmitry Torokhov: - Synaptics touchpad on multiple laptops (Dynabook Portege X30L-G, Dynabook Portege X30-D, TUXEDO InfinityBook Pro 14 v5, Dell Precision M3800, HP Elitebook 850 G1) switched from PS/2 to SMBus mode - a number of new controllers added to xpad driver: HORI Drum controller, PowerA Fusion Pro 4, PowerA MOGA XP-Ultra controller, 8BitDo Ultimate 2 Wireless Controller, 8BitDo Ultimate 3-mode Controller, Hyperkin DuchesS Xbox One controller - fixes to xpad driver to properly handle Mad Catz JOYTECH NEO SE Advanced and PDP Mirror's Edge Official controllers - fixes to xpad driver to properly handle "Share" button on some controllers - a fix for device initialization timing and for waking up the controller in cyttsp5 driver - a fix for hisi_powerkey driver to properly wake up from s2idle state - other assorted cleanups and fixes * tag 'input-for-v6.15-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: Input: xpad - fix xpad_device sorting Input: xpad - add support for several more controllers Input: xpad - fix Share button on Xbox One controllers Input: xpad - fix two controller table values Input: hisi_powerkey - enable system-wakeup for s2idle Input: synaptics - enable InterTouch on Dell Precision M3800 Input: synaptics - enable InterTouch on TUXEDO InfinityBook Pro 14 v5 Input: synaptics - enable InterTouch on Dynabook Portege X30L-G Input: synaptics - enable InterTouch on Dynabook Portege X30-D Input: synaptics - enable SMBus for HP Elitebook 850 G1 Input: mtk-pmic-keys - fix possible null pointer dereference Input: xpad - add support for 8BitDo Ultimate 2 Wireless Controller Input: cyttsp5 - fix power control issue on wakeup MAINTAINERS: .mailmap: update Mattijs Korpershoek's email address dt-bindings: mediatek,mt6779-keypad: Update Mattijs' email address Input: stmpe-ts - use module alias instead of device table Input: cyttsp5 - ensure minimum reset pulse width Input: sparcspkr - avoid unannotated fall-through input/joystick: magellan: Mark __nonstring look-up table
2 parents f717acc + 93406e9 commit fea9123

File tree

11 files changed

+65
-38
lines changed

11 files changed

+65
-38
lines changed

.mailmap

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -485,6 +485,7 @@ Matthias Fuchs <socketcan@esd.eu> <matthias.fuchs@esd.eu>
485485
Matthieu Baerts <matttbe@kernel.org> <matthieu.baerts@tessares.net>
486486
Matthieu CASTET <castet.matthieu@free.fr>
487487
Matti Vaittinen <mazziesaccount@gmail.com> <matti.vaittinen@fi.rohmeurope.com>
488+
Mattijs Korpershoek <mkorpershoek@kernel.org> <mkorpershoek@baylibre.com>
488489
Matt Ranostay <matt@ranostay.sg> <matt.ranostay@konsulko.com>
489490
Matt Ranostay <matt@ranostay.sg> <matt@ranostay.consulting>
490491
Matt Ranostay <matt@ranostay.sg> Matthew Ranostay <mranostay@embeddedalley.com>

Documentation/devicetree/bindings/input/mediatek,mt6779-keypad.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
77
title: Mediatek's Keypad Controller
88

99
maintainers:
10-
- Mattijs Korpershoek <mkorpershoek@baylibre.com>
10+
- Mattijs Korpershoek <mkorpershoek@kernel.org>
1111

1212
allOf:
1313
- $ref: /schemas/input/matrix-keymap.yaml#

MAINTAINERS

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15072,7 +15072,7 @@ F: Documentation/devicetree/bindings/media/mediatek-jpeg-*.yaml
1507215072
F: drivers/media/platform/mediatek/jpeg/
1507315073

1507415074
MEDIATEK KEYPAD DRIVER
15075-
M: Mattijs Korpershoek <mkorpershoek@baylibre.com>
15075+
M: Mattijs Korpershoek <mkorpershoek@kernel.org>
1507615076
S: Supported
1507715077
F: Documentation/devicetree/bindings/input/mediatek,mt6779-keypad.yaml
1507815078
F: drivers/input/keyboard/mt6779-keypad.c

drivers/input/joystick/magellan.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ struct magellan {
4848

4949
static int magellan_crunch_nibbles(unsigned char *data, int count)
5050
{
51-
static unsigned char nibbles[16] __nonstring = "0AB3D56GH9:K<MN?";
51+
static const unsigned char nibbles[16] __nonstring = "0AB3D56GH9:K<MN?";
5252

5353
do {
5454
if (data[count] == nibbles[data[count] & 0xf])

drivers/input/joystick/xpad.c

Lines changed: 31 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -77,12 +77,13 @@
7777
* xbox d-pads should map to buttons, as is required for DDR pads
7878
* but we map them to axes when possible to simplify things
7979
*/
80-
#define MAP_DPAD_TO_BUTTONS (1 << 0)
81-
#define MAP_TRIGGERS_TO_BUTTONS (1 << 1)
82-
#define MAP_STICKS_TO_NULL (1 << 2)
83-
#define MAP_SELECT_BUTTON (1 << 3)
84-
#define MAP_PADDLES (1 << 4)
85-
#define MAP_PROFILE_BUTTON (1 << 5)
80+
#define MAP_DPAD_TO_BUTTONS BIT(0)
81+
#define MAP_TRIGGERS_TO_BUTTONS BIT(1)
82+
#define MAP_STICKS_TO_NULL BIT(2)
83+
#define MAP_SHARE_BUTTON BIT(3)
84+
#define MAP_PADDLES BIT(4)
85+
#define MAP_PROFILE_BUTTON BIT(5)
86+
#define MAP_SHARE_OFFSET BIT(6)
8687

8788
#define DANCEPAD_MAP_CONFIG (MAP_DPAD_TO_BUTTONS | \
8889
MAP_TRIGGERS_TO_BUTTONS | MAP_STICKS_TO_NULL)
@@ -135,14 +136,14 @@ static const struct xpad_device {
135136
{ 0x03f0, 0x048D, "HyperX Clutch", 0, XTYPE_XBOX360 }, /* wireless */
136137
{ 0x03f0, 0x0495, "HyperX Clutch Gladiate", 0, XTYPE_XBOXONE },
137138
{ 0x03f0, 0x07A0, "HyperX Clutch Gladiate RGB", 0, XTYPE_XBOXONE },
138-
{ 0x03f0, 0x08B6, "HyperX Clutch Gladiate", 0, XTYPE_XBOXONE }, /* v2 */
139+
{ 0x03f0, 0x08B6, "HyperX Clutch Gladiate", MAP_SHARE_BUTTON, XTYPE_XBOXONE }, /* v2 */
139140
{ 0x03f0, 0x09B4, "HyperX Clutch Tanto", 0, XTYPE_XBOXONE },
140141
{ 0x044f, 0x0f00, "Thrustmaster Wheel", 0, XTYPE_XBOX },
141142
{ 0x044f, 0x0f03, "Thrustmaster Wheel", 0, XTYPE_XBOX },
142143
{ 0x044f, 0x0f07, "Thrustmaster, Inc. Controller", 0, XTYPE_XBOX },
143-
{ 0x044f, 0xd01e, "ThrustMaster, Inc. ESWAP X 2 ELDEN RING EDITION", 0, XTYPE_XBOXONE },
144144
{ 0x044f, 0x0f10, "Thrustmaster Modena GT Wheel", 0, XTYPE_XBOX },
145145
{ 0x044f, 0xb326, "Thrustmaster Gamepad GP XID", 0, XTYPE_XBOX360 },
146+
{ 0x044f, 0xd01e, "ThrustMaster, Inc. ESWAP X 2 ELDEN RING EDITION", 0, XTYPE_XBOXONE },
146147
{ 0x045e, 0x0202, "Microsoft X-Box pad v1 (US)", 0, XTYPE_XBOX },
147148
{ 0x045e, 0x0285, "Microsoft X-Box pad (Japan)", 0, XTYPE_XBOX },
148149
{ 0x045e, 0x0287, "Microsoft Xbox Controller S", 0, XTYPE_XBOX },
@@ -159,7 +160,7 @@ static const struct xpad_device {
159160
{ 0x045e, 0x0719, "Xbox 360 Wireless Receiver", MAP_DPAD_TO_BUTTONS, XTYPE_XBOX360W },
160161
{ 0x045e, 0x0b00, "Microsoft X-Box One Elite 2 pad", MAP_PADDLES, XTYPE_XBOXONE },
161162
{ 0x045e, 0x0b0a, "Microsoft X-Box Adaptive Controller", MAP_PROFILE_BUTTON, XTYPE_XBOXONE },
162-
{ 0x045e, 0x0b12, "Microsoft Xbox Series S|X Controller", MAP_SELECT_BUTTON, XTYPE_XBOXONE },
163+
{ 0x045e, 0x0b12, "Microsoft Xbox Series S|X Controller", MAP_SHARE_BUTTON | MAP_SHARE_OFFSET, XTYPE_XBOXONE },
163164
{ 0x046d, 0xc21d, "Logitech Gamepad F310", 0, XTYPE_XBOX360 },
164165
{ 0x046d, 0xc21e, "Logitech Gamepad F510", 0, XTYPE_XBOX360 },
165166
{ 0x046d, 0xc21f, "Logitech Gamepad F710", 0, XTYPE_XBOX360 },
@@ -205,13 +206,13 @@ static const struct xpad_device {
205206
{ 0x0738, 0x9871, "Mad Catz Portable Drum", 0, XTYPE_XBOX360 },
206207
{ 0x0738, 0xb726, "Mad Catz Xbox controller - MW2", 0, XTYPE_XBOX360 },
207208
{ 0x0738, 0xb738, "Mad Catz MVC2TE Stick 2", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOX360 },
208-
{ 0x0738, 0xbeef, "Mad Catz JOYTECH NEO SE Advanced GamePad", XTYPE_XBOX360 },
209+
{ 0x0738, 0xbeef, "Mad Catz JOYTECH NEO SE Advanced GamePad", 0, XTYPE_XBOX360 },
209210
{ 0x0738, 0xcb02, "Saitek Cyborg Rumble Pad - PC/Xbox 360", 0, XTYPE_XBOX360 },
210211
{ 0x0738, 0xcb03, "Saitek P3200 Rumble Pad - PC/Xbox 360", 0, XTYPE_XBOX360 },
211212
{ 0x0738, 0xcb29, "Saitek Aviator Stick AV8R02", 0, XTYPE_XBOX360 },
212213
{ 0x0738, 0xf738, "Super SFIV FightStick TE S", 0, XTYPE_XBOX360 },
213214
{ 0x07ff, 0xffff, "Mad Catz GamePad", 0, XTYPE_XBOX360 },
214-
{ 0x0b05, 0x1a38, "ASUS ROG RAIKIRI", 0, XTYPE_XBOXONE },
215+
{ 0x0b05, 0x1a38, "ASUS ROG RAIKIRI", MAP_SHARE_BUTTON, XTYPE_XBOXONE },
215216
{ 0x0b05, 0x1abb, "ASUS ROG RAIKIRI PRO", 0, XTYPE_XBOXONE },
216217
{ 0x0c12, 0x0005, "Intec wireless", 0, XTYPE_XBOX },
217218
{ 0x0c12, 0x8801, "Nyko Xbox Controller", 0, XTYPE_XBOX },
@@ -240,7 +241,7 @@ static const struct xpad_device {
240241
{ 0x0e6f, 0x0146, "Rock Candy Wired Controller for Xbox One", 0, XTYPE_XBOXONE },
241242
{ 0x0e6f, 0x0147, "PDP Marvel Xbox One Controller", 0, XTYPE_XBOXONE },
242243
{ 0x0e6f, 0x015c, "PDP Xbox One Arcade Stick", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOXONE },
243-
{ 0x0e6f, 0x015d, "PDP Mirror's Edge Official Wired Controller for Xbox One", XTYPE_XBOXONE },
244+
{ 0x0e6f, 0x015d, "PDP Mirror's Edge Official Wired Controller for Xbox One", 0, XTYPE_XBOXONE },
244245
{ 0x0e6f, 0x0161, "PDP Xbox One Controller", 0, XTYPE_XBOXONE },
245246
{ 0x0e6f, 0x0162, "PDP Xbox One Controller", 0, XTYPE_XBOXONE },
246247
{ 0x0e6f, 0x0163, "PDP Xbox One Controller", 0, XTYPE_XBOXONE },
@@ -281,6 +282,7 @@ static const struct xpad_device {
281282
{ 0x0f0d, 0x00dc, "HORIPAD FPS for Nintendo Switch", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOX360 },
282283
{ 0x0f0d, 0x0151, "Hori Racing Wheel Overdrive for Xbox Series X", 0, XTYPE_XBOXONE },
283284
{ 0x0f0d, 0x0152, "Hori Racing Wheel Overdrive for Xbox Series X", 0, XTYPE_XBOXONE },
285+
{ 0x0f0d, 0x01b2, "HORI Taiko No Tatsujin Drum Controller", MAP_SHARE_BUTTON, XTYPE_XBOXONE },
284286
{ 0x0f30, 0x010b, "Philips Recoil", 0, XTYPE_XBOX },
285287
{ 0x0f30, 0x0202, "Joytech Advanced Controller", 0, XTYPE_XBOX },
286288
{ 0x0f30, 0x8888, "BigBen XBMiniPad Controller", 0, XTYPE_XBOX },
@@ -353,6 +355,8 @@ static const struct xpad_device {
353355
{ 0x20d6, 0x2001, "BDA Xbox Series X Wired Controller", 0, XTYPE_XBOXONE },
354356
{ 0x20d6, 0x2009, "PowerA Enhanced Wired Controller for Xbox Series X|S", 0, XTYPE_XBOXONE },
355357
{ 0x20d6, 0x281f, "PowerA Wired Controller For Xbox 360", 0, XTYPE_XBOX360 },
358+
{ 0x20d6, 0x400b, "PowerA FUSION Pro 4 Wired Controller", MAP_SHARE_BUTTON, XTYPE_XBOXONE },
359+
{ 0x20d6, 0x890b, "PowerA MOGA XP-Ultra Controller", MAP_SHARE_BUTTON, XTYPE_XBOXONE },
356360
{ 0x2345, 0xe00b, "Machenike G5 Pro Controller", 0, XTYPE_XBOX360 },
357361
{ 0x24c6, 0x5000, "Razer Atrox Arcade Stick", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOX360 },
358362
{ 0x24c6, 0x5300, "PowerA MINI PROEX Controller", 0, XTYPE_XBOX360 },
@@ -384,13 +388,16 @@ static const struct xpad_device {
384388
{ 0x294b, 0x3404, "Snakebyte GAMEPAD RGB X", 0, XTYPE_XBOXONE },
385389
{ 0x2993, 0x2001, "TECNO Pocket Go", 0, XTYPE_XBOX360 },
386390
{ 0x2dc8, 0x2000, "8BitDo Pro 2 Wired Controller fox Xbox", 0, XTYPE_XBOXONE },
391+
{ 0x2dc8, 0x200f, "8BitDo Ultimate 3-mode Controller for Xbox", MAP_SHARE_BUTTON, XTYPE_XBOXONE },
387392
{ 0x2dc8, 0x3106, "8BitDo Ultimate Wireless / Pro 2 Wired Controller", 0, XTYPE_XBOX360 },
388393
{ 0x2dc8, 0x3109, "8BitDo Ultimate Wireless Bluetooth", 0, XTYPE_XBOX360 },
389394
{ 0x2dc8, 0x310a, "8BitDo Ultimate 2C Wireless Controller", 0, XTYPE_XBOX360 },
395+
{ 0x2dc8, 0x310b, "8BitDo Ultimate 2 Wireless Controller", 0, XTYPE_XBOX360 },
390396
{ 0x2dc8, 0x6001, "8BitDo SN30 Pro", 0, XTYPE_XBOX360 },
397+
{ 0x2e24, 0x0423, "Hyperkin DuchesS Xbox One pad", MAP_SHARE_BUTTON, XTYPE_XBOXONE },
391398
{ 0x2e24, 0x0652, "Hyperkin Duke X-Box One pad", 0, XTYPE_XBOXONE },
392399
{ 0x2e24, 0x1688, "Hyperkin X91 X-Box One pad", 0, XTYPE_XBOXONE },
393-
{ 0x2e95, 0x0504, "SCUF Gaming Controller", MAP_SELECT_BUTTON, XTYPE_XBOXONE },
400+
{ 0x2e95, 0x0504, "SCUF Gaming Controller", MAP_SHARE_BUTTON, XTYPE_XBOXONE },
394401
{ 0x31e3, 0x1100, "Wooting One", 0, XTYPE_XBOX360 },
395402
{ 0x31e3, 0x1200, "Wooting Two", 0, XTYPE_XBOX360 },
396403
{ 0x31e3, 0x1210, "Wooting Lekker", 0, XTYPE_XBOX360 },
@@ -714,8 +721,10 @@ static const struct xboxone_init_packet xboxone_init_packets[] = {
714721
XBOXONE_INIT_PKT(0x045e, 0x0b00, xboxone_s_init),
715722
XBOXONE_INIT_PKT(0x045e, 0x0b00, extra_input_packet_init),
716723
XBOXONE_INIT_PKT(0x0e6f, 0x0000, xboxone_pdp_led_on),
724+
XBOXONE_INIT_PKT(0x0f0d, 0x01b2, xboxone_pdp_led_on),
717725
XBOXONE_INIT_PKT(0x20d6, 0xa01a, xboxone_pdp_led_on),
718726
XBOXONE_INIT_PKT(0x0e6f, 0x0000, xboxone_pdp_auth),
727+
XBOXONE_INIT_PKT(0x0f0d, 0x01b2, xboxone_pdp_auth),
719728
XBOXONE_INIT_PKT(0x20d6, 0xa01a, xboxone_pdp_auth),
720729
XBOXONE_INIT_PKT(0x24c6, 0x541a, xboxone_rumblebegin_init),
721730
XBOXONE_INIT_PKT(0x24c6, 0x542a, xboxone_rumblebegin_init),
@@ -1027,7 +1036,7 @@ static void xpad360w_process_packet(struct usb_xpad *xpad, u16 cmd, unsigned cha
10271036
* The report format was gleaned from
10281037
* https://github.com/kylelemons/xbox/blob/master/xbox.go
10291038
*/
1030-
static void xpadone_process_packet(struct usb_xpad *xpad, u16 cmd, unsigned char *data)
1039+
static void xpadone_process_packet(struct usb_xpad *xpad, u16 cmd, unsigned char *data, u32 len)
10311040
{
10321041
struct input_dev *dev = xpad->dev;
10331042
bool do_sync = false;
@@ -1068,8 +1077,12 @@ static void xpadone_process_packet(struct usb_xpad *xpad, u16 cmd, unsigned char
10681077
/* menu/view buttons */
10691078
input_report_key(dev, BTN_START, data[4] & BIT(2));
10701079
input_report_key(dev, BTN_SELECT, data[4] & BIT(3));
1071-
if (xpad->mapping & MAP_SELECT_BUTTON)
1072-
input_report_key(dev, KEY_RECORD, data[22] & BIT(0));
1080+
if (xpad->mapping & MAP_SHARE_BUTTON) {
1081+
if (xpad->mapping & MAP_SHARE_OFFSET)
1082+
input_report_key(dev, KEY_RECORD, data[len - 26] & BIT(0));
1083+
else
1084+
input_report_key(dev, KEY_RECORD, data[len - 18] & BIT(0));
1085+
}
10731086

10741087
/* buttons A,B,X,Y */
10751088
input_report_key(dev, BTN_A, data[4] & BIT(4));
@@ -1217,7 +1230,7 @@ static void xpad_irq_in(struct urb *urb)
12171230
xpad360w_process_packet(xpad, 0, xpad->idata);
12181231
break;
12191232
case XTYPE_XBOXONE:
1220-
xpadone_process_packet(xpad, 0, xpad->idata);
1233+
xpadone_process_packet(xpad, 0, xpad->idata, urb->actual_length);
12211234
break;
12221235
default:
12231236
xpad_process_packet(xpad, 0, xpad->idata);
@@ -1944,7 +1957,7 @@ static int xpad_init_input(struct usb_xpad *xpad)
19441957
xpad->xtype == XTYPE_XBOXONE) {
19451958
for (i = 0; xpad360_btn[i] >= 0; i++)
19461959
input_set_capability(input_dev, EV_KEY, xpad360_btn[i]);
1947-
if (xpad->mapping & MAP_SELECT_BUTTON)
1960+
if (xpad->mapping & MAP_SHARE_BUTTON)
19481961
input_set_capability(input_dev, EV_KEY, KEY_RECORD);
19491962
} else {
19501963
for (i = 0; xpad_btn[i] >= 0; i++)

drivers/input/keyboard/mtk-pmic-keys.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -147,8 +147,8 @@ static void mtk_pmic_keys_lp_reset_setup(struct mtk_pmic_keys *keys,
147147
u32 value, mask;
148148
int error;
149149

150-
kregs_home = keys->keys[MTK_PMIC_HOMEKEY_INDEX].regs;
151-
kregs_pwr = keys->keys[MTK_PMIC_PWRKEY_INDEX].regs;
150+
kregs_home = &regs->keys_regs[MTK_PMIC_HOMEKEY_INDEX];
151+
kregs_pwr = &regs->keys_regs[MTK_PMIC_PWRKEY_INDEX];
152152

153153
error = of_property_read_u32(keys->dev->of_node, "power-off-time-sec",
154154
&long_press_debounce);

drivers/input/misc/hisi_powerkey.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ static irqreturn_t hi65xx_power_press_isr(int irq, void *q)
3030
{
3131
struct input_dev *input = q;
3232

33-
pm_wakeup_event(input->dev.parent, MAX_HELD_TIME);
33+
pm_wakeup_dev_event(input->dev.parent, MAX_HELD_TIME, true);
3434
input_report_key(input, KEY_POWER, 1);
3535
input_sync(input);
3636

drivers/input/misc/sparcspkr.c

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -74,9 +74,14 @@ static int bbc_spkr_event(struct input_dev *dev, unsigned int type, unsigned int
7474
return -1;
7575

7676
switch (code) {
77-
case SND_BELL: if (value) value = 1000;
78-
case SND_TONE: break;
79-
default: return -1;
77+
case SND_BELL:
78+
if (value)
79+
value = 1000;
80+
break;
81+
case SND_TONE:
82+
break;
83+
default:
84+
return -1;
8085
}
8186

8287
if (value > 20 && value < 32767)
@@ -109,9 +114,14 @@ static int grover_spkr_event(struct input_dev *dev, unsigned int type, unsigned
109114
return -1;
110115

111116
switch (code) {
112-
case SND_BELL: if (value) value = 1000;
113-
case SND_TONE: break;
114-
default: return -1;
117+
case SND_BELL:
118+
if (value)
119+
value = 1000;
120+
break;
121+
case SND_TONE:
122+
break;
123+
default:
124+
return -1;
115125
}
116126

117127
if (value > 20 && value < 32767)

drivers/input/mouse/synaptics.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,7 @@ static const char * const topbuttonpad_pnp_ids[] = {
164164
#ifdef CONFIG_MOUSE_PS2_SYNAPTICS_SMBUS
165165
static const char * const smbus_pnp_ids[] = {
166166
/* all of the topbuttonpad_pnp_ids are valid, we just add some extras */
167+
"DLL060d", /* Dell Precision M3800 */
167168
"LEN0048", /* X1 Carbon 3 */
168169
"LEN0046", /* X250 */
169170
"LEN0049", /* Yoga 11e */
@@ -190,11 +191,15 @@ static const char * const smbus_pnp_ids[] = {
190191
"LEN2054", /* E480 */
191192
"LEN2055", /* E580 */
192193
"LEN2068", /* T14 Gen 1 */
194+
"SYN1221", /* TUXEDO InfinityBook Pro 14 v5 */
195+
"SYN3003", /* HP EliteBook 850 G1 */
193196
"SYN3015", /* HP EliteBook 840 G2 */
194197
"SYN3052", /* HP EliteBook 840 G4 */
195198
"SYN3221", /* HP 15-ay000 */
196199
"SYN323d", /* HP Spectre X360 13-w013dx */
197200
"SYN3257", /* HP Envy 13-ad105ng */
201+
"TOS01f6", /* Dynabook Portege X30L-G */
202+
"TOS0213", /* Dynabook Portege X30-D */
198203
NULL
199204
};
200205
#endif

drivers/input/touchscreen/cyttsp5.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -580,7 +580,7 @@ static int cyttsp5_power_control(struct cyttsp5 *ts, bool on)
580580
int rc;
581581

582582
SET_CMD_REPORT_TYPE(cmd[0], 0);
583-
SET_CMD_REPORT_ID(cmd[0], HID_POWER_SLEEP);
583+
SET_CMD_REPORT_ID(cmd[0], state);
584584
SET_CMD_OPCODE(cmd[1], HID_CMD_SET_POWER);
585585

586586
rc = cyttsp5_write(ts, HID_COMMAND_REG, cmd, sizeof(cmd));
@@ -870,13 +870,16 @@ static int cyttsp5_probe(struct device *dev, struct regmap *regmap, int irq,
870870
ts->input->phys = ts->phys;
871871
input_set_drvdata(ts->input, ts);
872872

873-
/* Reset the gpio to be in a reset state */
873+
/* Assert gpio to be in a reset state */
874874
ts->reset_gpio = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_HIGH);
875875
if (IS_ERR(ts->reset_gpio)) {
876876
error = PTR_ERR(ts->reset_gpio);
877877
dev_err(dev, "Failed to request reset gpio, error %d\n", error);
878878
return error;
879879
}
880+
881+
fsleep(10); /* Ensure long-enough reset pulse (minimum 10us). */
882+
880883
gpiod_set_value_cansleep(ts->reset_gpio, 0);
881884

882885
/* Need a delay to have device up */

0 commit comments

Comments
 (0)