Thread (1 message) 1 message, 1 author, 2014-11-03

Re: Microsoft Surface Pro 3 Type Cover keyboard

From: Benjamin Tissoires <hidden>
Date: 2014-11-03 20:39:40

On Mon, Nov 3, 2014 at 3:33 PM, Andrew Duggan [off-list ref] wrote:

On Mon, Nov 3, 2014 at 7:28 AM, Benjamin Tissoires
[off-list ref] wrote:
quoted
On Mon, Nov 3, 2014 at 8:33 AM, Jiri Kosina [off-list ref] wrote:
quoted
On Fri, 24 Oct 2014, Jarrad Whitaker wrote:
quoted
The keyboard on the Surface Pro 3 type cover does not function without
some patching, similar to what was apparently required for the SP2
type/touch covers.

A working patch against 3.16 attached, it's an amalgamation of "some
dude posted this on the ubuntu/arch forums and it seems to work" so
I'm making no claims that it's kernel-quality! Just trying to give a
better indication of what needs to be added. My C is rudimentary and
my knowledge of the kernel limited to 'fakeroot debian/rules
updateconfigs', sorry. :)
Happy to test any improved version, but note I only have a type, not a
touch cover.

Patch source is
http://winaero.com/blog/how-to-install-linux-on-surface-pro-3/, which
in turn sources a Russian site.
Hi,

thanks. Adding Alan Wu to CC, who sent me a slightly different patch for
this issue -- see the archives of linux-input list from a few days back.

Your patch is missing at least Signed-off-by: line, and also seems to
lack
the update to hid_have_special_driver[].
Jiri, actually, the hid_have_special_driver entry is not 100% required
to make it work (though it would be cleaner, I agree).
Actually, the TypeCover presents a Precision TouchPad, so hid-core
considers it should have the hid-multitouch driver driving it (see
https://bugzilla.redhat.com/show_bug.cgi?id=1135338 )

I am not sure we should use hid-multitouch or hid-microsoft. My guess
is that both will work, but hid-multitouch might provide true raw
reporting for the touchpad. On the other hand, maybe hid-microsoft
will bind special keys that hid-multitouch will not...
I would think that being able to do multifinger gestures would make using
hid-multitouch preferable. Using hid-microsoft will keep the touchpad in
mouse mode since the host needs to send the feature report to switch the
touchpad into PTP mode. In PTP mode, this touchpad will report absolute data
for three fingers.

I think the main issue is how do you get  the keyboard working when the
device is using the hid-multitouch driver. After looking at the bug above
and Benjamin's changes on Github it looks like adding an entry in mt_devices
and setting MT_CLS_EXPORT_ALL_INPUTS would also export the keyboard. Is that
correct? I haven't been able to try it out.
Correct. See https://github.com/bentiss/hid-multitouch/commit/999eb73d37bab0b72f775f2150b1c27488610414
The reporter seems to claim that it works for him, but I need to check
if the touchpad is correctly presented (properties, etc), if the
touchpad data come from the raw node, and not the mouse node, and if
there is no problems with respect to the keyboard. I'd prefer the
owners of the device to double check all of this.
If hid-microsoft has functionality which hid-multitouch doesn't provide is
there a way to combine the two without reimplementing the functionality of
one driver into the other?
The problem with this device is that the keyboard and touchpad are on
the same hid device, on different collections. So if hid-microsoft
does fancy stuff on the keyboard level, the only option will be to
merge hid-multitouch in hid-input (this might be needed at some
point).

Cheers,
Benjamin
quoted
If the path is to go through hid-microsoft, then Jarrad, Alan, yes,
please, add your device to hid_have_special_driver.

Cheers,
Benjamin
quoted
Could you two guys please cooperate and send me a patch that should be
applied? I don't have the device so can't really test properly myself.

Thanks,

--
Jiri Kosina
SUSE Labs
--
To unsubscribe from this list: send the line "unsubscribe linux-input"
in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help