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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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.
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>
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>
Use macros instead of magic numbers for maximum i2c retries in
Goodix driver.
Change-Id: I9f7da9f43418cd1d423aaf331f41d37d13f248d4
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
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>
[ 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>
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>
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.
Change-Id: Id954be61a0b4596339a659928fb630c5c5538a9a
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
Signed-off-by: Sudhakar Manapati <smanap@codeaurora.org>
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>
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>
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>
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>
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>