Commit graph

5122 commits

Author SHA1 Message Date
Linux Build Service Account
ae90b14a59 Merge "input: synaptics_dsx: allocate heap memory for temp buf" 2016-10-05 19:29:19 -07:00
Linux Build Service Account
ebe0e1b44c Merge "input: synaptics_dsx_core: make clocks as optional for secure touch" 2016-10-03 10:34:54 -07:00
Ravi Kumar Siddojigari
dab813eaa5 input: synaptics_dsx: allocate heap memory for temp buf
There is a possible stack overflow vulnerability in the rmidev_write
function because the stack array size is from user space.
changes to allocate heap memory for the temporary buffer instead of
stack memory to prevent the stack overflow vulnerability.
As discussed under  CVE-2016-3865 and ANDROID-28799389.

Change-Id: I20f639e09aaf3c533c98a12a2413570feae3d6d0
Signed-off-by: Ravi Kumar Siddojigari <rsiddoji@codeaurora.org>
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
2016-10-03 17:27:52 +05:30
Shantanu Jain
4bfc4cac73 input: touchscreen: Change dev_pm_ops for Goodix driver
Convert the driver to dev_pm_ops from SIMPLE_DEV_PM_OPS
in Goodix TS driver to reduce suspend/resume latency.

Change-Id: I45690b239c73f636538b864f0c4a7e539a02eedb
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
2016-09-28 13:22:05 +05:30
Himanshu Aggarwal
80fa7e9893 input: touchscreen: Fix issues in suspend path
Fix issues in suspend path in Goodix driver.

Change-Id: I280f2201c69838ad4da8eb94e9f10768f54ed457
Signed-off-by: Himanshu Aggarwal <haggarwa@codeaurora.org>4
Signed-off-by: Sudhakar Manapati <smanap@codeaurora.org>
2016-09-27 16:33:03 +05:30
Himanshu Aggarwal
12e637fc79 input: touchscreen: Remove redundant code from Goodix driver
Remove code that reads firmware from the header file,
this feature is not supported.

Change-Id: I6c18e153ddf18667ca83d47df20c71bce6dbfa21
Signed-off-by: Himanshu Aggarwal <haggarwa@codeaurora.org>
2016-09-27 15:55:44 +05:30
Shantanu Jain
e172c0da0e input: touchscreen: Remove irq polling from Goodix driver
Remove irq polling from Goodix driver. Use interrupt based
mechanism to process interrupts from touch controller.

Change-Id: I0a9037eac6e30a6319919043dd2ef1c226663af9
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
Signed-off-by: Sudhakar Manapati <smanap@codeaurora.org>
2016-09-27 15:31:07 +05:30
Shantanu Jain
1758da06e7 input: touchscreen: Add threaded irq support to Goodix driver
Add threaded irq support to Goodix touchscreen driver to reduce
the time spent with interrupts diabled to a bare minimum by
pushing the processing out into the kernel thread.

Change-Id: I3ade13181957d327ad9d0266b1999a4b0f2d8d1a
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
2016-09-26 21:30:43 -07:00
Abinaya P
03e992586f input: synaptics_dsx_core: make clocks as optional for secure touch
Make clocks needed for secure touch as optional. Hence, even if the
clocks are not defined, just proceed further and initialise the secure
touch session.

Change-Id: Id8fb80ca0297bc1d1854fdc710abce6a4d2f9620
Signed-off-by: Abinaya P <abinayap@codeaurora.org>
2016-09-26 16:18:36 +05:30
Shantanu Jain
cf29d5ea82 input: touchscreen: Add debugfs support for suspend/resume.
Add debugfs entry for suspend/resume that allow suspending/
resuming of Goodix CTP driver from userspace. Also change
the return type of goodix_ts_resume and goodix_ts_suspend
functions and set the status of gtp_is_suspended in the last
of above functions.

Change-Id: Ic2b1b2562b63ccecdf15bdc64ad7e45996d196d3
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
2016-09-26 16:09:42 +05:30
Sudhakar Manapati
740bb381f6 msm: reap unused kernel files
This change removes source files from the kernel tree that
were not being used during make.

Change-Id: I5132854367330a9b47f678409cbe6a45f2b5abb3
Signed-off-by: Sudhakar Manapati <smanap@codeaurora.org>
2016-09-25 22:52:45 -07:00
Shantanu Jain
f936c4437f input: touchscreen: Code clean-up for Goodix driver
Fix errors and warnings found by checkpatch script in
goodix_tool.c and gt9xx_update.c. Correct debug messages
in goodix_update.c. Remove magic numbers for read-write
flags with macros in goodix_tool.c

Change-Id: I3a00fb46106f859128f0fa9b8c99b5d6ba24bc7b
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
2016-09-25 22:52:18 -07:00
Shantanu Jain
43d81f370d input: touchscreen: Convert Goodix driver to dev_pm_ops
Convert Goodix driver to dev_pm_ops.
Add return type and parameters for suspend/resume for
Goodix driver.

Change-Id: I5243d9ab801f6964e675ad37c2161beda3586dfe
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
2016-09-22 22:25:05 -07:00
Shantanu Jain
18850432fd input: touchscreen: Change late_init call to module_init
Change late_initcall usage in goodix driver to module_init.

Change-Id: I59681138448584fc7a04c95dc8af3d4c3d395ff0
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
2016-09-22 22:24:58 -07:00
Shantanu Jain
3f4d270af7 input: touchscreen: Replace kernel thread with a workqueue
Replace the firmware update kernel thread with a workqueue.
Now the firmware upgrade procedure can be called later in
future time without blocking the registration of the
touchscreen driver. Using a kernel thread is an overhead in
the current driver as it is a one shot thread.

Change-Id: I0d4731148351652092fe7feede0b44828939d98b
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
2016-09-22 16:38:00 +05:30
Bingzhe Cai
db3a2341f0 input: touchscreen: power off touch panel during suspend
Allow turn off touch panel power and reconfigure related GPIOs
to maximize power saving.

Change-Id: I25d7dc8abbd6dae4c54ee14f8feaf5701f64fd95
Signed-off-by: Bingzhe Cai <bingzhec@codeaurora.org>
Signed-off-by: Sudhakar Manapati <smanap@codeaurora.org>
2016-09-21 01:55:22 -07:00
Shantanu Jain
7dca98d496 input: touchscreen: Add virtual key support from dtsi
Add virtual key support from device tree node and
corrected the sequence of virtual keys defined in
dtsi for Goodix driver.

Change-Id: Iee1db2eb07c00fd4338255b9648fac5e05aa9c6d
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
Signed-off-by: Abinaya P <abinayap@codeaurora.org>
2016-09-21 11:05:02 +05:30
Dmitry Shmidt
321249bb2f Merge remote-tracking branch 'common/android-4.4' into android-4.4.y-merge
Change-Id: I049d2e9d238a92d56100e8e317be6688497eb501
2016-09-20 13:12:59 -07:00
Eric Ernst
fa42b29f53 input: keyreset: switch to orderly_reboot
Prior restart function would make a call to sys_sync and then
execute a kernel reset.  Rather than call the sync directly,
thus necessitating this driver to be builtin, call orderly_reboot,
which will take care of the file system sync.

Note: since CONFIG_INPUT Kconfig is tristate, this driver can be built
as module, despite being marked bool.

Signed-off-by: Eric Ernst <eric.ernst@linux.intel.com>
2016-09-20 17:39:47 +00:00
Shantanu Jain
ccd9ea31e2 input: touchscreen: Add fw_name sysfs entry in Goodix driver
Add fw_name sysfs entry in Goodix driver. This entry allows
user to read and write firmware name from sysfs.

Change-Id: I69585d757f1a6dc40834a99ee67c872bf6f3ea13
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
2016-09-20 04:25:22 -07:00
Alex Shi
5f87c475f8 Merge branch 'linux-linaro-lsk-v4.4' into linux-linaro-lsk-v4.4-android
Conflicts:
	in fs/proc/task_mmu.c:
	looks like vma_get_anon_name() want have a name for anonymous
	vma when there is no name used in vma. commit: 586278d78b
	The name show is after any other names, so it maybe covered.
	but anyway, it just a show here.
2016-09-20 15:18:54 +08:00
Shantanu Jain
a1ffdaeafe input: touchscreen: Remove improper debug code
Remove unnecessary, redundant and improper debug code
and replace them with standard debug calls in Goodix
driver files.

Change-Id: I763598585cee9705d6def8b7fe61d3206788912b
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
Signed-off-by: Sudhakar Manapati <smanap@codeaurora.org>
2016-09-20 12:37:32 +05:30
Dmitry Shmidt
a517d900c6 This is the 4.4.21 stable release
-----BEGIN PGP SIGNATURE-----
 
 iQIcBAABCAAGBQJX2j/VAAoJEDjbvchgkmk+I68P/0F4XGYxJfbjXbZSv1Q5IZRG
 62mtwjjgF9ig3ORxAORfFEI8jNYtERvjpPWrCuvjwBqgcYb6AEsL62+AxNAg1ow/
 foMuSIDqgFDboVsLBIVWpyiHzOh598X7dakB3evFtceTbLsd1b03O4PYMmL1QbtP
 NJe1ZwK52abVzbH8lR3Utqh6oUX0p7gtNgG4KaU9eKu2Y/K7p/j1vUyrvVBANLLs
 gP26Y49SiSg5ARhbi+GLfoJ5mtrt4T6/i4U6rwjpveaKf5l5tx6smCg93OH7qLxP
 uhEsTKXgU+6/czPQSnR3LvPtX08c9HTfgBiJhqlBKVf9ClnLUKN+6b3l7FvQMxGP
 Sxu8YtKvCfYzm6GITZftlicZoEDmlU1wkOiJqH6QyR+FxQODMw/Y0InCsFoCY7WG
 09483Z32VJOLLSObHMzPsO1tETjJOkAAhZemg8WHhY4XVXTnN4llTOG+/LtTHyQd
 DEWoAqBPhNZgEH6ktrVQRcGcxqUiIeO/aOPa230yCxL0bQ+bNfn1MzrKO1fKUCt9
 fMpi8DLbof1zs39PYW18DAZbAp7/M07vugICZ56ugTPUVIzrGH4KpO4sA37XBQHX
 RUZKejCqdVgxPgBSADqEUfw8FnlEJAQjaU4ozp5Za1wKVAG0YMmnkBtM+lkaTIi6
 rGg8KFalYaZj+hLaPr02
 =aXSG
 -----END PGP SIGNATURE-----

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

This is the 4.4.21 stable release

Change-Id: I03e47d6fdca8084641c4b4f9658ea0b0edb8f297
2016-09-16 14:34:07 -07:00
Linux Build Service Account
38f8a6a313 Merge "input: touchscreen: pull down reset and interrupt pin before GT9xx powerup" 2016-09-15 22:51:49 -07:00
Bingzhe Cai
45e3baf40b input: touchscreen: pull down reset and interrupt pin before GT9xx powerup
According to vendor's suggestion, reset pin and interrupt pin must be
pulled down before touchpanel controller power up. This is required
for all Goodix devices.

Change-Id: If16fab02967abbd0c2a6e4365fed76f9e8729bc2
Signed-off-by: Bingzhe Cai <bingzhec@codeaurora.org>
2016-09-15 20:49:04 -07:00
Shantanu Jain
b3ba6ab788 input: touchscreen: Add devm_kzalloc calls to goodix driver
Change the kzalloc calls to devm_kzalloc calls to
avoid explicit kfree calls. Remove redundant kfree calls
to avoid double free. Fix error check path on devm_kzalloc
return values. Also remove redundant goto labels.

Change-Id: I62f0ff800318882067bc0f16b021cb344e340ecf
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
Signed-off-by: Sudhakar Manapati <smanap@codeaurora.org>
2016-09-15 20:48:52 -07:00
Shantanu Jain
452a316d0b input: touchscreen: Clean initialising linux kernel code
Use designated initializer code in gt9xx_update.c and
goodix_tool.c Goodix drivers.

Change-Id: Idc5b45c09813486c926ce52b2d41e81df526219b
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
2016-09-15 20:48:36 -07:00
Shantanu Jain
65d8af3092 input: touchscreen: Use macros for magic numbers in Goodix drivers
Use macros instead of  magic numbers for maximum i2c retries in
Goodix driver.

Change-Id: I9f7da9f43418cd1d423aaf331f41d37d13f248d4
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
2016-09-15 20:48:28 -07:00
Linux Build Service Account
01915cb32a Merge "input: it7258_ts_i2c: rename regulator_set_optimum_mode function" 2016-09-15 07:32:57 -07:00
Linux Build Service Account
08725d1775 Merge "input: touchscreen: Correct return value check in Goodix driver" 2016-09-15 07:32:53 -07:00
Linux Build Service Account
0912959250 Merge "input: touchscreen: Clean code for i2c_read and i2c_write" 2016-09-15 07:32:52 -07:00
Linux Build Service Account
0df70d17dd Merge "input: touchscreen: Use proper conventional functions for debug" 2016-09-15 07:32:51 -07:00
Bingzhe Cai
04d9861b14 input: touchscreen: add multiple config data support for GT9xx
Goodix GT9xx touchscreen driver supports up to six groups of config
data and uses hardware GPIO configuration to select which one will
be used. This change allows these six config groups to be loaded
from devicetree.

Change-Id: I9dfd698e7084164688dd964ed914d5eecc75ecd3
Signed-off-by: Bingzhe Cai <bingzhec@codeaurora.org>
Signed-off-by: Sudhakar Manapati <smanap@codeaurora.org>
2016-09-15 12:19:17 +05:30
Pavel Rojtberg
822480f8f4 Input: xpad - move pending clear to the correct location
[ Upstream commit 4efc6939a83c54fb3417541be48991afd0290ba3 ]

otherwise we lose ff commands: https://github.com/paroj/xpad/issues/27

Signed-off-by: Pavel Rojtberg <rojtberg@gmail.com>
Cc: stable@vger.kernel.org
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-09-15 08:27:48 +02:00
Pavel Rojtberg
efdd094f63 Input: xpad - correctly handle concurrent LED and FF requests
[ Upstream commit 7fc595f4c02636eadaeeecfe7bbc45b57c173004 ]

Track the status of the irq_out URB to prevent submission iof new requests
while current one is active. Failure to do so results in the "URB submitted
while active" warning/stack trace.

Store pending brightness and FF effect in the driver structure and replace
it with the latest requests until the device is ready to process next
request. Alternate serving LED vs FF requests to make sure one does not
starve another. See [1] for discussion. Inspired by patch of Sarah Bessmer
[2].

[1]: http://www.spinics.net/lists/linux-input/msg40708.html
[2]: http://www.spinics.net/lists/linux-input/msg31450.html

Signed-off-by: Pavel Rojtberg <rojtberg@gmail.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-09-15 08:27:46 +02:00
Abinaya P
278a037a7d input: it7258_ts_i2c: rename regulator_set_optimum_mode function
The function regulator_set_optimum_mode() has been renamed to
regulator_set_load(). So update the driver accordingly.

Change-Id: I7d69a4529368918f159a25769f497e6425838460
Signed-off-by: Abinaya P <abinayap@codeaurora.org>
2016-09-13 03:20:20 -07:00
Shantanu Jain
4e02797d45 input: touchscreen: Correct return value check in Goodix driver
Correct return value check of gtp_read_fw_version, called in probe
of the Goodix driver. The return value is actually the number of
registers read through gtp_i2c_read() function call.
Also change the error message of gtp_check_product_id.

Change-Id: I0b643e250a487f08a19555237802b020b0873d1a
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
2016-09-13 01:47:03 -07:00
Shantanu Jain
431c5aa98a input: touchscreen: Clean code for i2c_read and i2c_write
Use standard initializer code in gtp_i2c_read and
gtp_i2c_write functions for Goodix touchscreen driver.

Change-Id: Id954be61a0b4596339a659928fb630c5c5538a9a
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
Signed-off-by: Sudhakar Manapati <smanap@codeaurora.org>
2016-09-13 01:46:56 -07:00
Shantanu Jain
5741a47581 input: touchscreen: Use proper conventional functions for debug
Replace non-standard debug function with the conventional
functions in Goodix driver. And remove unnecessary debug
function used in Goodix driver.

Change-Id: Ia89d225333c1309710aab67b9c406784567e3050
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
Signed-off-by: Sudhakar Manapati <smanap@codeaurora.org>
2016-09-13 01:46:49 -07:00
Bingzhe Cai
24a8120f34 input: touchpanel: fix security issues in GT915 driver
There are multiple buffer overflow and input validation issues
in Goodix gt915 driver, fix these issues by adding data length
check and change file system node mode.

Change-Id: I5173fc1ca021fd45c939c7c8a4f460651330de5b
Signed-off-by: Bingzhe Cai <bingzhec@codeaurora.org>
Signed-off-by: Sudhakar Manapati <smanap@codeaurora.org>
2016-09-12 23:53:48 -07:00
Shantanu Jain
0ddb25d00e input: touchscreen: Add dynamic detection support to Goodix driver
Add dynamic detection support to goodix driver, where
the driver tries to read the chip id and make sure
it is communicating with the right chip.

gtp_read_version is modified to gtp_read_fw_version
which reads the firmware version from the controller
and will be used during fw update process.

Change-Id: I2dc51b84f817413da6bf9b266e2fe7e0bb09c4bc
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
Signed-off-by: Sudhakar Manapati <smanap@codeaurora.org>
2016-09-12 23:53:38 -07:00
Bingzhe Cai
90d5e14e32 input: touchscreen: modify report event according to MT protocol B
Multi-touch(MT) protocol B use input_mt_report_slot_state()
instead of send ABS_MT_TRACKING_ID event directly, so modify
the driver to follow the protocol and remove redundant protocol
A code.

Change-Id: I542e61fabaaa04fcf5fb7e454e10599511f18e39
Signed-off-by: Bingzhe Cai <bingzhec@codeaurora.org>
Signed-off-by: Sudhakar Manapati <smanap@codeaurora.org>
2016-09-12 23:52:59 -07:00
Shantanu Jain
c39dd15cf7 input: touchscreen: release all touches before suspend
Release all touches before going to suspend for goodix
gt9xx TS driver.

Change-Id: Ia3446f3c23be4fe29bfea5f85b22e8b903cffb9e
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
Signed-off-by: Sudhakar Manapati <smanap@codeaurora.org>
2016-09-12 23:52:52 -07:00
Figo Wang
6ae8594368 input: makefile: Add makefile and kconfig for GT9xx CTP
Add Makefile and Kconfig to build Goodix GT9xx Touchscreen
Driver.

Change-Id: Ibbcdcbb4563bc022d6e4034c37bc633eb9b34315
Signed-off-by: Figo Wang <figow@codeaurora.org>
Signed-off-by: Sudhakar Manapati <smanap@codeaurora.org>
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
2016-09-13 11:38:59 +05:30
Linux Build Service Account
d8ff4b6468 Merge "input: Makefile: include ITE tech touch driver for compilation" 2016-09-12 21:29:48 -07:00
Linux Build Service Account
a1bf0348c4 Merge "input: touchscreen: add support for IT7260 touch controller series" 2016-09-12 14:42:27 -07:00
Linux Build Service Account
023310d9d6 Merge "input: touchpanel: enable protocol B for skuf CTP driver" 2016-09-12 14:42:25 -07:00
Linux Build Service Account
0ac10439ff Merge "input: touchpanel: Add FB notifications support to GT9xx" 2016-09-12 14:42:24 -07:00
Linux Build Service Account
9c8924dbaa Merge "input: synaptics_2.6: add pinctrl support for Synaptics 2.6 driver" 2016-09-12 05:16:04 -07:00
Bingzhe Cai
4bf592770b input: touchpanel: enable protocol B for skuf CTP driver
Skuf use touch panel protocol B for touch event recognition that
needs enable this protocol in driver.

Change-Id: Ic855ed4fb0277a9bc5996bcb310db67b8ccf5c03
Signed-off-by: Bingzhe Cai <bingzhec@codeaurora.org>
Signed-off-by: Sudhakar Manapati <smanap@codeaurora.org>
2016-09-12 05:03:53 -07:00