lkml.org 
[lkml]   [2016]   [Jan]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.3 149/157] HID: wacom: Expect touch_max touches if HID_DG_CONTACTCOUNT not present
    Date
    4.3-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Jason Gerecke <killertofu@gmail.com>

    commit df7079380554e6e8e13a0812c7e6c72f669aba5c upstream.

    When introduced in commit 1b5d514, the check 'if (hid_data->cc_index >= 0)'
    in 'wacom_wac_finger_pre_report' was intended to switch where the driver
    got the expected number of contacts from: HID_DG_CONTACTCOUNT if the usage
    was present, or 'touch_max' otherwise. Unfortunately, an oversight worthy
    of a brown paper bag (specifically, that 'cc_index' could never be negative)
    meant that the latter 'else' clause would never be entered.

    The patch prior to this one introduced a way for 'cc_index' to be negative,
    but only if HID_DG_CONTACTCOUNT is present in some report _other_ than the
    one being processed. To ensure the 'else' clause is also entered for devices
    which don't have HID_DG_CONTACTCOUNT on _any_ report, we add the additional
    constraint that 'cc_report' be non-zero (which is true only if the usage is
    present in some report).

    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/hid/wacom_wac.c | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    --- a/drivers/hid/wacom_wac.c
    +++ b/drivers/hid/wacom_wac.c
    @@ -1740,8 +1740,8 @@ static void wacom_wac_finger_pre_report(
    }
    }
    }
    -
    - if (hid_data->cc_index >= 0) {
    + if (hid_data->cc_report != 0 &&
    + hid_data->cc_index >= 0) {
    struct hid_field *field = report->field[hid_data->cc_index];
    int value = field->value[hid_data->cc_value_index];
    if (value)

    \
     
     \ /
      Last update: 2016-01-27 22:01    [W:4.111 / U:1.252 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site