Age | Commit message (Collapse) | Author | Files | Lines |
|
Rushmore touchpads are found on Dell E6230/E6430/E6530. They use the V3
protocol with slightly tweaked init sequences and report formats.
The E7 report is 73 03 0a, and the EC report is 88 08 1d
Credits: Emmanuel Thome reported the MT bitmap changes.
Signed-off-by: Kevin Cernekee <[email protected]>
Tested-by: Dave Turvene <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
A number of different ALPS touchpad protocols can reuse
alps_process_touchpad_packet_v3() with small tweaks to the bitfield
decoding. Create a new priv->decode_fields() callback that handles the
per-model differences.
Signed-off-by: Kevin Cernekee <[email protected]>
Tested-by: Dave Turvene <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Newer touchpads use different constants, so make them runtime-
configurable.
Signed-off-by: Kevin Cernekee <[email protected]>
Tested-by: Dave Turvene <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Pinnacle class devices should return "88 07 xx" or "88 08 xx" when
entering command mode. If either the first byte or the second byte is
invalid, return an error.
Signed-off-by: Kevin Cernekee <[email protected]>
Tested-by: Dave Turvene <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
The official ALPS driver uses the EC report, not the E7 report, to detect
these devices. Also, they check for a range of values; the original
table-based code only checked for two specific ones.
Signed-off-by: Kevin Cernekee <[email protected]>
Tested-by: Dave Turvene <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
This allows alps_identify() to override these settings based on the
device characteristics, if it is ever necessary.
Signed-off-by: Kevin Cernekee <[email protected]>
Tested-by: Dave Turvene <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
In anticipation of adding more ALPS protocols and more per-device quirks,
use function pointers instead of switch statements to call functions that
differ from one device to the next.
Signed-off-by: Kevin Cernekee <[email protected]>
Tested-by: Dave Turvene <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
If the E6 report test passes, get the E7 and EC reports right away and
then try to match an entry in the table.
Pass in the alps_data struct, so that the detection code will be able to
set operating parameters based on information found during detection.
Change the version (psmouse->model) to report the protocol version only,
in preparation for supporting models that do not show up in the ID table.
Signed-off-by: Kevin Cernekee <[email protected]>
Tested-by: Dave Turvene <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Several ALPS driver init sequences repeat a command three times, then
issue PSMOUSE_CMD_GETINFO to read the result. Move this into a helper
function to simplify the code.
Signed-off-by: Kevin Cernekee <[email protected]>
Tested-by: Dave Turvene <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
This will minimize the number of forward declarations needed when
alps_get_model() starts assigning function pointers.
Signed-off-by: Kevin Cernekee <[email protected]>
Tested-by: Dave Turvene <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Not every type of ALPS touchpad is well-suited to table-based detection.
Start moving the various alps_model_data attributes into the alps_data
struct so that we don't need a unique table entry for every possible
permutation of protocol version, flags, byte0/mask0, etc.
Signed-off-by: Kevin Cernekee <[email protected]>
Tested-by: Dave Turvene <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Add kernel-doc markup.
Signed-off-by: Kevin Cernekee <[email protected]>
Tested-by: Dave Turvene <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
It is a pen with 10 finger touch device.
Signed-off-by: Ping Cheng <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
This patch adds support for the Cypress APA Smbus Trackpad type,
which uses a modified register map that fits within the
limitations of the smbus protocol.
Devices that use this protocol include:
CYTRA-116001-00 - Samsung Series 5 550 Chromebook trackpad
CYTRA-103002-00 - Acer C7 Chromebook trackpad
CYTRA-101003-00 - HP Pavilion 14 Chromebook trackpad
Signed-off-by: Dudley Du <[email protected]>
Signed-off-by: Benson Leung <[email protected]>
Reviewed-by: Daniel Kurtz <[email protected]>
Reviewed-by: Henrik Rydberg <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Investigating the following gesture highlighted two slight implementation
errors with choosing which slots to report in which slot when multiple
contacts are present:
Action SGM AGM (MTB slot:Contact)
1. Touch contact 0 (0:0)
2. Touch contact 1 (0:0, 1:1)
3. Lift contact 0 (1:1)
4. Touch contacts 2,3 (0:2, 1:3)
In step 4, slot 1 was not being cleared first, which means the same
tracking ID was being used for reporting both the old contact 1 and the
new contact 3. This could result in "drumroll", where the old contact 1
would appear to suddenly jump to new finger 3 position.
Similarly, if contacts 2 & 3 are not detected at the same sample, step 4
is split into two:
Action SGM AGM (MTB slot:contact)
1. Touch contact 0 (0:0)
2. Touch contact 1 (0:0, 1:1)
3. Lift contact 0 (1:1)
4. Touch contact 2 (0:2, 1:1)
5. Touch contact 3 (0:2, 1:3)
In this case, there was also a bug. In step 4, when contact 1 moves from
SGM to AGM and contact 2 is first reported in SGM, slot 0 was actually
empty. So slot 0 can be used to report the new SGM (contact 0),
immediately. Since it was empty, contact 2 in slot 0 will get a new
tracking ID.
Signed-off-by: Daniel Kurtz <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
When removing the !S390 dependency from drivers/input/Kconfig
a couple of drivers don't compile because they have a dependency
on GENERIC_HARDIRQS. So add the missing dependencies.
Fixes e.g. this one:
drivers/input/keyboard/lm8323.c: In function ‘lm8323_suspend’:
drivers/input/keyboard/lm8323.c:801:2: error: implicit declaration of function ‘irq_set_irq_wake’
[-Werror=implicit-function-declaration]
Signed-off-by: Heiko Carstens <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
It is time to switch to system wq instead creating a queue for the driver.
Signed-off-by: Peter Ujfalusi <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Convert the probe to use devm_*. At the same time reorder the calls
so we will register the input device as the last step when the driver
is loaded.
Signed-off-by: Peter Ujfalusi <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
This device is a direct pipe from "hardware" to the input event subsystem,
allowing us to avoid having to route "keypad" style events through an
AT keyboard driver (gross!).
As with the other submissions this driver is cross architecture.
Signed-off-by: Mike A. Chan <[email protected]>
[Tided up to work on x86]
Signed-off-by: Sheng Yang <[email protected]>
Signed-off-by: Yunhong Jiang <[email protected]>
Signed-off-by: Xiaohui Xin <[email protected]>
Signed-off-by: Jun Nakajima <[email protected]>
Signed-off-by: Bruce Beare <[email protected]>
[Ported to 3.4]
Signed-off-by: Tom Keel <[email protected]>
[Cleaned up for 3.7 and submission]
Signed-off-by: Alan Cox <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Postpone claiming the port until the device is opened, instead of doing
that when the driver is loaded.
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
We have been using -EBUSY where we should have used -EIO or -ENOMEM,
so let's fix that and also add some diagnostic messages.
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
This will place the joystick's input device into propoer place in sysfs
hierarchy as long as th port has device assigned to it (i.e. it is not
legacy port).
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
On resume from suspend there is a possibility for multi-byte scancodes
to be handled incorrectly. atkbd_reconnect disables the processing of
scancodes in software by calling atkbd_disable, but the keyboard may
still be active because no disconnect command was sent. Later, software
handling is re-enabled. If a multi-byte scancode sent from the keyboard
straddles the re-enable, only the latter byte(s) will be handled.
In practice, this leads to cases where multi-byte break codes (ex. "e0
4d" - break code for right-arrow) are misread as make codes ("4d" - make
code for numeric 6), leading to one or more unwanted, untyped characters
being interpreted.
The solution implemented here involves sending command f5 (reset
disable) to the keyboard prior to disabling software handling of codes.
Later, the command to re-enable the keyboard is sent only after we are
prepared to handle scancodes.
Signed-off-by: Shawn Nematbakhsh <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
It is time to switch to system wq instead creating a queue for the driver.
Signed-off-by: Peter Ujfalusi <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
This simplifies error handling and eliminates the need for implementing
remove() method.
Signed-off-by: Peter Ujfalusi <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
This patch introduces a driver for Cypress All Points Addressable
I2C Trackpad, including the ones in 2012 Samsung Chromebooks.
This device is compatible with MT protocol type B, providing identifiable
contacts.
Signed-off-by: Dudley Du <[email protected]>
Signed-off-by: Daniel Kurtz <[email protected]>
Signed-off-by: Benson Leung <[email protected]>
Reviewed-by: Henrik Rydberg <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
devm_* APIs are device managed and make the exit and clean up code
simpler.
Signed-off-by: Sachin Kamat <[email protected]>
Acked-by: Laxman Dewangan<[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Tegra KBC driver have the default key mapping for 16x8 configuration.
The key mapping can be provided through platform data or through DT
and the mapping varies from platform to platform, hence this default
mapping is not so useful. Remove the default mapping to reduce the code
lines of the driver.
Signed-off-by: Laxman Dewangan <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
The NVIDIA's Tegra KBC has maximum 24 pins to make matrix keypad.
Any pin can be configured as row or column. The maximum column pin
can be 8 and maximum row pin can be 16.
Remove the assumption that all first 16 pins will be used as row
and remaining as columns and Add the property for configuring pins
to either row or column from DT. Update the devicetree binding
document accordingly.
Signed-off-by: Laxman Dewangan <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Use devm_* for memory, clock, irq, input device allocation. This reduces
code for freeing these resources.
Signed-off-by: Laxman Dewangan <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Fix the following build warning when building driver with CONFIG_PM_SLEEP
not selected.
tegra-kbc.c:360:13: warning: 'tegra_kbc_set_keypress_interrupt' defined but not used [-Wunused-function]
Signed-off-by: Laxman Dewangan <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
This patch adds keyreset functionality to the sysrq driver. It allows
certain button/key combinations to be used in order to trigger emergency
reboots.
Redefining the '__weak platform_sysrq_reset_seq' variable is required
to trigger the feature. Alternatively keys can be passed to the driver
via a module parameter.
This functionality comes from the keyreset driver submitted by
Arve Hjønnevåg in the Android kernel.
Signed-off-by: Mathieu Poirier <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
This driver, submitted on behalf of Cypress Semiconductor Corporation and
additional contributors, provides support for the Cypress PS/2 Trackpad.
Original code contributed by Dudley Du (Cypress Semiconductor Corporation),
modified by Kamal Mostafa and Kyle Fazzari.
BugLink: http://launchpad.net/bugs/978807
Signed-off-by: Dudley Du <[email protected]>
Signed-off-by: Kamal Mostafa <[email protected]>
Signed-off-by: Kyle Fazzari <[email protected]>
Signed-off-by: Mario Limonciello <[email protected]>
Signed-off-by: Tim Gardner <[email protected]>
Acked-by: Herton Krzesinski <[email protected]>
Reviewed-by: Henrik Rydberg <[email protected]>
Reviewed-by: Dudley Du <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Cypress PS/2 Trackpad (drivers/input/mouse/cypress_ps2.c) needs
this larger cmdbuf[] to handle 8-byte packet responses.
Signed-off-by: Kamal Mostafa <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
This patch brings wacom driver in-sync with input-mt changes
made in release 3.7.
Signed-off-by: Ping Cheng <[email protected]>
Reviewed-by: Henrik Rydberg <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Henrik added new MT routines in release 3.7. This patch is to prepare
for the use of new MT routines.
In the newly added wacom_abs_set_axis() function, the first
if-statement assigns ABS_X/Y for number of contacts less or equal
to 2. So, it is single and 2 finger touch devices. Two finger touch
devices are processed here since they will not use the updated
input_mt_init_slots(), which does not offer benefit to those devices.
input_mt_init_slots() will take care of ABS_X/Y assignment when flags
are not zero. All touch devices with more than two contacts will use
input_mt_init_slots() with non-zero flags.
The second if-statement is for all MT devices, which include two
finger touch devices.
Signed-off-by: Ping Cheng <[email protected]>
Reviewed-by: Henrik Rydberg <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Outputs x8..x0 of the qt2160 can have leds attached to it.
This patch handles those outputs using the generic LED
framework.
The PWM controls available in the chip are used to achieve
different levels of brightness.
Signed-off-by: Javier Martin <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
This patch adds device tree support for imx keypad driver.
Signed-off-by: Liu Ying <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Only use the defines which are defined in the platform_data include
file.
Signed-off-by: Wolfram Sang <[email protected]>
Acked-by: Michael Hennerich <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Since it suggests to use defines from input.h (ABS_X, ...), also include
the file to make them available.
Signed-off-by: Wolfram Sang <[email protected]>
Acked-by: Michael Hennerich <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
The datasheet doesn't say anything about writing twice, so this was
probably overlooked.
Signed-off-by: Wolfram Sang <[email protected]>
Acked-by: Michael Hennerich <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Don't open code the AC_READ and AC_WRITE macros.
Signed-off-by: Wolfram Sang <[email protected]>
Acked-by: Michael Hennerich <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Signed-off-by: Mark Brown <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Signed-off-by: Mark Brown <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
stmpe touchscreen supports BTN_TOUCH event but doesn't report it. Add
BTN_TOUCH reporting capability to the stmpe touchscreen driver.
Signed-off-by: Vipul Kumar Samar <[email protected]>
Reviewed-by: Viresh Kumar <[email protected]>
Acked-by: Lee Jones <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
The driver's timer must be set up before enabling IRQ handler, otherwise
bad things may happen.
Reported-and-tested-by: Fengguang Wu <[email protected]>
Signed-off-by: Peter Popovec <[email protected]>
CC: [email protected]
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
This saves us a few lines of code.
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
This saves us a few lines of code.
Signed-off-by: Dmitry Torokhov <[email protected]>
|