Re: [PATCH] Input: serio: make HYPERV_KEYBOARD depend on SERIO_I8042=y
From: Greg KH <gregkh@linuxfoundation.org>
Date: 2014-08-12 06:01:50
Also in:
lkml
On Tue, Aug 12, 2014 at 05:51:28AM +0000, Dexuan Cui wrote:
quoted
-----Original Message----- From: Greg KH [mailto:gregkh@linuxfoundation.org]quoted
Decoupling the dependency between hyperv_keyboard and i8042 needs non-trivial efforts and is hence a long term goal. For now, let's make the dependency explicit so people can beware of this.You didn't make anyone "aware" of this, you just prevented people from being able to select the module unless they build the driver into the kernel, which isn't very nice.Yes, exactly.quoted
What exactly needs to be done to fix this "correctly" that is going to take too much work at the moment?Hi Greg, The current implementation of hyperv-keyboard.c borrows serio_interrupt() to pass the key strokes to the high level component. serio_interrupt() actually depends on atkbd.c and i8042.c, so this doesn't work for a Generation 2 hyper-v guest because no i8042 keyboard controller is emulated: http://technet.microsoft.com/en-us/library/dn282285.aspx To decouple the dependency between the hyperv-keyboard and i8042 modules, I suppose we probably have to re-implement hyperv-keyboard by using input_allocate_device(), input_register_device(), and using input_report_key() to pass the key strokes to the high level.
Yes, that would be the best thing to do, and shouldn't be that hard to create an input driver, it's pretty simple code, right?
I'll have to need some time for further investigation and a new implementation. Before the new code is completely ready, IMHO the patch can help to avoid a bad user experience like Arch Linux working as a Generation 2 hyper-v guest.
You are still preventing Arch from working here, as the driver can't be built at all, right?
BTW, looks most of Linux distros (like RHEL, Ubuntu, SUSE) have CONFIG_SERIO_I8042=y, probably because it's the result of "make defconfig". So the patch actually doesn't affect these distros.
Or maybe it is beause they use older kernels and like to turn on every single possible option :) thanks, greg k-h