Fix memory corruption in Goodix touchscreen driver, by resetting
the global structure cmd_head to zero (except *data and wr flag)
in goodix_tool_write handler on error case.
CAF-Change-Id: I4f7f8f464b93571627b922b10c10a65826228e42
Signed-off-by: Vevek Venkatesan <vevekv@codeaurora.org>
CVE-2017-0622
Change-Id: I19c78864f8734b68bc6ae1de3e4853de624c7c03
Signed-off-by: Kevin F. Haggerty <haggertk@lineageos.org>
* Samsung sources have type mismatches in 3 of their drivers. This was
uncovered using linaro's toolchain for kernel compilation.
Change-Id: If3a083ffcb2a15185ff208b22976509ffd8af5e8
Signed-off-by: Kevin F. Haggerty <haggertk@lineageos.org>
concurrent sysfs calls on the fw updater can cause
ugly race conditions. Return EBUSY on concurrent sysfs calls.
For sysfs calls which generate deferred work, prevent
the deferred work from running concurrently with other
sysfs calls.
Also check that ext_data_source is appropriately sized
and allocated, based on a patch by
Gengjia Chen (chengjia4574@gmail.com).
Signed-off-by: Andrew Chant <achant@google.com>
Change-Id:I5bbe4992f3fd2d23db288296eaeb61f5831098e9
Bug: 30799828
Bug: 31252388
Git-repo: https://android.googlesource.com/kernel/msm.git
Git-commit: 287ce2ccfefe68067c1f9f5175b6664bf7397fe6
Signed-off-by: Srinivasa Rao Kuppala <srkupp@codeaurora.org>
On some hardware when synaptics_rmi4_detection_work() is called,
exp_fn_list is still empty because module_init of synaptics_fw_update
is called later. As a result of this sysfs files required for firmware
update are not created. This patch changes the link order to ensure
that exp_fn_list is properly initialized before
synaptics_rmi4_detection_work() is called when all Synaptics modules
i.e. synaptics_fw_update, synaptics_rmi_dev and synaptics_i2c_rmi4 are
statically linked into the kernel.
CRs-fixed: 634135
Change-Id: Ib0b8e82ed569ecb18788b8aec6e1c9771e74fd2d
Signed-off-by: maol <maol@codeaurora.org>
Upgarde firmware on the touch controller when the new firmware
version is geater than the current firmware version. Update the
version id after successful firmware update. skip firmware
update process when device is in suspend state.
CRs-Fixed: 623803
Change-Id: Ic462f6483887a3654665852e58ae9891de9f5eff
Signed-off-by: Sarada Prasanna Garnayak <c_sgarna@codeaurora.org>
Maintain I2C adapter clocks on when starting Secure Touch
using the synchronous version of pm_runtime_get.
Change-Id: Ie30ea56af9e045239099652124740565428518f8
Acked-by: Christian Bolis <cbolis@qti.qualcomm.com>
Signed-off-by: Keith Fallows <keithf@codeaurora.org>
Replace the macros that are used inside the driver function
with dtsi entries.
Remove hrtimer calls which is not being used in the current
driver code.
Change-Id: I29b9ea41df467d0092be8005733016843dc26f60
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
Add sysfs entry for force fw_update support in Goodix
driver.
Change the usage of kstrtoul to sscanf in driver to avoid
portability issues.
CRs-fixed: 579806
Change-Id: I147a3e465170dda7af415ade29c04257d9b11a6b
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
Reorganize the code related to debugfs that allows driver to compile
for different build environments. Remove dead code and also define
dummy functions that are needed when CONFIG_PM is not enabled in defconfig.
Change-Id: I385d194c7463cd06322f1b5124f1dc0ce72fc8a1
Signed-off-by: Abinaya P <abinayap@codeaurora.org>
Possible values of config_area are between 0 and 3. The patch
adds bounds checking in fwu_sysfs_config_area_store() function.
Also use kstrtou16() for parsing the config_area.
Change-Id: Ia0b58f1b5a359c67f420012876431dac920ecfbd
Signed-off-by: Abinaya P <abinayap@codeaurora.org>
Add debugfs entries for address and data to read the registers
of Goodix controller.
Change-Id: I6543d523e39771615d0e1b684780141e108a2aa4
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
%zu is the correct printk format specifier when printing size_t types.
Update printks to use %zu for size_t type variables.
Change-Id: Ie556fd14293ecd36143353e575fd5ef22fab20f7
Signed-off-by: Himanshu Aggarwal <haggarwa@codeaurora.org>
Driver needs dummy functions defined for cases when CONFIG_PM
is not enabled.
Change-Id: I4e9f0885eb9f7a45589b2362e468335a3ca57cba
Signed-off-by: Amy Maloche <amaloche@codeaurora.org>
Remove code that reads firmware from the header file, since
we don't plan to support this feature.
CRs-fixed: 591376
Change-Id: I6c18e153ddf18667ca83d47df20c71bce6dbfa21
Signed-off-by: Himanshu Aggarwal <haggarwa@codeaurora.org>
Touch screen driver checks finger status when releasing unwanted touch
events. Current status check does not cover an unwanted finger status.
This introduces extraneous events when device goes to suspend.
CRs-Fixed: 595019
Change-Id: I3c230cb98d5866edf2bc2f433765f787e518ac93
Signed-off-by: Chun Zhang <chunz@codeaurora.org>
Add entries so compilation can be chosen for latest
Atmel touchscreen driver.
Change-Id: Ib63a56215e52cc80cb8532c50b16112d39c1e6f7
Signed-off-by: Amy Maloche <amaloche@codeaurora.org>
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.
CRs-fixed: 554796
Change-Id: Ic2b1b2562b63ccecdf15bdc64ad7e45996d196d3
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
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>
Replace the Firmware update Kernel thread with a workqueue
instead in gt9xx_update.c Goodix driver. 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, hence replaced it with a workqueue.
Change-Id: I0d4731148351652092fe7feede0b44828939d98b
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
Add virtual key support from device tree node and
corrected the sequence of virtual keys defined in
dtsi for Goodix driver.
CRs-fixed: 567499
Change-Id: Iee1db2eb07c00fd4338255b9648fac5e05aa9c6d
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
Remove unnecessary, redundant and improper debug code
and replace them with standrad debug calls in Goodix
driver files.
Change-Id: I763598585cee9705d6def8b7fe61d3206788912b
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
Use macros instead of magic numbers for maximum i2c retries in
Goodix driver.
CRs-fixed: 554725
Change-Id: I9f7da9f43418cd1d423aaf331f41d37d13f248d4
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
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>
Use standard initializer code in gtp_i2c_read and
gtp_i2c_write functions for Goodix touchscreen driver.
CRs-fixed: 549289
Change-Id: Id954be61a0b4596339a659928fb630c5c5538a9a
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>