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 subsystem fixes from Dmitry Torokhov:
"Just a few driver fixes."

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
Input: tsc40 - remove wrong announcement of pressure support
Input: lpc32xx-keys - select INPUT_MATRIXKMAP
Input: pxa27x_keypad - clear pending interrupts on keypad config
Input: wacom - correct bad Cintiq 24HD check
Input: wacom - add INPUT_PROP_DIRECT flag to Cintiq 24HD
Input: egalax_ts - get gpio from devicetree

+49 -5
+19
Documentation/devicetree/bindings/input/touchscreen/egalax-ts.txt
··· 1 + * EETI eGalax Multiple Touch Controller 2 + 3 + Required properties: 4 + - compatible: must be "eeti,egalax_ts" 5 + - reg: i2c slave address 6 + - interrupt-parent: the phandle for the interrupt controller 7 + - interrupts: touch controller interrupt 8 + - wakeup-gpios: the gpio pin to be used for waking up the controller 9 + as well as uased as irq pin 10 + 11 + Example: 12 + 13 + egalax_ts@04 { 14 + compatible = "eeti,egalax_ts"; 15 + reg = <0x04>; 16 + interrupt-parent = <&gpio1>; 17 + interrupts = <9 2>; 18 + wakeup-gpios = <&gpio1 9 0>; 19 + };
+1
drivers/input/keyboard/Kconfig
··· 335 335 config KEYBOARD_LPC32XX 336 336 tristate "LPC32XX matrix key scanner support" 337 337 depends on ARCH_LPC32XX && OF 338 + select INPUT_MATRIXKMAP 338 339 help 339 340 Say Y here if you want to use NXP LPC32XX SoC key scanner interface, 340 341 connected to a key matrix.
+3
drivers/input/keyboard/pxa27x_keypad.c
··· 368 368 unsigned int mask = 0, direct_key_num = 0; 369 369 unsigned long kpc = 0; 370 370 371 + /* clear pending interrupt bit */ 372 + keypad_readl(KPC); 373 + 371 374 /* enable matrix keys with automatic scan */ 372 375 if (pdata->matrix_key_rows && pdata->matrix_key_cols) { 373 376 kpc |= KPC_ASACT | KPC_MIE | KPC_ME | KPC_MS_ALL;
+1 -1
drivers/input/tablet/wacom_sys.c
··· 391 391 features->pktlen = WACOM_PKGLEN_TPC2FG; 392 392 } 393 393 394 - if (features->type == MTSCREEN || WACOM_24HDT) 394 + if (features->type == MTSCREEN || features->type == WACOM_24HDT) 395 395 features->pktlen = WACOM_PKGLEN_MTOUCH; 396 396 397 397 if (features->type == BAMBOO_PT) {
+3
drivers/input/tablet/wacom_wac.c
··· 1518 1518 1519 1519 input_set_abs_params(input_dev, ABS_Z, -900, 899, 0, 0); 1520 1520 input_set_abs_params(input_dev, ABS_THROTTLE, 0, 71, 0, 0); 1521 + 1522 + __set_bit(INPUT_PROP_DIRECT, input_dev->propbit); 1523 + 1521 1524 wacom_setup_cintiq(wacom_wac); 1522 1525 break; 1523 1526
+1 -1
drivers/input/touchscreen/Kconfig
··· 239 239 240 240 config TOUCHSCREEN_EGALAX 241 241 tristate "EETI eGalax multi-touch panel support" 242 - depends on I2C 242 + depends on I2C && OF 243 243 help 244 244 Say Y here to enable support for I2C connected EETI 245 245 eGalax multi-touch panels.
+21 -2
drivers/input/touchscreen/egalax_ts.c
··· 28 28 #include <linux/slab.h> 29 29 #include <linux/bitops.h> 30 30 #include <linux/input/mt.h> 31 + #include <linux/of_gpio.h> 31 32 32 33 /* 33 34 * Mouse Mode: some panel may configure the controller to mouse mode, ··· 123 122 /* wake up controller by an falling edge of interrupt gpio. */ 124 123 static int egalax_wake_up_device(struct i2c_client *client) 125 124 { 126 - int gpio = irq_to_gpio(client->irq); 125 + struct device_node *np = client->dev.of_node; 126 + int gpio; 127 127 int ret; 128 + 129 + if (!np) 130 + return -ENODEV; 131 + 132 + gpio = of_get_named_gpio(np, "wakeup-gpios", 0); 133 + if (!gpio_is_valid(gpio)) 134 + return -ENODEV; 128 135 129 136 ret = gpio_request(gpio, "egalax_irq"); 130 137 if (ret < 0) { ··· 190 181 ts->input_dev = input_dev; 191 182 192 183 /* controller may be in sleep, wake it up. */ 193 - egalax_wake_up_device(client); 184 + error = egalax_wake_up_device(client); 185 + if (error) { 186 + dev_err(&client->dev, "Failed to wake up the controller\n"); 187 + goto err_free_dev; 188 + } 194 189 195 190 ret = egalax_firmware_version(client); 196 191 if (ret < 0) { ··· 287 274 288 275 static SIMPLE_DEV_PM_OPS(egalax_ts_pm_ops, egalax_ts_suspend, egalax_ts_resume); 289 276 277 + static struct of_device_id egalax_ts_dt_ids[] = { 278 + { .compatible = "eeti,egalax_ts" }, 279 + { /* sentinel */ } 280 + }; 281 + 290 282 static struct i2c_driver egalax_ts_driver = { 291 283 .driver = { 292 284 .name = "egalax_ts", 293 285 .owner = THIS_MODULE, 294 286 .pm = &egalax_ts_pm_ops, 287 + .of_match_table = of_match_ptr(egalax_ts_dt_ids), 295 288 }, 296 289 .id_table = egalax_ts_id, 297 290 .probe = egalax_ts_probe,
-1
drivers/input/touchscreen/tsc40.c
··· 107 107 __set_bit(BTN_TOUCH, input_dev->keybit); 108 108 input_set_abs_params(ptsc->dev, ABS_X, 0, 0x3ff, 0, 0); 109 109 input_set_abs_params(ptsc->dev, ABS_Y, 0, 0x3ff, 0, 0); 110 - input_set_abs_params(ptsc->dev, ABS_PRESSURE, 0, 0, 0, 0); 111 110 112 111 serio_set_drvdata(serio, ptsc); 113 112