• Henrik Rydberg's avatar
    Input: synaptics - use firmware data for Cr-48 · e08d9afa
    Henrik Rydberg authored
    The profile sensor clickpad in a Cr-48 Chromebook does a reasonable job
    of tracking individual fingers. This tracking isn't perfect, but,
    experiments show that it works better than just passing "semi-mt" data
    to userspace, and making userspace try to deduce where the fingers are
    given a bounding box.
    
    This patch tries to report correct two-finger positions instead of the
    {(min_x, min_y), (max_x, max_y)} for profile sensor clickpads on Cr-48
    chromebooks. Note that this device's firmware always reports the higher
    (smaller y) finger in the "sgm" packet, and the lower (larger y) finger
    in the "agm" packet. Thus, when a new finger arrives on the pad, the
    kernel driver uses input core's contact tracking facilities to match
    contacts with slots.
    
    Inspired by patch by Daniel Kurtz <djkurtz@chromium.org> and Chung-yih
    Wang <cywang@chromium.org>
    Signed-off-by: default avatarHenrik Rydberg <rydberg@euromail.se>
    Reviewed-by: default avatarBenson Leung <bleung@chromium.org>
    Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
    e08d9afa
synaptics.c 48.3 KB