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
1616 compatible:
1717 enum:
1818 - goodix,gt1151
19+ - goodix,gt1158
1920 - goodix,gt5663
2021 - goodix,gt5688
2122 - 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
517517 * AVB Mag Turbo Force
518518 * AVB Top Shot Pegasus
519519 * AVB Top Shot Force Feedback Racing Wheel
520+* Boeder Force Feedback Wheel
520521 * Logitech WingMan Force
521522 * Logitech WingMan Force Wheel
522523 * Guillemot Race Leader Force Feedback
MAINTAINERS+1−0
@@ -10032,6 +10032,7 @@ F: Documentation/devicetree/bindings/input/ · 10031 unmodified lines
1003210032 F: Documentation/devicetree/bindings/serio/
1003310033 F: Documentation/input/
1003410034 F: drivers/input/
10035+F: include/dt-bindings/input/
1003510036 F: include/linux/input.h
1003610037 F: include/linux/input/
1003710038 F: 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
5050 { 0x046d, 0xc291, "Logitech WingMan Formula Force", btn_wheel, abs_wheel, ff_iforce },
5151 { 0x05ef, 0x020a, "AVB Top Shot Pegasus", btn_joystick_avb, abs_avb_pegasus, ff_iforce },
5252 { 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 },
5354 { 0x05ef, 0x8888, "AVB Top Shot Force Feedback Racing Wheel", btn_wheel, abs_wheel, ff_iforce }, //?
5455 { 0x061c, 0xc0a4, "ACT LABS Force RS", btn_wheel, abs_wheel, ff_iforce }, //?
5556 { 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
3939
4040 again:
4141 if (iforce->xmit.head == iforce->xmit.tail) {
42− clear_bit(IFORCE_XMIT_RUNNING, iforce->xmit_flags);
42+ iforce_clear_xmit_and_wake(iforce);
4343 spin_unlock_irqrestore(&iforce->xmit_lock, flags);
4444 return;
4545 }
@@ -64,7 +64,7 @@ again: · 18 unmodified lines
6464 if (test_and_clear_bit(IFORCE_XMIT_AGAIN, iforce->xmit_flags))
6565 goto again;
6666
67− clear_bit(IFORCE_XMIT_RUNNING, iforce->xmit_flags);
67+ iforce_clear_xmit_and_wake(iforce);
6868
6969 spin_unlock_irqrestore(&iforce->xmit_lock, flags);
7070 }
@@ -169,7 +169,7 @@ static irqreturn_t iforce_serio_irq(struct serio *serio, · 98 unmodified lines
169169 iforce_serio->cmd_response_len = iforce_serio->len;
170170
171171 /* Signal that command is done */
172− wake_up(&iforce->wait);
172+ wake_up_all(&iforce->wait);
173173 } else if (likely(iforce->type)) {
174174 iforce_process_packet(iforce, iforce_serio->id,
175175 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
3030 spin_lock_irqsave(&iforce->xmit_lock, flags);
3131
3232 if (iforce->xmit.head == iforce->xmit.tail) {
33− clear_bit(IFORCE_XMIT_RUNNING, iforce->xmit_flags);
33+ iforce_clear_xmit_and_wake(iforce);
3434 spin_unlock_irqrestore(&iforce->xmit_lock, flags);
3535 return;
3636 }
@@ -58,9 +58,9 @@ static void __iforce_usb_xmit(struct iforce *iforce) · 21 unmodified lines
5858 XMIT_INC(iforce->xmit.tail, n);
5959
6060 if ( (n=usb_submit_urb(iforce_usb->out, GFP_ATOMIC)) ) {
61− clear_bit(IFORCE_XMIT_RUNNING, iforce->xmit_flags);
6261 dev_warn(&iforce_usb->intf->dev,
6362 "usb_submit_urb failed %d\n", n);
63+ iforce_clear_xmit_and_wake(iforce);
6464 }
6565
6666 /* 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
175175 struct iforce *iforce = &iforce_usb->iforce;
176176
177177 if (urb->status) {
178− clear_bit(IFORCE_XMIT_RUNNING, iforce->xmit_flags);
179178 dev_dbg(&iforce_usb->intf->dev, "urb->status %d, exiting\n",
180179 urb->status);
180+ iforce_clear_xmit_and_wake(iforce);
181181 return;
182182 }
183183
184184 __iforce_usb_xmit(iforce);
185185
186− wake_up(&iforce->wait);
186+ wake_up_all(&iforce->wait);
187187 }
188188
189189 static 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
119119 response_data, response_len);
120120 }
121121
122+static 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+
122128 /* Public functions */
123129 /* iforce-main.c */
124130 int 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
9898 };
9999 module_platform_driver(rk805_pwrkey_driver);
100100
101+MODULE_ALIAS("platform:rk805-pwrkey");
101102 MODULE_AUTHOR("Joseph Chen <chenjh@rock-chips.com>");
102103 MODULE_DESCRIPTION("RK805 PMIC Power Key driver");
103104 MODULE_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
9595
9696 static const struct goodix_chip_id goodix_chip_ids[] = {
9797 { .id = "1151", .data = &gt1x_chip_data },
98+ { .id = "1158", .data = &gt1x_chip_data },
9899 { .id = "5663", .data = &gt1x_chip_data },
99100 { .id = "5688", .data = &gt1x_chip_data },
100101 { .id = "917S", .data = &gt1x_chip_data },
@@ -1508,6 +1509,7 @@ MODULE_DEVICE_TABLE(acpi, goodix_acpi_match); · 1407 unmodified lines
15081509 #ifdef CONFIG_OF
15091510 static const struct of_device_id goodix_of_match[] = {
15101511 { .compatible = "goodix,gt1151" },
1512+ { .compatible = "goodix,gt1158" },
15111513 { .compatible = "goodix,gt5663" },
15121514 { .compatible = "goodix,gt5688" },
15131515 { .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