| Age | Commit message (Collapse) | Author | Files | Lines |
|
We do not have to handle the wake-irq within the driver because the pm
core can handle this for us. The only use case for the suspend/resume
callbacks was to handle the wake-irq so we can remove the callbacks.
Signed-off-by: Marco Felsch <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Since day one the touch controller acts as wakeup-source. This seems to
be wrong since the device supports deep-sleep mechanism [1] which
requires a reset to leave it. Also some designs won't use the
touchscreen as wakeup-source.
According discussion [2] we decided to break backward compatibility and
go the common way by using the 'wakeup-source' device-property.
[1] https://www.newhavendisplay.com/appnotes/datasheets/touchpanel/FT5x26.pdf
[2] https://patchwork.kernel.org/patch/11149037/
Signed-off-by: Marco Felsch <[email protected]>
Tested-by: Andy Shevchenko <[email protected]>
Reviewed-by: Andy Shevchenko <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
It seems that the include order is historical increased and no one takes
care of it. Fix this to align it with the common rule to be in a
alphabetical order.
Signed-off-by: Marco Felsch <[email protected]>
Tested-by: Andy Shevchenko <[email protected]>
Reviewed-by: Andy Shevchenko <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
The EP0700MLP1 returns bogus data on the first register read access
(reading the threshold parameter from register 0x00):
edt_ft5x06 2-0038: crc error: 0xfc expected, got 0x40
It ignores writes until then. This patch adds a dummy read after which
the number of sensors and parameter read/writes work correctly.
Signed-off-by: Philipp Zabel <[email protected]>
Signed-off-by: Marco Felsch <[email protected]>
Tested-by: Andy Shevchenko <[email protected]>
Reviewed-by: Andy Shevchenko <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Make sure to use the current alternate setting when verifying the
interface descriptors to avoid binding to an invalid interface.
This in turn could cause the driver to misbehave or trigger a WARN() in
usb_submit_urb() that kernels with panic_on_warn set would choke on.
Fixes: bdb5c57f209c ("Input: add sur40 driver for Samsung SUR40 (aka MS Surface 2.0/Pixelsense)")
Signed-off-by: Johan Hovold <[email protected]>
Acked-by: Vladis Dronov <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
The driver misses a check for devm_thermal_zone_of_sensor_register().
Add a check to fix it.
Fixes: e28d0c9cd381 ("input: convert sun4i-ts to use devm_thermal_zone_of_sensor_register")
Signed-off-by: Chuhong Yuan <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
To avoid flashing incompatible firmware onto a device we should check
whether "Remark ID" in firmware matches with the one in the controller.
This function is supported by Elan's latest version of boot code, so the
driver decides whether to perform the check based on the boot code version.
Signed-off-by: Johnny Chuang <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Prepare second round of updates for 5.5 merge window.
|
|
The touchscreen on the Teclast X89 is mounted upside down in relation to
the display orientation (the touchscreen itself is mounted upright, but the
display is mounted upside-down). Add a quirk for this so that we send
coordinates which match the display orientation.
Signed-off-by: Hans de Goede <[email protected]>
Reviewed-by: Bastien Nocera <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Cc: [email protected]
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Prepare input updates for 5.5 merge window.
|
|
Adjust indentation from spaces to tab (+optional two spaces) as in
coding style with command like:
$ sed -e 's/^ /\t/' -i */Kconfig
Signed-off-by: Krzysztof Kozlowski <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
The device md->input is used after it is released. Setting the device
data to NULL is unnecessary as the device is never used again. Instead,
md->input should be assigned NULL to avoid accessing the freed memory
accidently. Besides, checking md->si against NULL is superfluous as it
points to a variable address, which cannot be NULL.
Signed-off-by: Pan Bian <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Only show the 'calibrate' sysfs attribute on chip flavours
which support calibration by writing to a calibration register.
Do this by adding a flag to the chip operations structure.
Signed-off-by: Sven Van Asbroeck <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Optionally allow the touch screen resolution to be set by adding
it to the chip operations structure. If it is omitted (left zero),
the resolution defaults to 64K. Which is the previously hard-coded
value.
Set the ili2117 resolution to 2048, as indicated in its datasheet.
Signed-off-by: Sven Van Asbroeck <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
The driver's method to retrieve the firmware version on ili2117/
ili2118 chip flavours is incorrect. The firmware version register
address and layout are wrong.
The firmware version is not actually used anywhere inside or
outside this driver. There is a dev_dbg() print, but that is
only visible when the developer explicitly compiles in debug
support.
Don't make the code more complicated to preserve a feature that
no-one is using. Remove all code associated with chip firmware
version.
Signed-off-by: Sven Van Asbroeck <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
device_get_match_data is available now, so we can replace the call
to of_device_get_match_data and remove the FIXME comment.
Signed-off-by: Stephan Gerhold <[email protected]>
Reviewed-by: Andi Shyti <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Bring in improvements to ili2xxx driver, including support for
2117A/2118A controllers.
|
|
When I2C client is instantiated with I2C_CLIENT_WAKE flag (either via
"wakeup-source" device property, or via board info flag), it will mark the
main IRQ line as wakeup IRQ, which will ensure that it will be enabled for
wakeup when system transitions to suspend state. Since our suspend/resume
handlers were only managing IRQ wakeup state, they are no longer needed,
and can be removed.
Tested-by: Adam Ford <[email protected]> #imx6q-logicpd
Tested-by: Sven Van Asbroeck <[email protected]> # ILI2118A variant
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
I2C devices that are supposed to be wakeup sources should be instantiated
with I2C_CLIENT_WAKE flag (which can be either set by in board info, or
retrieved from "wakeup-source" property); individual drivers should not be
marking devices as wakeup sources unconditionally.
Tested-by: Adam Ford <[email protected]> #imx6q-logicpd
Tested-by: Sven Van Asbroeck <[email protected]> # ILI2118A variant
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Instead of doing if/else if/else on the chip's model number let's define
chip operations structure and use it to perform indirect calls. With number
of protocols supported by the driver growing, this makes it better
maintainable.
This change includes fixes to checks whether the driver should continue
polling the controller by Sven Van Asbroeck <[email protected]>.
Tested-by: Adam Ford <[email protected]> #imx6q-logicpd
Tested-by: Sven Van Asbroeck <[email protected]> # ILI2118A variant
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
We are using devm_input_allocate_device() that set's up the parent for
us, no need to do it ourselves.
Tested-by: Adam Ford <[email protected]> #imx6q-logicpd
Tested-by: Sven Van Asbroeck <[email protected]> # ILI2118A variant
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
input_mt_init_slots() may fail and we need to handle such failures.
Tested-by: Adam Ford <[email protected]> #imx6q-logicpd
Tested-by: Sven Van Asbroeck <[email protected]> # ILI2118A variant
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Let's switch the driver to using threaded IRQ so that we do not need to
manage the interrupt and work separately, and we do not acknowledge
interrupt until we finished handling it completely.
Tested-by: Adam Ford <[email protected]> #imx6q-logicpd
Tested-by: Sven Van Asbroeck <[email protected]> # ILI2118A variant
Tested-by: Marek Vasut <[email protected]> # ILI2117
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Add support for ILI2117 touch controller. This controller is similar
to the ILI210x and ILI251x, except for the following differences:
- Reading out of touch data must happen at most 300 mS after the
interrupt line was asserted. No command must be sent, the data
are returned upon pure I2C read of 43 bytes long.
- Supports 10 simultaneous touch inputs.
- Touch data format is slightly different.
Signed-off-by: Marek Vasut <[email protected]>
Reviewed-by: Rob Herring <[email protected]> # for DT binding
Tested-by: Adam Ford <[email protected]> #imx6q-logicpd
Tested-by: Sven Van Asbroeck <[email protected]> # ILI2118A variant
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Fix spelling mistake.
Signed-off-by: Flavio Suligoi <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
We have added polled mode to the normal input devices with the intent of
retiring input_polled_dev. This converts tsc6507x-ts driver to use the
polling mode of standard input devices and removes dependency on
INPUT_POLLDEV.
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
We have added polled mode to the normal input devices with the intent of
retiring input_polled_dev. This converts ts4800-ts driver to use the
polling mode of standard input devices and removes dependency on
INPUT_POLLDEV.
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
We have added polled mode to the normal input devices with the intent of
retiring input_polled_dev. This converts sur40 driver to use the
polling mode of standard input devices and removes dependency on
INPUT_POLLDEV.
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
We have added polled mode to the normal input devices with the intent of
retiring input_polled_dev. This converts raspberrypi-ts driver to use the
polling mode of standard input devices and removes dependency on
INPUT_POLLDEV.
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Add the support for enabling optional regulator that may be used as VCC
source.
Signed-off-by: Mylène Josserand <[email protected]>
Signed-off-by: Ondrej Jirman <[email protected]>
Reviewed-by: Rob Herring <[email protected]> # bindings
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Switch the driver to the slotted variant of multitouch protocol (MT-B)
with in-kernel tracking of the contacts.
Tested-by: Matthias Fend <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
The receiving buffer is allocated separately from the main driver
data structure, and is naturally DMA-safe, so mark it as such when
building I2C transfer message.
Tested-by: Matthias Fend <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
devm_input_allocate_device() already sets parent device for us.
Tested-by: Matthias Fend <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
The finger structure size is quite small and allocating it together with
the main driver structure will not increase likelyhood of allocation
failing, but reduces number of objects needing to be tracked by the
allocator and devm.
Tested-by: Matthias Fend <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
We should not be putting the chip into reset while interrupts are enabled
and ISR may be running. Fix this by installing a custom devm action and
powering off the device/resetting GPIO line from there. This ensures proper
ordering.
Tested-by: Matthias Fend <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
When I2C client is created with I2C_CLIENT_WAKE flag (which happens
either because we have "wakeup-source" device property or the flag
was passed in when creating an I2C client manually), I2C core will
take care of configuring interrupt as wakeup source on suspend.
Tested-by: Matthias Fend <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Do not unconditionally configure the touchscreen as wakeup source but
rather rely on I2C core to do that when requested (either via
"wakeup-source" device property, or when creating a client with
I2C_CLIENT_WAKE flag).
Tested-by: Matthias Fend <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Avoid complex 2-variable loop when parsing touchscreen data to make the
code clearer.
Acked-by: Martin Kepplinger <[email protected]>
Tested-by: Matthias Fend <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
There is no gpio functions used in the driver that is exported
by the gpio.h header, so remove this unneeded header.
Signed-off-by: Fabio Estevam <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
There is no gpio functions used in the driver that is exported
by the gpio.h header, so remove this unneeded header.
Signed-off-by: Fabio Estevam <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
The touchscreen device is a GPIO consumer, not a GPIO controller,
so there is no need to include <linux/gpio.h>.
Remove the unneeded header file.
Signed-off-by: Fabio Estevam <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Sync up with mainline.
|
|
git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
Pull input fix from Dmitry Torokhov:
"A fix for st1232 driver to properly report coordinates for 2nd and
subsequent fingers when more than one is on the surface"
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
Input: st1232 - fix reporting multitouch coordinates
|
|
For Sitronix st1633 multi-touch controller driver the coordinates reported
for multiple fingers were wrong, as it was always taking LSB of coordinates
from the first contact data.
Signed-off-by: Dixit Parmar <[email protected]>
Reviewed-by: Martin Kepplinger <[email protected]>
Cc: [email protected]
Fixes: 351e0592bfea ("Input: st1232 - add support for st1633")
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=204561
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
Pull input fixes from Dmitry Torokhov:
"The main change is that we are reverting blanket enablement of SMBus
mode for devices with Elan touchpads that report BIOS release date as
2018+ because there are older boxes with updated BIOSes that still do
not work well in SMbus mode.
We will have to establish whitelist for SMBus mode it looks like"
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
Revert "Input: elantech - enable SMBus on new (2018+) systems"
Input: synaptics-rmi4 - avoid processing unknown IRQs
Input: soc_button_array - partial revert of support for newer surface devices
Input: goodix - add support for 9-bytes reports
Input: da9063 - fix capability and drop KEY_SLEEP
|
|
Previous change moved platform data definition into the driver, making it
unusable for users. Given that we want to move away from custom platform
data structures, and always use device properties (DT, ACPI or static) to
configure devices, let's complete the removal.
Tested-by: Fabio Estevam <[email protected]>
Tested-by: Michal Vokáč <[email protected]>
Reviewed-by: Roger Quadros <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
In the case of defer probe we should not print an error message.
This also aligns with how defer probe is handled in the other GPIOs
used by this driver.
Signed-off-by: Fabio Estevam <[email protected]>
Reviewed-by: Roger Quadros <[email protected]>
Tested-by: Michal Vokáč <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
The pixcir datasheet lists the registers addresses in decimal and
so are PIXCIR_REG_POWER_MODE and PIXCIR_REG_INT_MODE defined in decimal.
Change the error messages to print the register addresses in decimal
instead of hexadecimal for better readability.
Signed-off-by: Fabio Estevam <[email protected]>
Reviewed-by: Roger Quadros <[email protected]>
Tested-by: Michal Vokáč <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Keep the header files in alphabetical order to keep it
more organized.
Signed-off-by: Fabio Estevam <[email protected]>
Reviewed-by: Roger Quadros <[email protected]>
Tested-by: Michal Vokáč <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
All the defined symbols from linux/platform_data/pixcir_i2c_ts.h
are only used by the pixcir_i2c_ts driver, so move all the definitions
locally and get rid of the pixcir_i2c_ts.h file.
Signed-off-by: Fabio Estevam <[email protected]>
Reviewed-by: Roger Quadros <[email protected]>
Tested-by: Michal Vokáč <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|