History

Merge tag 'input-for-v6.0-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input

Pull input fixes from Dmitry Torokhov: - GT1158 ID added to Goodix touchscreen driver - Boeder Force Feedback Wheel USB added to iforce joystick driver - fixup for iforce driver to avoid hangups - fix autoloading of rk805-pwrkey driver. * tag 'input-for-v6.0-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: Input: iforce - add support for Boeder Force Feedback Wheel Input: iforce - wake up after clearing IFORCE_XMIT_RUNNING flag Input: goodix - add compatible string for GT1158 MAINTAINERS: add include/dt-bindings/input to INPUT DRIVERS Input: rk805-pwrkey - fix module autoloading Input: goodix - add support for GT1158 dt-bindings: input: touchscreen: add compatible string for Goodix GT1158

Linus Torvalds committed 4 years ago

Commit 6433fe02 parents 42cf58c 9c9c7119 files · +20 −7Browse files

Unified · Split

9 files
  1. Documentation/devicetree/bindings/input/touchscreen/goodix.yaml +1 −0
  2. Documentation/input/joydev/joystick.rst +1 −0
  3. MAINTAINERS +1 −0
  4. drivers/input/joystick/iforce/iforce-main.c +1 −0
  5. drivers/input/joystick/iforce/iforce-serio.c +3 −3
  6. drivers/input/joystick/iforce/iforce-usb.c +4 −4
  7. drivers/input/joystick/iforce/iforce.h +6 −0
  8. drivers/input/misc/rk805-pwrkey.c +1 −0
  9. drivers/input/touchscreen/goodix.c +2 −0
Documentation/devicetree/bindings/input/touchscreen/goodix.yaml+1−0
@@ -16,6 +16,7 @@ properties: · 15 unmodified lines
16 compatible:16 compatible:
17 enum:17 enum:
18 - goodix,gt115118 - goodix,gt1151
19 - goodix,gt1158
19 - goodix,gt566320 - goodix,gt5663
20 - goodix,gt568821 - goodix,gt5688
21 - goodix,gt91122 - goodix,gt911
Documentation/input/joydev/joystick.rst+1−0
@@ -517,6 +517,7 @@ All I-Force devices are supported by the iforce module. This includes: · 516 unmodified lines
517* AVB Mag Turbo Force517* AVB Mag Turbo Force
518* AVB Top Shot Pegasus518* AVB Top Shot Pegasus
519* AVB Top Shot Force Feedback Racing Wheel519* AVB Top Shot Force Feedback Racing Wheel
520* Boeder Force Feedback Wheel
520* Logitech WingMan Force521* Logitech WingMan Force
521* Logitech WingMan Force Wheel522* Logitech WingMan Force Wheel
522* Guillemot Race Leader Force Feedback523* Guillemot Race Leader Force Feedback
MAINTAINERS+1−0
@@ -10032,6 +10032,7 @@ F: Documentation/devicetree/bindings/input/ · 10031 unmodified lines
10032F: Documentation/devicetree/bindings/serio/10032F: Documentation/devicetree/bindings/serio/
10033F: Documentation/input/10033F: Documentation/input/
10034F: drivers/input/10034F: drivers/input/
10035F: include/dt-bindings/input/
10035F: include/linux/input.h10036F: include/linux/input.h
10036F: include/linux/input/10037F: include/linux/input/
10037F: include/uapi/linux/input-event-codes.h10038F: include/uapi/linux/input-event-codes.h
drivers/input/joystick/iforce/iforce-main.c+1−0
@@ -50,6 +50,7 @@ static struct iforce_device iforce_device[] = { · 49 unmodified lines
50 { 0x046d, 0xc291, "Logitech WingMan Formula Force", btn_wheel, abs_wheel, ff_iforce },50 { 0x046d, 0xc291, "Logitech WingMan Formula Force", btn_wheel, abs_wheel, ff_iforce },
51 { 0x05ef, 0x020a, "AVB Top Shot Pegasus", btn_joystick_avb, abs_avb_pegasus, ff_iforce },51 { 0x05ef, 0x020a, "AVB Top Shot Pegasus", btn_joystick_avb, abs_avb_pegasus, ff_iforce },
52 { 0x05ef, 0x8884, "AVB Mag Turbo Force", btn_wheel, abs_wheel, ff_iforce },52 { 0x05ef, 0x8884, "AVB Mag Turbo Force", btn_wheel, abs_wheel, ff_iforce },
53 { 0x05ef, 0x8886, "Boeder Force Feedback Wheel", btn_wheel, abs_wheel, ff_iforce },
53 { 0x05ef, 0x8888, "AVB Top Shot Force Feedback Racing Wheel", btn_wheel, abs_wheel, ff_iforce }, //?54 { 0x05ef, 0x8888, "AVB Top Shot Force Feedback Racing Wheel", btn_wheel, abs_wheel, ff_iforce }, //?
54 { 0x061c, 0xc0a4, "ACT LABS Force RS", btn_wheel, abs_wheel, ff_iforce }, //?55 { 0x061c, 0xc0a4, "ACT LABS Force RS", btn_wheel, abs_wheel, ff_iforce }, //?
55 { 0x061c, 0xc084, "ACT LABS Force RS", btn_wheel, abs_wheel, ff_iforce },56 { 0x061c, 0xc084, "ACT LABS Force RS", btn_wheel, abs_wheel, ff_iforce },
drivers/input/joystick/iforce/iforce-serio.c+3−3
@@ -39,7 +39,7 @@ static void iforce_serio_xmit(struct iforce *iforce) · 38 unmodified lines
39 39
40again:40again:
41 if (iforce->xmit.head == iforce->xmit.tail) {41 if (iforce->xmit.head == iforce->xmit.tail) {
42 clear_bit(IFORCE_XMIT_RUNNING, iforce->xmit_flags);42 iforce_clear_xmit_and_wake(iforce);
43 spin_unlock_irqrestore(&iforce->xmit_lock, flags);43 spin_unlock_irqrestore(&iforce->xmit_lock, flags);
44 return;44 return;
45 }45 }
@@ -64,7 +64,7 @@ again: · 18 unmodified lines
64 if (test_and_clear_bit(IFORCE_XMIT_AGAIN, iforce->xmit_flags))64 if (test_and_clear_bit(IFORCE_XMIT_AGAIN, iforce->xmit_flags))
65 goto again;65 goto again;
66 66
67 clear_bit(IFORCE_XMIT_RUNNING, iforce->xmit_flags);67 iforce_clear_xmit_and_wake(iforce);
68 68
69 spin_unlock_irqrestore(&iforce->xmit_lock, flags);69 spin_unlock_irqrestore(&iforce->xmit_lock, flags);
70}70}
@@ -169,7 +169,7 @@ static irqreturn_t iforce_serio_irq(struct serio *serio, · 98 unmodified lines
169 iforce_serio->cmd_response_len = iforce_serio->len;169 iforce_serio->cmd_response_len = iforce_serio->len;
170 170
171 /* Signal that command is done */171 /* Signal that command is done */
172 wake_up(&iforce->wait);172 wake_up_all(&iforce->wait);
173 } else if (likely(iforce->type)) {173 } else if (likely(iforce->type)) {
174 iforce_process_packet(iforce, iforce_serio->id,174 iforce_process_packet(iforce, iforce_serio->id,
175 iforce_serio->data_in,175 iforce_serio->data_in,
drivers/input/joystick/iforce/iforce-usb.c+4−4
@@ -30,7 +30,7 @@ static void __iforce_usb_xmit(struct iforce *iforce) · 29 unmodified lines
30 spin_lock_irqsave(&iforce->xmit_lock, flags);30 spin_lock_irqsave(&iforce->xmit_lock, flags);
31 31
32 if (iforce->xmit.head == iforce->xmit.tail) {32 if (iforce->xmit.head == iforce->xmit.tail) {
33 clear_bit(IFORCE_XMIT_RUNNING, iforce->xmit_flags);33 iforce_clear_xmit_and_wake(iforce);
34 spin_unlock_irqrestore(&iforce->xmit_lock, flags);34 spin_unlock_irqrestore(&iforce->xmit_lock, flags);
35 return;35 return;
36 }36 }
@@ -58,9 +58,9 @@ static void __iforce_usb_xmit(struct iforce *iforce) · 21 unmodified lines
58 XMIT_INC(iforce->xmit.tail, n);58 XMIT_INC(iforce->xmit.tail, n);
59 59
60 if ( (n=usb_submit_urb(iforce_usb->out, GFP_ATOMIC)) ) {60 if ( (n=usb_submit_urb(iforce_usb->out, GFP_ATOMIC)) ) {
61 clear_bit(IFORCE_XMIT_RUNNING, iforce->xmit_flags);
62 dev_warn(&iforce_usb->intf->dev,61 dev_warn(&iforce_usb->intf->dev,
63 "usb_submit_urb failed %d\n", n);62 "usb_submit_urb failed %d\n", n);
63 iforce_clear_xmit_and_wake(iforce);
64 }64 }
65 65
66 /* The IFORCE_XMIT_RUNNING bit is not cleared here. That's intended.66 /* The IFORCE_XMIT_RUNNING bit is not cleared here. That's intended.
@@ -175,15 +175,15 @@ static void iforce_usb_out(struct urb *urb) · 108 unmodified lines
175 struct iforce *iforce = &iforce_usb->iforce;175 struct iforce *iforce = &iforce_usb->iforce;
176 176
177 if (urb->status) {177 if (urb->status) {
178 clear_bit(IFORCE_XMIT_RUNNING, iforce->xmit_flags);
179 dev_dbg(&iforce_usb->intf->dev, "urb->status %d, exiting\n",178 dev_dbg(&iforce_usb->intf->dev, "urb->status %d, exiting\n",
180 urb->status);179 urb->status);
180 iforce_clear_xmit_and_wake(iforce);
181 return;181 return;
182 }182 }
183 183
184 __iforce_usb_xmit(iforce);184 __iforce_usb_xmit(iforce);
185 185
186 wake_up(&iforce->wait);186 wake_up_all(&iforce->wait);
187}187}
188 188
189static int iforce_usb_probe(struct usb_interface *intf,189static int iforce_usb_probe(struct usb_interface *intf,
drivers/input/joystick/iforce/iforce.h+6−0
@@ -119,6 +119,12 @@ static inline int iforce_get_id_packet(struct iforce *iforce, u8 id, · 118 unmodified lines
119 response_data, response_len);119 response_data, response_len);
120}120}
121 121
122static inline void iforce_clear_xmit_and_wake(struct iforce *iforce)
123{
124 clear_bit(IFORCE_XMIT_RUNNING, iforce->xmit_flags);
125 wake_up_all(&iforce->wait);
126}
127
122/* Public functions */128/* Public functions */
123/* iforce-main.c */129/* iforce-main.c */
124int iforce_init_device(struct device *parent, u16 bustype,130int iforce_init_device(struct device *parent, u16 bustype,
drivers/input/misc/rk805-pwrkey.c+1−0
@@ -98,6 +98,7 @@ static struct platform_driver rk805_pwrkey_driver = { · 97 unmodified lines
98};98};
99module_platform_driver(rk805_pwrkey_driver);99module_platform_driver(rk805_pwrkey_driver);
100 100
101MODULE_ALIAS("platform:rk805-pwrkey");
101MODULE_AUTHOR("Joseph Chen <chenjh@rock-chips.com>");102MODULE_AUTHOR("Joseph Chen <chenjh@rock-chips.com>");
102MODULE_DESCRIPTION("RK805 PMIC Power Key driver");103MODULE_DESCRIPTION("RK805 PMIC Power Key driver");
103MODULE_LICENSE("GPL");104MODULE_LICENSE("GPL");
drivers/input/touchscreen/goodix.c+2−0
@@ -95,6 +95,7 @@ static const struct goodix_chip_data gt9x_chip_data = { · 94 unmodified lines
95 95
96static const struct goodix_chip_id goodix_chip_ids[] = {96static const struct goodix_chip_id goodix_chip_ids[] = {
97 { .id = "1151", .data = &gt1x_chip_data },97 { .id = "1151", .data = &gt1x_chip_data },
98 { .id = "1158", .data = &gt1x_chip_data },
98 { .id = "5663", .data = &gt1x_chip_data },99 { .id = "5663", .data = &gt1x_chip_data },
99 { .id = "5688", .data = &gt1x_chip_data },100 { .id = "5688", .data = &gt1x_chip_data },
100 { .id = "917S", .data = &gt1x_chip_data },101 { .id = "917S", .data = &gt1x_chip_data },
@@ -1508,6 +1509,7 @@ MODULE_DEVICE_TABLE(acpi, goodix_acpi_match); · 1407 unmodified lines
1508#ifdef CONFIG_OF1509#ifdef CONFIG_OF
1509static const struct of_device_id goodix_of_match[] = {1510static const struct of_device_id goodix_of_match[] = {
1510 { .compatible = "goodix,gt1151" },1511 { .compatible = "goodix,gt1151" },
1512 { .compatible = "goodix,gt1158" },
1511 { .compatible = "goodix,gt5663" },1513 { .compatible = "goodix,gt5663" },
1512 { .compatible = "goodix,gt5688" },1514 { .compatible = "goodix,gt5688" },
1513 { .compatible = "goodix,gt911" },1515 { .compatible = "goodix,gt911" },

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t