Hi Dmitry, quoting your last email about this topic: > I think that by trying to "unwind" unsuccessful SMbus initialization you > make the code much more complicated and fragile. I think we should > select a path (PS/2 or SMbus) and commit to it. If we commit to SMBus > then we need to communicate that fact to psmouse core so that it does > not create input devices or psmouse attributes, and "short-circuit" the > reconnect() routines to simply ignore requests and always report > success. I have tried in the past to unwind the psmouse input devices, and it was a pain. So I thought of using a dummy serio driver that basically just calls PSMOUSE_CMD_DISABLE at connect and returns 0 everywhere else. I tried this in the past without much luck but I think I found a reliable way today. The good thing is that it seems that in that case, the rmi4_smbus driver doesn't need any changes now that most serio states are ignored. The new ps2smbus driver gets a little bit more complex, especially because of kseriod. We need to wait for the .connect() of the serio driver to end and have a stable PS/2 connection before starting the smbus work. >From the tests I made today, it seems reliable: cold boot & suspend/resume works, various "rescan" with drvctl with different synaptics_intertouch parameter state work too. I hope you'll find this solution acceptable. Cheers, Benjamin Benjamin Tissoires (3): input: serio - allow others to specify a driver for a serio device Input: synaptics - allocate a Synaptics Intertouch device Input: add a PS/2 to SMBus platform module drivers/input/misc/Kconfig | 11 ++ drivers/input/misc/Makefile | 1 + drivers/input/misc/ps2_smbus.c | 382 ++++++++++++++++++++++++++++++++++++++++ drivers/input/mouse/synaptics.c | 106 +++++++++++ drivers/input/mouse/synaptics.h | 1 + drivers/input/rmi4/Kconfig | 1 + drivers/input/serio/serio.c | 20 +++ include/linux/serio.h | 5 + 8 files changed, 527 insertions(+) create mode 100644 drivers/input/misc/ps2_smbus.c -- 2.9.3 -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html