• Hans de Goede's avatar
    platform/x86: intel-vbtn: Detect switch position before registering the input-device · dd950f16
    Hans de Goede authored
    Setting the initial state of input-device switches must be done before
    registering the input-device.
    
    Otherwise the initial state will get send out as an event as soon
    as input_sync() gets called.
    
    E.g. when undocking a tablet using intel-vbtn to report SW_TABLET_MODE
    and SW_DOCK before this commit we would get (evemu-record output):
    
    E: 0.000001 0005 0005 0001	# EV_SW / SW_DOCK              1
    E: 0.000001 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +0ms
    E: 0.000109 0005 0005 0000	# EV_SW / SW_DOCK              0
    E: 0.000109 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +0ms
    E: 0.000133 0005 0001 0001	# EV_SW / SW_TABLET_MODE       1
    E: 0.000133 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +0ms
    
    The first SW_DOCK=1 report is spurious, setting the initial switch
    state before registering the input-device fixes this.
    Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
    Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
    dd950f16
intel-vbtn.c 8.62 KB