diff options
author | Mauro Carvalho Chehab <mchehab@s-opensource.com> | 2016-10-05 15:42:36 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@s-opensource.com> | 2016-10-05 15:43:53 -0400 |
commit | 9fce0c226536fc36c7fb0a80000ca38a995be43e (patch) | |
tree | d1d03d4a831bb143ffd401cefa0f44f636ac0084 /drivers/input | |
parent | 3cc2691227203c00cac1d82d6b0772224d5c87b2 (diff) | |
parent | c8d2bc9bc39ebea8437fd974fdbc21847bb897a3 (diff) |
Merge tag 'v4.8' into patchwork
Linux 4.8
* tag 'v4.8': (1761 commits)
Linux 4.8
ARM: 8618/1: decompressor: reset ttbcr fields to use TTBR0 on ARMv7
MIPS: CM: Fix mips_cm_max_vp_width for non-MT kernels on MT systems
include/linux/property.h: fix typo/compile error
ocfs2: fix deadlock on mmapped page in ocfs2_write_begin_nolock()
mm: workingset: fix crash in shadow node shrinker caused by replace_page_cache_page()
MAINTAINERS: Switch to kernel.org email address for Javi Merino
x86/entry/64: Fix context tracking state warning when load_gs_index fails
x86/boot: Initialize FPU and X86_FEATURE_ALWAYS even if we don't have CPUID
x86/vdso: Fix building on big endian host
x86/boot: Fix another __read_cr4() case on 486
sctp: fix the issue sctp_diag uses lock_sock in rcu_read_lock
sctp: change to check peer prsctp_capable when using prsctp polices
sctp: remove prsctp_param from sctp_chunk
sctp: move sent_count to the memory hole in sctp_chunk
tg3: Avoid NULL pointer dereference in tg3_io_error_detected()
x86/init: Fix cr4_init_shadow() on CR4-less machines
MIPS: Fix detection of unsupported highmem with cache aliases
MIPS: Malta: Fix IOCU disable switch read for MIPS64
MIPS: Fix BUILD_ROLLBACK_PROLOGUE for microMIPS
...
Diffstat (limited to 'drivers/input')
-rw-r--r-- | drivers/input/joydev.c | 6 | ||||
-rw-r--r-- | drivers/input/keyboard/tegra-kbc.c | 2 | ||||
-rw-r--r-- | drivers/input/rmi4/rmi_driver.c | 3 | ||||
-rw-r--r-- | drivers/input/serio/i8042.c | 1 | ||||
-rw-r--r-- | drivers/input/touchscreen/ads7846.c | 1 | ||||
-rw-r--r-- | drivers/input/touchscreen/silead.c | 18 |
6 files changed, 20 insertions, 11 deletions
diff --git a/drivers/input/joydev.c b/drivers/input/joydev.c index 5d11fea3c8ec..f3135ae22df4 100644 --- a/drivers/input/joydev.c +++ b/drivers/input/joydev.c | |||
@@ -950,6 +950,12 @@ static const struct input_device_id joydev_ids[] = { | |||
950 | .flags = INPUT_DEVICE_ID_MATCH_EVBIT | | 950 | .flags = INPUT_DEVICE_ID_MATCH_EVBIT | |
951 | INPUT_DEVICE_ID_MATCH_ABSBIT, | 951 | INPUT_DEVICE_ID_MATCH_ABSBIT, |
952 | .evbit = { BIT_MASK(EV_ABS) }, | 952 | .evbit = { BIT_MASK(EV_ABS) }, |
953 | .absbit = { BIT_MASK(ABS_Z) }, | ||
954 | }, | ||
955 | { | ||
956 | .flags = INPUT_DEVICE_ID_MATCH_EVBIT | | ||
957 | INPUT_DEVICE_ID_MATCH_ABSBIT, | ||
958 | .evbit = { BIT_MASK(EV_ABS) }, | ||
953 | .absbit = { BIT_MASK(ABS_WHEEL) }, | 959 | .absbit = { BIT_MASK(ABS_WHEEL) }, |
954 | }, | 960 | }, |
955 | { | 961 | { |
diff --git a/drivers/input/keyboard/tegra-kbc.c b/drivers/input/keyboard/tegra-kbc.c index 7d61439be5f2..0c07e1023a46 100644 --- a/drivers/input/keyboard/tegra-kbc.c +++ b/drivers/input/keyboard/tegra-kbc.c | |||
@@ -376,7 +376,7 @@ static int tegra_kbc_start(struct tegra_kbc *kbc) | |||
376 | /* Reset the KBC controller to clear all previous status.*/ | 376 | /* Reset the KBC controller to clear all previous status.*/ |
377 | reset_control_assert(kbc->rst); | 377 | reset_control_assert(kbc->rst); |
378 | udelay(100); | 378 | udelay(100); |
379 | reset_control_assert(kbc->rst); | 379 | reset_control_deassert(kbc->rst); |
380 | udelay(100); | 380 | udelay(100); |
381 | 381 | ||
382 | tegra_kbc_config_pins(kbc); | 382 | tegra_kbc_config_pins(kbc); |
diff --git a/drivers/input/rmi4/rmi_driver.c b/drivers/input/rmi4/rmi_driver.c index faa295ec4f31..c83bce89028b 100644 --- a/drivers/input/rmi4/rmi_driver.c +++ b/drivers/input/rmi4/rmi_driver.c | |||
@@ -553,7 +553,6 @@ int rmi_read_register_desc(struct rmi_device *d, u16 addr, | |||
553 | goto free_struct_buff; | 553 | goto free_struct_buff; |
554 | 554 | ||
555 | reg = find_first_bit(rdesc->presense_map, RMI_REG_DESC_PRESENSE_BITS); | 555 | reg = find_first_bit(rdesc->presense_map, RMI_REG_DESC_PRESENSE_BITS); |
556 | map_offset = 0; | ||
557 | for (i = 0; i < rdesc->num_registers; i++) { | 556 | for (i = 0; i < rdesc->num_registers; i++) { |
558 | struct rmi_register_desc_item *item = &rdesc->registers[i]; | 557 | struct rmi_register_desc_item *item = &rdesc->registers[i]; |
559 | int reg_size = struct_buf[offset]; | 558 | int reg_size = struct_buf[offset]; |
@@ -576,6 +575,8 @@ int rmi_read_register_desc(struct rmi_device *d, u16 addr, | |||
576 | item->reg = reg; | 575 | item->reg = reg; |
577 | item->reg_size = reg_size; | 576 | item->reg_size = reg_size; |
578 | 577 | ||
578 | map_offset = 0; | ||
579 | |||
579 | do { | 580 | do { |
580 | for (b = 0; b < 7; b++) { | 581 | for (b = 0; b < 7; b++) { |
581 | if (struct_buf[offset] & (0x1 << b)) | 582 | if (struct_buf[offset] & (0x1 << b)) |
diff --git a/drivers/input/serio/i8042.c b/drivers/input/serio/i8042.c index b4d34086e73f..405252a884dd 100644 --- a/drivers/input/serio/i8042.c +++ b/drivers/input/serio/i8042.c | |||
@@ -1305,6 +1305,7 @@ static int __init i8042_create_aux_port(int idx) | |||
1305 | serio->write = i8042_aux_write; | 1305 | serio->write = i8042_aux_write; |
1306 | serio->start = i8042_start; | 1306 | serio->start = i8042_start; |
1307 | serio->stop = i8042_stop; | 1307 | serio->stop = i8042_stop; |
1308 | serio->ps2_cmd_mutex = &i8042_mutex; | ||
1308 | serio->port_data = port; | 1309 | serio->port_data = port; |
1309 | serio->dev.parent = &i8042_platform_device->dev; | 1310 | serio->dev.parent = &i8042_platform_device->dev; |
1310 | if (idx < 0) { | 1311 | if (idx < 0) { |
diff --git a/drivers/input/touchscreen/ads7846.c b/drivers/input/touchscreen/ads7846.c index a61b2153ab8c..1ce3ecbe37f8 100644 --- a/drivers/input/touchscreen/ads7846.c +++ b/drivers/input/touchscreen/ads7846.c | |||
@@ -1473,7 +1473,6 @@ static int ads7846_remove(struct spi_device *spi) | |||
1473 | 1473 | ||
1474 | ads784x_hwmon_unregister(spi, ts); | 1474 | ads784x_hwmon_unregister(spi, ts); |
1475 | 1475 | ||
1476 | regulator_disable(ts->reg); | ||
1477 | regulator_put(ts->reg); | 1476 | regulator_put(ts->reg); |
1478 | 1477 | ||
1479 | if (!ts->get_pendown_state) { | 1478 | if (!ts->get_pendown_state) { |
diff --git a/drivers/input/touchscreen/silead.c b/drivers/input/touchscreen/silead.c index 7379fe153cf9..f502c8488be8 100644 --- a/drivers/input/touchscreen/silead.c +++ b/drivers/input/touchscreen/silead.c | |||
@@ -390,9 +390,10 @@ static void silead_ts_read_props(struct i2c_client *client) | |||
390 | data->max_fingers = 5; /* Most devices handle up-to 5 fingers */ | 390 | data->max_fingers = 5; /* Most devices handle up-to 5 fingers */ |
391 | } | 391 | } |
392 | 392 | ||
393 | error = device_property_read_string(dev, "touchscreen-fw-name", &str); | 393 | error = device_property_read_string(dev, "firmware-name", &str); |
394 | if (!error) | 394 | if (!error) |
395 | snprintf(data->fw_name, sizeof(data->fw_name), "%s", str); | 395 | snprintf(data->fw_name, sizeof(data->fw_name), |
396 | "silead/%s", str); | ||
396 | else | 397 | else |
397 | dev_dbg(dev, "Firmware file name read error. Using default."); | 398 | dev_dbg(dev, "Firmware file name read error. Using default."); |
398 | } | 399 | } |
@@ -410,14 +411,14 @@ static int silead_ts_set_default_fw_name(struct silead_ts_data *data, | |||
410 | if (!acpi_id) | 411 | if (!acpi_id) |
411 | return -ENODEV; | 412 | return -ENODEV; |
412 | 413 | ||
413 | snprintf(data->fw_name, sizeof(data->fw_name), "%s.fw", | 414 | snprintf(data->fw_name, sizeof(data->fw_name), |
414 | acpi_id->id); | 415 | "silead/%s.fw", acpi_id->id); |
415 | 416 | ||
416 | for (i = 0; i < strlen(data->fw_name); i++) | 417 | for (i = 0; i < strlen(data->fw_name); i++) |
417 | data->fw_name[i] = tolower(data->fw_name[i]); | 418 | data->fw_name[i] = tolower(data->fw_name[i]); |
418 | } else { | 419 | } else { |
419 | snprintf(data->fw_name, sizeof(data->fw_name), "%s.fw", | 420 | snprintf(data->fw_name, sizeof(data->fw_name), |
420 | id->name); | 421 | "silead/%s.fw", id->name); |
421 | } | 422 | } |
422 | 423 | ||
423 | return 0; | 424 | return 0; |
@@ -426,7 +427,8 @@ static int silead_ts_set_default_fw_name(struct silead_ts_data *data, | |||
426 | static int silead_ts_set_default_fw_name(struct silead_ts_data *data, | 427 | static int silead_ts_set_default_fw_name(struct silead_ts_data *data, |
427 | const struct i2c_device_id *id) | 428 | const struct i2c_device_id *id) |
428 | { | 429 | { |
429 | snprintf(data->fw_name, sizeof(data->fw_name), "%s.fw", id->name); | 430 | snprintf(data->fw_name, sizeof(data->fw_name), |
431 | "silead/%s.fw", id->name); | ||
430 | return 0; | 432 | return 0; |
431 | } | 433 | } |
432 | #endif | 434 | #endif |
@@ -464,7 +466,7 @@ static int silead_ts_probe(struct i2c_client *client, | |||
464 | return -ENODEV; | 466 | return -ENODEV; |
465 | 467 | ||
466 | /* Power GPIO pin */ | 468 | /* Power GPIO pin */ |
467 | data->gpio_power = gpiod_get_optional(dev, "power", GPIOD_OUT_LOW); | 469 | data->gpio_power = devm_gpiod_get_optional(dev, "power", GPIOD_OUT_LOW); |
468 | if (IS_ERR(data->gpio_power)) { | 470 | if (IS_ERR(data->gpio_power)) { |
469 | if (PTR_ERR(data->gpio_power) != -EPROBE_DEFER) | 471 | if (PTR_ERR(data->gpio_power) != -EPROBE_DEFER) |
470 | dev_err(dev, "Shutdown GPIO request failed\n"); | 472 | dev_err(dev, "Shutdown GPIO request failed\n"); |