All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/9] PS/2 and SMBus companions
@ 2017-03-20  0:22 Dmitry Torokhov
  2017-03-20  0:22 ` [PATCH v3 1/9] i2c: export i2c_client_type structure Dmitry Torokhov
                   ` (9 more replies)
  0 siblings, 10 replies; 11+ messages in thread
From: Dmitry Torokhov @ 2017-03-20  0:22 UTC (permalink / raw)
  To: Benjamin Tissoires; +Cc: Andrew Duggan, linux-kernel, linux-input

Hi,

This is refresh of Benjamin's patches trying to bridge PS/2 and SMbus
devices for better support of Synaptics RMI4 touchpads (and Elans later).

The main difference is that we do not have platform device, as it only
adds another indirection level, and have psmouse create SMBus companion
directly. Because serio ports complete registration asynchronously, we do
not deadlock on psmouse_mutex when even if we have a pass-through port.
(Frankly we need to revisit this whole serio and psmouse thing, use of
global serio_mutex and psmouse_mutex is hurting us; they were needed when
driver core could not recursively iterate over device and driver lists).

We also do not allow overriding serio driver, instead we teach psmouse
about "special" devices and let it continue own the serio port and make
sure nobody else touches it.

To work around issue with psmouse_reconnect() running sometimes too late,
we add "fast reconnect" option to serio. Not too pretty, but gets the job
done. We may need to revisit whole serio PM story later and stop "cheating"
and pretending that device is resumed when it is not, but for that we need
to teach PM core about devices that are OK not to wait for before resuming
userspace. Anyway, much bigger topic for later.

This seems to be working on X1 Carbon and HP 1040 with forcepad, but
to fully support forcepad we need implementation of RMI F21, so patch #9
is more of FYI.

Please do shout if you see something wrong, otherwise I'll queue it for
next in the next couple of days (sans forcetouch patch).

Thanks,
Dmitry

v3: stop trying to detect presence of SMbus companion device when new
adapter is discovered, as it does not really work. Instead issue serio
rescan request and let probe code deal with it (which seems to be more
reliable).
Fix various compile glitches with different config options.
Added Benjamin's reviewed-bys.

V2: incorporated Benjamin's change to keep platform data around until
companion device is destroyed, enabled forcepad support.

Benjamin Tissoires (2):
  Input: psmouse - add support for SMBus companions
  Input: synaptics - add support for Intertouch devices

Dmitry Torokhov (7):
  i2c: export i2c_client_type structure
  Input: serio - add fast reconnect option
  Input: psmouse - implement fast reconnect option
  Input: psmouse - store pointer to current protocol
  Input: psmouse - introduce notion of SMBus companions
  Input: synaptics - split device info into a separate structure
  [NEEDS F21] Input: synaptics - switch forcepad devices over to SMbus
    access

 drivers/i2c/i2c-core.c              |   4 +-
 drivers/input/mouse/Kconfig         |  16 +
 drivers/input/mouse/Makefile        |   2 +
 drivers/input/mouse/psmouse-base.c  | 213 ++++++---
 drivers/input/mouse/psmouse-smbus.c | 294 +++++++++++++
 drivers/input/mouse/psmouse.h       | 102 +++--
 drivers/input/mouse/synaptics.c     | 841 +++++++++++++++++++++++-------------
 drivers/input/mouse/synaptics.h     |  33 +-
 drivers/input/serio/serio.c         |  22 +-
 include/linux/i2c.h                 |   1 +
 include/linux/serio.h               |   1 +
 11 files changed, 1122 insertions(+), 407 deletions(-)
 create mode 100644 drivers/input/mouse/psmouse-smbus.c

-- 
2.12.0.367.g23dc2f6d3c-goog

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2017-03-21 15:17 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-03-20  0:22 [PATCH v3 0/9] PS/2 and SMBus companions Dmitry Torokhov
2017-03-20  0:22 ` [PATCH v3 1/9] i2c: export i2c_client_type structure Dmitry Torokhov
2017-03-20  0:22 ` [PATCH v3 2/9] Input: serio - add fast reconnect option Dmitry Torokhov
2017-03-20  0:22 ` [PATCH v3 3/9] Input: psmouse - implement " Dmitry Torokhov
2017-03-20  0:22 ` [PATCH v3 4/9] Input: psmouse - store pointer to current protocol Dmitry Torokhov
2017-03-20  0:22 ` [PATCH v3 5/9] Input: psmouse - introduce notion of SMBus companions Dmitry Torokhov
2017-03-20  0:22 ` [PATCH v3 6/9] Input: psmouse - add support for " Dmitry Torokhov
2017-03-20  0:22 ` [PATCH v3 7/9] Input: synaptics - split device info into a separate structure Dmitry Torokhov
2017-03-20  0:22 ` [PATCH v3 8/9] Input: synaptics - add support for Intertouch devices Dmitry Torokhov
2017-03-20  0:22 ` [PATCH v3 9/9] [NEEDS F21] Input: synaptics - switch forcepad devices over to SMbus access Dmitry Torokhov
2017-03-21 15:17 ` [PATCH v3 0/9] PS/2 and SMBus companions Benjamin Tissoires

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.