Age | Commit message (Collapse) | Author | Files | Lines |
|
Just like Fujitsu CELSIUS H730, the H760 also has an Elantech touchpad with
the same quirks. Without this patch, the touchpad is useless out-of-the-box
as the mouse pointer won't move.
This patch makes the driver aware of both the crc_enabled=1 requirement and
the middle button, making the touchpad fully functional out-of-the-box.
Signed-off-by: Matti Kurkela <[email protected]>
Cc: [email protected]
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Signed-off-by: Marcos Paulo de Souza <[email protected]>
Reviewed-by: Ulrik De Bie <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
i2c_smbus_read_block_data() returns negative errno else the number of
data bytes in the slave's response.
Checking for error not null means the function always fails if the device
answers properly.
So given that we read 3 bytes and access those, better check that we
actually read those 3 bytes.
Signed-off-by: Benjamin Tissoires <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
The newly added ektf2127 driver uses the SIMPLE_DEV_PM_OPS macro
to conditionally refer to the resume/suspend functions, which
causes a warning when CONFIG_PM_SLEEP is disabled:
drivers/input/touchscreen/ektf2127.c:168:12: error: 'ektf2127_resume' defined but not used [-Werror=unused-function]
drivers/input/touchscreen/ektf2127.c:156:12: error: 'ektf2127_suspend' defined but not used [-Werror=unused-function]
We could either put these functions inside of an #ifdef or
add __maybe_unused annotations. This uses the second approach,
which is generally more foolproof.
Fixes: 9ca5bf5029b6 ("Input: add support for Elan eKTF2127 touchscreen controller")
Signed-off-by: Arnd Bergmann <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Current code uses devm_input_allocate_device() so don't explicitly call
input_free_device if input_register_device fails.
Signed-off-by: Axel Lin <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
This adds a driver for the Elan eKTF2127 touchscreen controller,
which speaks an i2c protocol which is distinctly different from
the already supported eKTH controllers.
Signed-off-by: Michel Verlaan <[email protected]>
Signed-off-by: Siebren Vroegindeweij <[email protected]>
Signed-off-by: Hans de Goede <[email protected]>
Acked-by: Rob Herring <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
The Pulse-Eight USB CEC adapter is a usb device that shows up as a ttyACM0
device. It requires that you run inputattach in order to communicate with
it via serio.
This all works well, but it would be nice to have a udev rule to
automatically start inputattach. That too works OK, but the problem comes
when the USB device is unplugged: the tty hangup is never handled by the
serio framework so the inputattach utility never exits and you have to kill
it manually.
By adding this hangup callback the inputattach utility now properly exits
as soon as the USB device is unplugged.
The udev rule I used on my Debian sid system is:
SUBSYSTEM=="tty", KERNEL=="ttyACM[0-9]*", ATTRS{idVendor}=="2548", ATTRS{idProduct}=="1002", ACTION=="add", TAG+="systemd", ENV{SYSTEMD_WANTS}+="pulse8-cec-inputattach@%k.service"
And /etc/systemd/system/[email protected] is as follows:
===============================================================
[Unit]
Description=inputattach for pulse8-cec device on %I
[Service]
Type=simple
ExecStart=/usr/local/bin/inputattach --pulse8-cec /dev/%I
KillMode=process
===============================================================
Signed-off-by: Hans Verkuil <[email protected]>
Tested-by: Hans Verkuil <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
The power button found in tps65217 device is very similar to the tps65218,
so let's enhance the driver to support both variants.
This driver enables us to use tps65217's power button as KEY_POWER on
am335x boards (directly connected button in chiliboard, accessible pin
via expansion header in beaglebone). This patch has been tested with
chiliboard.
Signed-off-by: Marcin Niestroj <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Switch the jornada720 touchscreen driver to obtain its gpio from
the platform device via gpiolib and derive the interrupt from the
GPIO, rather than via a hard-coded interrupt number obtained from
the mach/irqs.h and mach/hardware.h headers.
Tested-by: Adam Wysocki <[email protected]>
Signed-off-by: Russell King <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
The Jornada720 keyboard driver does not make use of anything from the
mach/hardware.h header, so this header can be removed.
Tested-by: Adam Wysocki <[email protected]>
Signed-off-by: Russell King <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
We get 1 warning when building kernel with W=1:
drivers/input/mouse/focaltech.c:393:6: warning: no previous prototype for 'focaltech_set_resolution' [-Wmissing-prototypes]
In fact, this function is only used in the file in which it is
declared and don't need a declaration, but can be made static.
So this patch marks it 'static'.
Signed-off-by: Baoyou Xie <[email protected]>
Acked-by: Arnd Bergmann <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
The spec says that flash erase time is 30ms typical/200ms max, so let's
replace current 50ms wait with 200ms to avoid potential failures.
Signed-off-by: HungNien Chen <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
The change corrects an example in device tree documentation section,
because button/key device nodes don't contain reg property there is
no need to declare unit-address, and address and size cell properties
are also redundant.
At the moment a compilation of the hypothetical original example
should produce W=1 level warnings, and it is better to stop spreading
misusage of the polled gpio keys device tree binding through this
example.
Signed-off-by: Vladimir Zapolskiy <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Add a driver to read group of GPIO lines and provide its status as a
numerical value as input event to the system. This will help in
interfacing devices, that can be connected over GPIOs, that provide
input to the system by driving GPIO lines connected to them like a
rotary dial or a switch.
For example, a rotary switch can be connected to four GPIO lines. The
status of the GPIO lines reflect the actual position of the rotary
switch dial. For example, if dial points to 9, then the four GPIO lines
connected to the switch will read HLLH(0b'1001 = 9). This value
can be reported as an ABS_* event to the input subsystem.
Signed-off-by: Vignesh R <[email protected]>
Acked-by: Rob Herring <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
A common way of multiplexing buttons on a single input in cheap devices is
to use a resistor ladder on an ADC. This driver supports that configuration
by polling an ADC channel provided by IIO.
Acked-by: Jonathan Cameron <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
Acked-by: Rob Herring <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
According to the kernel's guidelines, let's directly include the
workqueue functions we use.
Signed-off-by: Martin Kepplinger <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
We use hw version to construct name of file holding touchscreen firmware,
so let's try reading it even if touchscreen initialization fails (the
firmware supports reading product/hardware id even when device is in
recovery/boot mode).
Signed-off-by: Johnny Chuang <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
alloc_ordered_workqueue() replaces deprecated
create_singlethread_workqueue().
It queues work items via &wm->ts_reader and &wm->pen_event_work which map
to wm97xx_pen_irq_worker (handles a pen down interrupt) and
wm97xx_ts_reader (the touchscreen sample reader) respectively. Hence, an
ordered dedicated workqueue has been used.
Signed-off-by: Bhaktipriya Shridhar <[email protected]>
Acked-by: Charles Keepax <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
The workqueue "workqueue" has a single workitem(&priv->work) and hence
doesn't require ordering. Also, it is not being used on a memory reclaim
path. Hence, the singlethreaded workqueue has been replaced with the use
of system_wq.
System workqueues have been able to handle high level of concurrency
for a long time now and hence it's not required to have a singlethreaded
workqueue just to gain concurrency. Unlike a dedicated per-cpu workqueue
created with create_singlethread_workqueue(), system_wq allows multiple
work items to overlap executions even on the same CPU; however, a
per-cpu workqueue doesn't have any CPU locality or global ordering
guarantee unless the target CPU is explicitly specified and thus the
increase of local concurrency shouldn't make any difference.
Workitem is sync cancelled in mc13783_ts_remove() to ensure that there
are no workitems pending when the driver is disconnected.
Signed-off-by: Bhaktipriya Shridhar <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
alloc_ordered_workqueue() replaces the deprecated
create_singlethread_workqueue().
There are multiple work items on the work queue viz
&priv->dev3_register_work, &priv->recalib_wq, &psmouse->resync_work,
which require execution ordering. Hence, an ordered workqueue has been
used.
The workqueue is not being used on a memory reclaim path. Hence,
WQ_MEM_RECLAIM has not been set.
Signed-off-by: Bhaktipriya Shridhar <[email protected]>
Acked-by: Tejun Heo <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Switch to using dev_dbg instead of naked printk so that output is uniform
with the other driver messages in the kernel.
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Switch the jornada720 keyboard driver to obtain its interrupt from the
platform device, rather than via a hard-coded interrupt number obtained
from the mach/irqs.h header.
Signed-off-by: Russell King <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Switch the jornada720_kbd driver to use the devm_* APIs. This is in
preparation to removing the mach/irqs.h include from this driver.
Signed-off-by: Russell King <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Change my email address to kernel.org instead of Samsung one for the
purpose of any future contact. The copyrights remain untouched and are
attributed to Samsung.
Signed-off-by: Krzysztof Kozlowski <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
This patch fix the following checkpatch report:
Blank lines aren't necessary after an open brace
Signed-off-by: LABBE Corentin <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Checkpatch complains about the text suggesting writing to
Free Software Foundation for GPLv2 license copy.
This patch remove that text.
Signed-off-by: LABBE Corentin <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
The usage of of_device_get_match_data reduce the code size a bit.
Furthermore, it is better to use a standard function for
getting the match data.
Signed-off-by: LABBE Corentin <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
The new(ish) ft6236 simply re-implements the M09 protocol of the
(much) older edt-ft5x06.c driver.
This commit removes this duplicate driver and adds the i2c ids and
dt compatible string to the edt-ft5x06.c driver to keep compatibility.
This commit also adds the standard touchscreen properties as optional
properties to the edt,ft5x06 binding, these were documented in the
focaltech,ft6236 bindingi, but were missing from the edt,ft5x06 doc.
Signed-off-by: Hans de Goede <[email protected]>
Acked-by: Rob Herring <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
This is a driver for SiS 9200 family touchscreen controllers using I2C bus.
Signed-off-by: Mika Penttilä <[email protected]>
Acked-by: Tammy Tseng <[email protected]>
Acked-by: Yuger Yu <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
"calibrate" attribute does not provide "show" methods and thus we should
not mark it as readable.
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Some ASUS laptops were shipped with touchpads that require to be woken up
first, before trying to switch them into absolute reporting mode, otherwise
touchpad would fail to work while flooding the logs with:
elan_i2c i2c-ELAN1000:00: invalid report id data (1)
Among affected devices are Asus E202SA, N552VW, X456UF, UX305CA, and
others. We detect such devices by checking the IC type and product ID
numbers and adjusting order of operations accordingly.
Signed-off-by: KT Liao <[email protected]>
Reported-by: Chris Chiu <[email protected]>
Reported-by: Vlad Glagolev <[email protected]>
Tested-by: Vlad Glagolev <[email protected]>
Cc: [email protected]
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
This driver adds support for Silead touchscreens. It has been tested
with GSL1680 and GSL3680 touch panels.
It supports ACPI and device tree enumeration. Screen resolution,
the maximum number of fingers supported and firmware name are
configurable.
Signed-off-by: Robert Dolca <[email protected]>
Signed-off-by: Daniel Jansen <[email protected]>
Signed-off-by: Hans de Goede <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
The use of mixed psmouse_printk() and printk creates 2 lines in the log,
while the use of %*ph solves everything.
Signed-off-by: Benjamin Tissoires <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
It's not advisable to use this encoding, but to support existing devices
add support for this to the driver.
Signed-off-by: Uwe Kleine-König <[email protected]>
Acked-by: Rob Herring <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
When the USB wireless adapter is suspended, the controllers
lose their connection. This causes them to start flashing
their LED rings and searching for the wireless adapter
again, wasting the controller's battery power.
Instead, we will tell the controllers to power down when
we suspend. This mirrors the behavior of the controllers
when connected to the console itself and how the official
Xbox One wireless adapter behaves on Windows.
Signed-off-by: Cameron Gutman <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
As explained in [email protected] 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 <[email protected]>
Tested-by: Mark Laws <[email protected]>
Cc: [email protected]
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
The of_node_put() function tests whether its argument is NULL and then
returns immediately. Thus the test around the call is not needed.
This issue was detected by using the Coccinelle software.
Signed-off-by: Markus Elfring <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
In cros_ec_keyb we stored "dev" in "struct cros_ec_keyb", but this was
the EC's dev pointer and not the keyboard's. Let's clean this up to
make it the keyboard's dev pointer. This could be useful in future
patches but also has the nice effect of changing a few printouts to
include the name of the keyboard device instead of the EC device, so we
will see:
[ 1.224648] cros-ec-keyb ff110000.spi:ec@0:keyboard-controller: valid_keys[00] = 0x14
instead of:
[ 1.224505] cros-ec-spi spi0.0: valid_keys[00] = 0x14
Signed-off-by: Douglas Anderson <[email protected]>
Signed-off-by: Brian Norris <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Use memdup_user to duplicate a memory region from user-space to
kernel-space, instead of open coding using kmalloc & copy_from_user.
Signed-off-by: Muhammad Falak R Wani <[email protected]>
Reviewed-by: Samuel Thibault <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Signed-off-by: Martin Kepplinger <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Signed-off-by: Martin Kepplinger <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
We should only "put" the interface if submitting URB or setting tablet mode
in pegasus_open() fails, otherwise leave it to pegasus_close().
Signed-off-by: Martin Kepplinger <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Signed-off-by: Martin Kepplinger <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
input_mt_init_slots() may fail and we should be handling failures properly.
Signed-off-by: Ping Cheng <[email protected]>
Signed-off-by: Peter Hutterer <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Signed-off-by: Ping Cheng <[email protected]>
Signed-off-by: Peter Hutterer <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Sync up to bring in wacom_w8001 changes to avoid merge conflicts later.
|
|
Add support for axis inversion / swapping using the new
touchscreen_parse_properties() and touchscreen_set_mt_pos()
functionality.
Signed-off-by: Hans de Goede <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Use the touchscreen_parse_properties() and touchscreen_report_pos() to
perform coordinates transformation, instead of DIY code, which results in a
nice cleanup.
Signed-off-by: Hans de Goede <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Add support for inverting / swapping axes using the new
touchscreen_parse_properties() and touchscreen_report_pos()
functionality.
Signed-off-by: Hans de Goede <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Extend touchscreen_parse_properties() with support for the
touchscreen-inverted-x/y and touchscreen-swapped-x-y properties and
add touchscreen_set_mt_pos() and touchscreen_report_pos() helper
functions for storing coordinates into a input_mt_pos struct, or
directly reporting them, taking these properties into account.
This commit also modifies the existing callers of
touchscreen_parse_properties() to pass in NULL for the new third
argument, keeping the existing behavior.
Signed-off-by: Hans de Goede <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|