Commit graph

5122 commits

Author SHA1 Message Date
Bingzhe Cai
ed6a734b04 input: touchpanel: Add FB notifications support to GT9xx
Add support for FB notifications to trigger suspend/resume
based on FB blank/unblank events.

Change-Id: I61803e3a731e047d0641e3b1ccbae58b9bd1bd89
Signed-off-by: Bingzhe Cai <bingzhec@codeaurora.org>
Signed-off-by: Sudhakar Manapati <smanap@codeaurora.org>
2016-09-12 05:03:47 -07:00
Bingzhe Cai
8b439ca7fa input: touchpanel: Add power control to GT9xx driver
Add power initialization  function to request internal and external
LDO depends on device tree configuration. Add power control function
to enable and disable device power.

Change-Id: If063900f8cd61c36c4b200d781c68e742cd6bbaf
Signed-off-by: Bingzhe Cai <bingzhec@codeaurora.org>
Signed-off-by: Sudhakar Manapati <smanap@codeaurora.org>
2016-09-12 05:03:41 -07:00
Sudhakar Manapati
9d4062a965 input: touchscreen: add support for IT7260 touch controller series
IT7260 touch controllers are capacitative touch controller ICs
with multi-touch support and can detect upto 3 fingers.

Change-Id: I20a4339639a715111a340b7a607448ec7078549e
Signed-off-by: Abinaya P <abinayap@codeaurora.org>
2016-09-12 17:25:58 +05:30
Abinaya P
5d690a9685 input: Makefile: include ITE tech touch driver for compilation
Add ITE tech touch screen driver for the compilation.

Change-Id: Iee6abc583917968879a19a5e67b4db08d506c794
Signed-off-by: Abinaya P <abinayap@codeaurora.org>
2016-09-12 15:00:31 +05:30
Changmin Liu
79f23effb8 input: synaptics_2.6: add pinctrl support for Synaptics 2.6 driver
Add pinctrl support for Synaptics S2333 controller so that the irq and
pwr pins could be pulled up when probed and resumed. Furthermore, they
should be pulled down when suspended and removed.

Change-Id: If517747243a605eacd1f6ffd6d1f7c0d45d06c1b
Signed-off-by: Changmin Liu <changmil@codeaurora.org>
2016-09-12 14:40:02 +05:30
Bingzhe Cai
1f24ee5748 input: touchpanel: Add DT support for Goodix touchpanel driver
Add device tree parser to allow Goodix touchpanel driver to get
board dependent configuration from device tree.

Change-Id: I702400140130fd3b673e0e13a8dbdb7060bba881
Signed-off-by: Bingzhe Cai <bingzhec@codeaurora.org>
Signed-off-by: Sudhakar Manapati <smanap@codeaurora.org>
2016-09-12 02:04:51 -07:00
Xiaonian Wang
d418cf9054 input: synaptics_dsx_2.6: not reinit when spontaneous reset is detected
There is no need to reinit device when spontaneous reset is detected,
touch will recover by itself.

Change-Id: Ifb5b134d0fbeb2f55f16af8806abb9c8e51c35e0
Signed-off-by: Xiaonian Wang <xiaonian@codeaurora.org>
2016-09-11 23:25:26 -07:00
Shantanu Jain
1919671d4d input: synaptics_dsx_2.6: correct secure_touch_init function
In synaptics_dsx_2.6 touch driver, secure_touch_init tries to get
the QUP clocks for the secure touch functionality. But as these
calls are optional and TZ might get the owenership of these clocks,
this change removes the error return statement, so that the
secure touch can be initialized properly.

Change-Id: I12b5075d484cd397bfb423479589e159a2193f31
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
2016-09-12 11:52:37 +05:30
Himanshu Aggarwal
501c621ee3 input: ft5x06: check return value of kobject_create_and_add
The Focaltech driver creates a sysfs under sys/kernel/ts_info
to access touch panel details. However, the return value of the
API is not checked properly. Check the return value of the API.
Also avoid making a duplicate copy of the kobject and clean up
the show routine.

Change-Id: Ib36e9d7661ee3d2ce7b229d8692e6212e33cbf36
Signed-off-by: Himanshu Aggarwal <haggarwa@codeaurora.org>
2016-09-09 03:28:36 -07:00
Abinaya P
d30cccfe22 input: ft5x06: Add support for clocks for secure touch on 8937 QRD
Because of a change in the underlying bus driver, the secure touch
layer in the input drivers is now required to control directly the
clocks which are needed during the touch sessions. The clocks which
are associated with the underlying I2C bus are clk_gcc_blsp1_ahb_clk
and clk_gcc_blsp1_qup3_i2c_apps_clk. These clocks are turned on/off
when the secure touch session is started/ended.

Change-Id: If5abca579e264cc7799310628c4e379ac4368e7e
Signed-off-by: Abinaya P <abinayap@codeaurora.org>
2016-09-09 03:28:28 -07:00
Abinaya P
93d6b9b0b4 input: ft5x06: create secure touch sysfs files
This patch creates two sysfs files for secure touch -
secure_touch and secure_touch_enable which will be
accessed by secure ui app. We also define the store
and show function for these sysfs files.

Change-Id: I4bc156de12a8b41c3640c4f1fb2d32ca3d8b5b43
Signed-off-by: Abinaya P <abinayap@codeaurora.org>
2016-09-09 15:53:54 +05:30
Dmitry Shmidt
5c0fc54c9b This is the 4.4.20 stable release
-----BEGIN PGP SIGNATURE-----
 
 iQIcBAABCAAGBQJXz7SnAAoJEDjbvchgkmk+bSYP/A9pJTr4mYzV6eG85FYupYcy
 HLeVRgUoLM6ShgqdsEDI1U6GH60GjzeCEWQ3ZC3Tvkj9BrbhSkFIIetF7ikszedN
 rEZBtvbQxn2j6ST2E98zBY6AMX/j65XJw5iiSKaG9iyWdAPinfUmtMUJpMDJkuUE
 3chDjKpNXyAMmlvwf1UCmN27OH4mrVKyK0nbLujQCGFC1Yh3ELlGV5GumGFApmyB
 +oBF4jcqn8b/9JwRWUB9P3IuFMtGC4ESn36lI8FgRWRpfHxa2i/Arc8CTJO7mEIX
 ojLyiEYMoi3fM4qCVN75oKnStD73qpQIYkUE2H22uj5ovt4sPu/R7TtMJcwXl7RJ
 3c+LV0n+b6RhIws4USoFv9unK+t6F2u6zq0cqQ9Az7qU9T1V37An+Pqzwim8Evf7
 bPYlCVHfa3mimYi/1bNRyNp+RaBwOhqCdZD96am/wEysQ1mwWlhYNEU/Vy0+tUfg
 cP7NhjMmFdP321QEimJwVp0SVW0tekd/kCQ4zcY5VNS3aQaxopinzSyKWsC+o9Ji
 WG6Yi6SLSgLnvS0fQJaRv12pXZGiermyKzMvIW6wq5NpwvzQhm0x44fzhWcgMVxv
 LuMvu0TQIbeDwucBC8XUjw4RYZpJdq/WK5Er7QVS4giknP8FqtBil8QtOWpqzsJ9
 ZsWht54uQw0Jx9dj6vcR
 =jg6w
 -----END PGP SIGNATURE-----

Merge tag 'v4.4.20' into android-4.4.y

This is the 4.4.20 stable release
2016-09-07 14:36:44 -07:00
Dmitry Torokhov
9781b971f4 Input: i8042 - set up shared ps2_cmd_mutex for AUX ports
commit 47af45d684b5f3ae000ad448db02ce4f13f73273 upstream.

The commit 4097461897df ("Input: i8042 - break load dependency ...")
correctly set up ps2_cmd_mutex pointer for the KBD port but forgot to do
the same for AUX port(s), which results in communication on KBD and AUX
ports to clash with each other.

Fixes: 4097461897df ("Input: i8042 - break load dependency ...")
Reported-by: Bruno Wolff III <bruno@wolff.to>
Tested-by: Bruno Wolff III <bruno@wolff.to>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-09-07 08:32:44 +02:00
Dmitry Torokhov
11dd037e42 Input: i8042 - break load dependency between atkbd/psmouse and i8042
commit 4097461897df91041382ff6fcd2bfa7ee6b2448c upstream.

As explained in 1407814240-4275-1-git-send-email-decui@microsoft.com we
have a hard load dependency between i8042 and atkbd which prevents
keyboard from working on Gen2 Hyper-V VMs.

> hyperv_keyboard invokes serio_interrupt(), which needs a valid serio
> driver like atkbd.c.  atkbd.c depends on libps2.c because it invokes
> ps2_command().  libps2.c depends on i8042.c because it invokes
> i8042_check_port_owner().  As a result, hyperv_keyboard actually
> depends on i8042.c.
>
> For a Generation 2 Hyper-V VM (meaning no i8042 device emulated), if a
> Linux VM (like Arch Linux) happens to configure CONFIG_SERIO_I8042=m
> rather than =y, atkbd.ko can't load because i8042.ko can't load(due to
> no i8042 device emulated) and finally hyperv_keyboard can't work and
> the user can't input: https://bugs.archlinux.org/task/39820
> (Ubuntu/RHEL/SUSE aren't affected since they use CONFIG_SERIO_I8042=y)

To break the dependency we move away from using i8042_check_port_owner()
and instead allow serio port owner specify a mutex that clients should use
to serialize PS/2 command stream.

Reported-by: Mark Laws <mdl@60hz.org>
Tested-by: Mark Laws <mdl@60hz.org>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-09-07 08:32:44 +02:00
Masahiro Yamada
d6720176bc Input: tegra-kbc - fix inverted reset logic
commit fae16989be77b09bab86c79233e4b511ea769cea upstream.

Commit fe6b0dfaba ("Input: tegra-kbc - use reset framework")
accidentally converted _deassert to _assert, so there is no code
to wake up this hardware.

Fixes: fe6b0dfaba ("Input: tegra-kbc - use reset framework")
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Acked-by: Thierry Reding <treding@nvidia.com>
Acked-by: Laxman Dewangan <ldewangan@nvidia.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-09-07 08:32:44 +02:00
Abinaya P
fb11f3cfe6 input: ft5x06: add secure touch support for Focaltech on 8937 QRD
8937 QRD supports Focaltech touch controller. For ft5x06_ts driver
to work with the TrustZone secure touch, all the touch interrupts must
be forwarded between the Linux Kernel and the TrustZone input driver.
Add APIs and configuration to support this.

CRs-Fixed: 974549
Change-Id: Ibf873594722c6f299eb4cacf81804cb6548824a4
Signed-off-by: Abinaya P <abinayap@codeaurora.org>
2016-09-05 22:03:37 -07:00
zhaoyuan
5c6da5653e input: ft5x06: defer touch resume to workqueue
During device resume, the touch resume function is called after display's
resume. In this case, the ft5x06's resume function needs to wait for
200ms because of reset requirement. Defer the touch resume to a workqueue
to reduce the total device resume time. For this an optional DT property
is added to enable this on targets that need this feature.

Change-Id: Ib0677ca792aea83ece1caf8a0afff341302747fb
Signed-off-by: Himanshu Aggarwal <haggarwa@codeaurora.org>
Signed-off-by: zhaoyuan <yzhao@codeaurora.org>
2016-09-05 22:01:46 -07:00
Mao Li
4d840dce08 input: ft5x06_ts: add sysfs to access touch module info
Add sysfs under sys/kernel/ts_info to access touch vendor name,
model number, firmware version.

Change-Id: I531c7fa7db2b7140e5b9c7bb31831d221c734e3e
Signed-off-by: Mao Li <maol@codeaurora.org>
2016-08-30 22:17:01 -07:00
Sudhakar Manapati
d0d1f78347 input: ft5x06_ts: remove proximity sensor support
remove psensor support as the linux/sensors.h file is not yet merged
in msm-3.18 kernel.

Change-Id: I6d46b35938b7420072f9245ffa27bb59f28d5e03
Signed-off-by: Sudhakar Manapati <smanap@codeaurora.org>
2016-08-30 22:16:55 -07:00
Sudhakar Manapati
11489ea70f input: sensors: change sensors classdev device's parent to input devices
Sensor HAL takes long time to scan /dev/input to get information
from input subsystem. Change sensors sysfs hierarchy to avoid
the scanning to reduce sensor HAL initialization time.

Change-Id: Ifcd560dacdba2600f2ae5d40a5c3e639ea291274
Signed-off-by: Sudhakar Manapati <smanap@codeaurora.org>
2016-08-30 22:16:46 -07:00
Mao Li
d81508ebf8 input: ft5x06_ts: correct the status of the pocket mode
Do not need to call function to enter pocket mode if the touch
panel is already in pocket mode as well as no need to call function
to leave pocket mode if it is not in pocket mode.

Change-Id: Ic26376bebeba8e7f0dd37ef3bfbbed36c621604b
Signed-off-by: Mao Li <maol@codeaurora.org>
2016-08-30 22:16:39 -07:00
Mao Li
4c6290a14f input: ft5x06_ts: fix compiling error in FT CTP driver
Change dev_debug to dev_dbg to fix compiling error
if CONFIG_TOUCHSCREEN_FT5X06_PSENSOR is enabled.

Change-Id: Ic228ac8b6dec0bc3e1aaff890dc5b1b7c024bdfc
Signed-off-by: Mao Li <maol@codeaurora.org>
2016-08-30 22:16:18 -07:00
Mao Li
eb86decf8f input: ft5x06_ts: do not free input_dev after unregister it
Once the input device is successfully registered via
input_register_device(), it has to be unregistered via
input_unregister_device(); input_free_device()
should not be called in this case. input_unregister_device()
frees the input device, hence the call to input_free_device()
is a double free. This is also described in comments of
input_unregister_device().

Reorganize the code to avoid a double free.

Change-Id: I7abee3f1ad6c73e1c38aa64e627ffd73f6f9d3b2
Signed-off-by: Mao Li <maol@codeaurora.org>
2016-08-30 22:15:45 -07:00
Mao Li
1a0b4f1561 input: ft5x06_ts: add gesture feature support
Focaltech touch controller FT6436 support new feature Screen-off-Gesture.
It is able to turn on the screen by drawing gestures on the touch screen
when the screen is during off status. Enable the FT CTP driver to support
the screen off gesture recognization.

This patch is propagated from msm-3.18 kernel.
'commit 5cc0bff80d65 ("input: ft5x06_ts: add gesture feature support")'
Also cleared the following checkpatch warnings.
- Missing a blank line after declarations
- Missing a blank line after declarations
- Comparisons should place the constant on the right side of the test.

Change-Id: I77d111d3ef800b636a337221d7e605f746a113dd
Signed-off-by: Mao Li <maol@codeaurora.org>
Signed-off-by: Sudhakar Manapati <smanap@codeaurora.org>
2016-08-30 22:15:36 -07:00
Mao Li
ff1443ebaa ARM: dts: msm: correct Focaltech CTP irq flag configuration
Fixed below irq flag issues of Focaltech CTP:
Focaltech CTP firmware generates edge interrupt to MSM, but the
interrupt type in DTSI is level, which will cause CTP interrupt
cannot wake up MSM when system is in deep sleep. Fix this by
setting edge irq flag in DTSI.

For GPIO irq, the irq flag should be specified in "interrupts"
node. Msm_gpio module will only use the lower 8-bit of
"interrupts" node and discards the upper bits. If we specify
0x2002 in "interrupts" node, the upper bits(0x2000) is not used
by msm_gpio, only lower bits(0x2) is used, that means only
lower bits(0x2) should be set in "interrupts" node.

"focaltech,irq-gpio" node is used to specify gpio property,
rather than irq flag. Remove the irq flag setting in this node.

In driver code, specify only "IRQF_ONESHOT". The irq trigger type
is specified by DTSI "interrupts" node. See above.

Change-Id: I4cd8596fb4538b701317f01a6cafaa771041ffdd
Signed-off-by: Mao Li <maol@codeaurora.org>
2016-08-30 22:15:27 -07:00
Badhri Jagan Sridharan
258a8f519a UPSTREAM: Input: powermate - fix oops with malicious USB descriptors
The powermate driver expects at least one valid USB endpoint in its
probe function.  If given malicious descriptors that specify 0 for
the number of endpoints, it will crash.  Validate the number of
endpoints on the interface before using them.

The full report for this issue can be found here:
http://seclists.org/bugtraq/2016/Mar/85

BUG: 28242610

Reported-by: Ralf Spenneberg <ralf@spenneberg.net>
Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Badhri Jagan Sridharan <Badhri@google.com>
Change-Id: I1cb956a35f3bba73324240d5bd0a029f49d3c456
2016-08-30 13:41:35 -07:00
Linux Build Service Account
627ff531cb Merge "input: synaptics_dsx_2.6: correct sysfs permissions" 2016-08-29 00:49:26 -07:00
Linux Build Service Account
2b4e8cbd34 Merge "Revert "Merge remote-tracking branch 'msm-4.4/tmp-510d0a3f' into msm-4.4"" 2016-08-29 00:49:25 -07:00
Linux Build Service Account
9a7c65cabe Merge "input: synaptics_dsx_2.6: fix issues raised by static analyzer" 2016-08-26 22:22:50 -07:00
Linux Build Service Account
1c416b0f74 Merge "input: ft5x06_ts: add proximity feature support" 2016-08-26 22:22:20 -07:00
Trilok Soni
5ab1e18aa3 Revert "Merge remote-tracking branch 'msm-4.4/tmp-510d0a3f' into msm-4.4"
This reverts commit 9d6fd2c3e9 ("Merge remote-tracking branch
'msm-4.4/tmp-510d0a3f' into msm-4.4"), because it breaks the
dump parsing tools due to kernel can be loaded anywhere in the memory
now and not fixed at linear mapping.

Change-Id: Id416f0a249d803442847d09ac47781147b0d0ee6
Signed-off-by: Trilok Soni <tsoni@codeaurora.org>
2016-08-26 14:34:05 -07:00
Abinaya P
546640e83f input: synaptics_dsx_2.6: correct sysfs permissions
Set correct permissions for sysfs nodes.
1. Show method of write only sysfs attributes is set to NULL
since the attributes are write-only.
2. Store method of read only sysfs attributes is set to NULL
since the attributes are read-only.

Change-Id: I93b14e22da57a8a47a02080a05a9b8c666970272
Signed-off-by: Abinaya P <abinayap@codeaurora.org>
2016-08-25 09:42:58 +05:30
Shantanu Jain
29e0ce3c54 input: synaptics_dsx_2.6: fix issues raised by static analyzer
Fix issues raised by static analyzer:
1. initialize "retval" before being returned from the driver function.
2. Check return value of the function create_singlethread_workqueue()
   and return -ENOMEM if it failed. If creation of the workqueue
   failed, then both queue_work() and queue_delayed_work() calls will
   later crash, as they expect the workqueue pointer to be a non-NULL
   value. Also add clean-up code for this.
3. check return value of the snprintf() call as array 'buf' of size
   16 may use index value(s) 16...20.

CRs-Fixed: 995687
Change-Id: I89d9f7cacbcf23de43a7e96556d1ac65911126d6
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
2016-08-24 17:01:17 +05:30
Mao Li
11edf4f33c input: synaptics_dsx_2.6: fix CTP power issue for QRD8953
Synaptics touch controller does not go to sleep in suspend because
L6 is still enabled. Disable L6 in suspend to ensure CTP go into
sleep mode.

Change-Id: I40f3f380c1a85c292029d4e22e49bebf25bd198c
Signed-off-by: Mao Li <maol@codeaurora.org>
2016-08-24 16:56:28 +05:30
zhaoyuan
b378a2f8ba input: synaptics: defer touch resume to workqueue for v2.6 driver
During device resume, the touch resume function is called after
display resume. Touch resume function will take about >200ms.
Defer the touch resume function to a workqueue to reduce the total
device resume time. An optional DT property is added to enable this
on targets that need this feature.

This change has been merged. Now, touch driver was updated to V2.6,
so, merge this change to V2.6 driver.

Change-Id: Ica477f35bd4fda59eb49c9b4f5e88b460366c761
Signed-off-by: zhaoyuan <yzhao@codeaurora.org>
2016-08-24 16:50:27 +05:30
Shantanu Jain
a0732e6085 input: synaptics_dsx_2.6: Add support for clocks for secure touch
Because of a change in the underlying bus driver, the secure touch
layer in the input drivers is now required to control directly the
clocks which are needed during the touch sessions. The clocks which
are associated with the underlying I2C bus are clk_gcc_blsp1_ahb_clk
and clk_gcc_blsp1_qup3_i2c_apps_clk. These clocks are turned on/off
when the secure touch session is started/ended.

CRs-Fixed: 990820
Change-Id: Ie2f6f5b736b27792e6e4dc2c39064e0ebdc03d7b
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
Signed-off-by: Abinaya P <abinayap@codeaurora.org>
2016-08-24 16:39:41 +05:30
Mao Li
5001421424 input: synaptics_dsx_2.6: remove fake touch points
Update F12 touch report function with adding input_sync to
correct the pointer reporting status.

Change-Id: Iefe24525a9551736a6044697b447a25e2c5c65ca
Signed-off-by: Mao Li <maol@codeaurora.org>
2016-08-24 16:29:41 +05:30
Shantanu Jain
52344fa3c6 input: synaptics_dsx_2.6: creation of secure touch sysfs ifiles
This patch creates two sysfs files for secure touch - secure_touch
and secure_touch_enable, which will be accessed by secure UI app.
We also define the store and show function for these sysfs files.

Change-Id: Id43118120d4a1f0682904f48b3584d3ba62ef1dd
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
2016-08-24 16:23:20 +05:30
Shantanu Jain
930440dc31 input: synaptics_dsx_2.6: add secure touch support for Synaptics V2.6
8953 QRD supports Synaptics touch controller. For synaptics_dsx_2.6 driver
to work with the TrustZone secure touch, all the touch interrupts must
be forwarded between the Linux Kernel and the TrustZone input driver.
Add APIs and configuration to support this.

Change-Id: I47520f9ba91b7645dff2c11b4c58a0b7aeed2765
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
2016-08-24 16:13:09 +05:30
Mao Li
fd296540ae input: ft5x06_ts: add proximity feature support
Focaltech's CTP FT6436 is able to behave like a proximity sensor.
Enable the driver support this new feature.

Also cleared the chekpatch warning on 3.18 kernel.

Change-Id: I7a6ec3a387536c512637b0bd8dab95e7cceca212
Signed-off-by: Mao Li <maol@codeaurora.org>
Signed-off-by: Sudhakar Manapati <smanap@codeaurora.org>
Signed-off-by: Abinaya P <abinayap@codeaurora.org>
2016-08-23 11:35:51 +05:30
Dmitry Shmidt
aa349c0a96 This is the 4.4.19 stable release
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2
 
 iQIcBAABCAAGBQJXuIDJAAoJEDjbvchgkmk+i10QALySg/PFXDJ6AwUskGbetHBz
 RnsJ8WzjtzBR5vAyaru2vkD/GhFmM3ziG8guQK3uWGhhfpB+CPJjDmYIY1O5Djma
 CviyB6UsEIuf2zN7U70WSmjJ/FyD7XRqjGnEX9u5YGS4WQTFPnPttE4HE82ErEEW
 IocnBGFZriGye9D/2O6OjTDgIusLsZ6WKawK0OyeKiUrTUsmhLBtW0nfMHd/snNw
 4Aas0j6g5tjYrNBUyKqmkYhi7S2kFyZ7QH1vqrXxUHu4CNslTa6i1VTkQ+uVxbuF
 Vw9DLP6KEmB/Q5KyIVFMmEv6E5vvgymv7rrQ4c7pu6vqmHzbdtaWxZFM18EnIXOk
 qe8/9wzF4ahw+h/0ddmjpjmWi/SRYG8PmobgTWmIqJl+SNq4VK2G/GRkWce45EDi
 lMO6UI4qUd8vMw1OJOdKwp8C/D+l5V1qrVlQTVba8IJsH2fKFw9aSKAGwpppawfl
 CiESwHhSINGfhGzDyYS/keo1JM0KDyGc3EYQG5DaSzNZu4jqkhNPjBlQEOJug3/I
 6LDrWQo4+qC6vJJ836NyRvakv1WDL8AsHmTOuiW8h8LzcGsaxac9L7HMRgwItXAs
 aWTXg2eBoJXkBQalglvhSzGqBJl2ytlu0Efxg97zEL1huZuYDdzf9tO7hqMujZhc
 k+SnQTS6JXVuDe46uDyb
 =JLSE
 -----END PGP SIGNATURE-----

Merge tag 'v4.4.19' into android-4.4.y

This is the 4.4.19 stable release
2016-08-22 14:09:08 -07:00
Sudhakar Manapati
49aaf48f47 input: ft5x06_ts: add NULL pointer check
Add null pointer exception check for pointers which
may be NULL after memory allocation failure and may
be deferenced.

This patch is propagated from msm-3.18 kernel.
 'commit 5c6aa1bb97a3 ("input: ft5x06_ts: add NULL
pointer check")'

Change-Id: Ied34d548bff27f8f6da9f4c81896e4505cdce218
Signed-off-by: Sarada Prasanna Garnayak <c_sgarna@codeaurora.org>
Signed-off-by: Sudhakar Manapati <smanap@codeaurora.org>
2016-08-22 11:11:53 +05:30
Sudhakar Manapati
0d7758f93a input: ft5x06_ts: pinctrl and gpio config in suspend/resume path
When device switch to suspend state the gpio and pinctrl need to be
configured properly to prevent the touch controller current leakage in
device suspend state. The pinctrl must be configure first before
the gpio configuration. Select the pinctrl sleep state and after that
in gpio configuration part free both IRQ and reset gpio, and also set
direction of reset gpio to be input. If the gpio and pinctrl is not in
proper state the touch controller will not switch to the deep sleep state
and it will start consume current during the device suspend state.
To prevent this leakage current issue, pinctrl and gpio must be
configured properly.

This patch is propagated from msm-3.18 kernel.
'commit 494eae39f2a4 ("input: ft5x06_ts: pinctrl and gpio config in
suspend/resume path")'
Also cleared checkpatch errors on msm-3.18 kernel.

Change-Id: I0ec72bbbf12320ad22608522d1250614c6686fe3
Signed-off-by: Sarada Prasanna Garnayak <c_sgarna@codeaurora.org>
Signed-off-by: Sudhakar Manapati <smanap@codeaurora.org>
2016-08-22 11:04:59 +05:30
Shantanu Jain
14632a5cfb input: focaltech: release pinctrl resources on probe failure
devm_pinctrl_get() does not release the ownership of mux function
of pins in the associated pin-group whenever a failure occurs in
driver probe routine. i.e struct pin_desc's mux_owner field is
still marked as being in use after a failure occurs in probe.
As a result of this, if another driver tries to acquire the
ownership of same pin, it gets an error while applying that
setting. To fix this, explicitly release the mux function
ownership of the the pin, by adding a new pin-group in pinctrl
DT and a new pinctrl state in touch device's DT node. This new
pin-group does not have a function setting (qcom,pin-func property).
This new state is explicitly activated during a probe failure
and driver remove routine to release the mux function ownership.

The patch also reorganizes the pinctrl related code in driver.

This patch is propagated from msm-3.18 kernel.
'commit f09a0560dde9 ("input: focaltech: release pinctrl resources
on probe failure")'

Change-Id: I16a97fefc64dd171deb800b481aa74a797c9ad55
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
2016-08-21 21:51:45 -07:00
Mao Li
cbb13b31eb input: ft5x06_ts: fix the Focaltech CTP current leakage issue
Focaltech touch controller does not go to sleep in suspend because
the pinctrl operation inadvertently resets the touch controller.
Remove the pinctrl operation in suspend and resume callback to
prevent this spurious reset.

This patch is propagated from msm-3.18 kernel.
'commit 7e2ea02b16de ("input: ft5x06_ts: fix the Focaltech CTP
current leakage issue")'

CRs-Fixed: 1046961
Change-Id: Ifa02c0287195d7ce55fb2d8ac49ec1c8ae5baec9
Signed-off-by: Mao Li <maol@codeaurora.org>
2016-08-21 21:51:31 -07:00
Mao Li
888157c601 input: ft5x06_ts: add support for pinctrl framework
Migrate the Focaltech driver to use pinctrl framework for GPIO
configuration so that driver is compatible with targets that
use and targets that don't use pinctrl framework.

This patch is propagated from 3.18 kernel
'commit 266d1fe0f630 ("input: ft5x06_ts: add support for
pinctrl framework")'

Change-Id: I84fc2a6d30f831b4b054780b107ce105614855ea
Signed-off-by: Mao Li <maol@codeaurora.org>
2016-08-21 21:42:11 -07:00
Mao Li
405643a77e input: ft5x06_ts: check vendor id before upgrade FT firmware
Upgrade the firmware only if same vendor id is found both in existing
fw and new fw to be upgraded.

This patch is propagated from 3.18 kernel
'commit dba19fc86781 ("input: ft5x06_ts: check vendor id before
upgrade FT firmware")'

Change-Id: Idfc50da45891a1475ac6b35d80c7d725607cbf81
Signed-off-by: Mao Li <maol@codeaurora.org>
2016-08-21 21:41:58 -07:00
Sudhakar Manapati
fa14a65666 input: touchscreen: change the focaltech firmware upgrade method
upgarde firmware on the touch controller when the new firmware
version is geater than the current firmware version. Update the
firmware version id after successful firmware update. skip
firmware update when device is in suspend state.

This patch is propagated from msm-3.18 kernel
'commit 8399308e570e ("input: touchscreen: change the focaltech
firmware upgrade method")'

CRs-Fixed: 1046961
Change-Id: Ic462f6483887a3654665852e58ae9891de9f5eff
Signed-off-by: Sarada Prasanna Garnayak <c_sgarna@codeaurora.org>
Signed-off-by: Sudhakar Manapati <smanap@codeaurora.org>
2016-08-21 21:41:40 -07:00
Mao Li
19cda0c39a input: ft5x06_ts: add support for firmware update for CTP FT6X36
The firmware image format is changed in CTP FT6436. Also vendor
id and version id are read from fw image from a different offset
as compared to previous controllers. The driver is updated to
support the new image format.

This patch is propagated from msm-3.18 kernel
'commit 6146c68f81b4 ("input: ft5x06_ts: add support for firmware
update for CTP FT6X36")'

Change-Id: I465fdfa73e56e8fc4bbfdde980c558e4715d6d08
Signed-off-by: Mao Li <maol@codeaurora.org>
Signed-off-by: Sudhakar Manapati <smanap@codeaurora.org>
2016-08-21 21:12:40 -07:00
Sudhakar Manapati
a80c7960f1 input: ft5x06_ts: remove deprecated apis in 3.18 kernel
This patch removes the usage of deprecated apis like
usleep(), __devexit_p, etc.

This is a propagated patch from 3.18 kernel
'commit 20482b216b8a ("input: ft5x06_ts: remove
deprecated apis in 3.18 kernel")'

Change-Id: I77cedabdb234a643f96427f051038faad31bfdcf
Signed-off-by: Sudhakar Manapati <smanap@codeaurora.org>
2016-08-21 21:12:17 -07:00