Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input

Pull input updates from Dmitry Torokhov:
"A fix for a panic in gpio-keys driver when set up with absolute
events, a fixup to the new zforce driver and a new keycode definition"

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
Input: allocate absinfo data when setting ABS capability
Input: define KEY_WWAN for Wireless WAN
Input: zforce - fix possible driver hang during suspend

+21 -7
+4
drivers/input/input.c
··· 1871 1871 break; 1872 1872 1873 1873 case EV_ABS: 1874 + input_alloc_absinfo(dev); 1875 + if (!dev->absinfo) 1876 + return; 1877 + 1874 1878 __set_bit(code, dev->absbit); 1875 1879 break; 1876 1880
+15 -6
drivers/input/touchscreen/zforce_ts.c
··· 455 455 } 456 456 } 457 457 458 - static irqreturn_t zforce_interrupt(int irq, void *dev_id) 458 + static irqreturn_t zforce_irq(int irq, void *dev_id) 459 + { 460 + struct zforce_ts *ts = dev_id; 461 + struct i2c_client *client = ts->client; 462 + 463 + if (ts->suspended && device_may_wakeup(&client->dev)) 464 + pm_wakeup_event(&client->dev, 500); 465 + 466 + return IRQ_WAKE_THREAD; 467 + } 468 + 469 + static irqreturn_t zforce_irq_thread(int irq, void *dev_id) 459 470 { 460 471 struct zforce_ts *ts = dev_id; 461 472 struct i2c_client *client = ts->client; ··· 476 465 u8 *payload; 477 466 478 467 /* 479 - * When suspended, emit a wakeup signal if necessary and return. 468 + * When still suspended, return. 480 469 * Due to the level-interrupt we will get re-triggered later. 481 470 */ 482 471 if (ts->suspended) { 483 - if (device_may_wakeup(&client->dev)) 484 - pm_wakeup_event(&client->dev, 500); 485 472 msleep(20); 486 473 return IRQ_HANDLED; 487 474 } ··· 772 763 * Therefore we can trigger the interrupt anytime it is low and do 773 764 * not need to limit it to the interrupt edge. 774 765 */ 775 - ret = devm_request_threaded_irq(&client->dev, client->irq, NULL, 776 - zforce_interrupt, 766 + ret = devm_request_threaded_irq(&client->dev, client->irq, 767 + zforce_irq, zforce_irq_thread, 777 768 IRQF_TRIGGER_LOW | IRQF_ONESHOT, 778 769 input_dev->name, ts); 779 770 if (ret) {
+2 -1
include/uapi/linux/input.h
··· 464 464 #define KEY_BRIGHTNESS_ZERO 244 /* brightness off, use ambient */ 465 465 #define KEY_DISPLAY_OFF 245 /* display device to off state */ 466 466 467 - #define KEY_WIMAX 246 467 + #define KEY_WWAN 246 /* Wireless WAN (LTE, UMTS, GSM, etc.) */ 468 + #define KEY_WIMAX KEY_WWAN 468 469 #define KEY_RFKILL 247 /* Key that controls all radios */ 469 470 470 471 #define KEY_MICMUTE 248 /* Mute / unmute the microphone */