Messages in this thread Patch in this message | | | Date | Tue, 21 Feb 2017 15:17:45 +0100 (CET) | From | Jiri Kosina <> | Subject | [PATCH] HID: rmi: fallback to generic/multitouch if hid-rmi is not built (was Re: [GIT PULL] HID for 4.11) |
| |
On Mon, 20 Feb 2017, Linus Torvalds wrote:
> > I'll have a more specific commit (or range) soon. > > Hmm. It's commit 279967a65b32 ("HID: rmi: Handle all Synaptics > touchpads using hid-rmi"). > > And the reason seems to be stupid: I don't have RMI enabled at all, > because that didn't use to work or make a difference. > > Maybe that "let's use RMI" code should depend on RMI actually being > enabled? Because as-is, that code now breaks existing configurations.
I agree; that's in line with what we usually try to stick to (force specific drivers if the device doesn't work with the generic at all and switch over to generic in compile-time for devices that have limited functionality with the generic driver).
Andrew, Benjamin, how about the patch below?
From: Jiri Kosina <jkosina@suse.cz> Subject: [PATCH] HID: rmi: fallback to generic/multitouch if hid-rmi is not built
Commit 279967a65b32 ("HID: rmi: Handle all Synaptics touchpads using hid-rmi") unconditionally switches over handling of all Synaptics touchpads to hid-rmi (to make use of extended features of the HW); in case CONFIG_HID_RMI is disabled though this renders the touchpad unusable, as the
HID_DEVICE(HID_BUS_ANY, HID_GROUP_RMI, HID_ANY_ID, HID_ANY_ID)
match doesn't exist and generic/multitouch doesn't bind to it either (due to hid group mismatch).
Fix this by switching over to hid-rmi only if it has been actually built.
Fixes: 279967a65b32 ("HID: rmi: Handle all Synaptics touchpads using hid-rmi") Reported-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Jiri Kosina <jkosina@suse.cz> --- drivers/hid/hid-core.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c index 538ff697a4cf..e9e87d337446 100644 --- a/drivers/hid/hid-core.c +++ b/drivers/hid/hid-core.c @@ -827,7 +827,8 @@ static int hid_scan_report(struct hid_device *hid) * hid-rmi should take care of them, * not hid-generic */ - hid->group = HID_GROUP_RMI; + if (IS_ENABLED(CONFIG_HID_RMI)) + hid->group = HID_GROUP_RMI; break; } -- Jiri Kosina SUSE Labs
| |