From patchwork Wed Aug 30 22:13:25 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jason Gerecke X-Patchwork-Id: 9930911 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id E70CB6032A for ; Wed, 30 Aug 2017 22:13:33 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D9916287CD for ; Wed, 30 Aug 2017 22:13:33 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id CE5F9287D5; Wed, 30 Aug 2017 22:13:33 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.3 required=2.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_HI, RCVD_IN_SORBS_SPAM, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 579CC287CD for ; Wed, 30 Aug 2017 22:13:33 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750975AbdH3WNb (ORCPT ); Wed, 30 Aug 2017 18:13:31 -0400 Received: from mail-qk0-f194.google.com ([209.85.220.194]:35555 "EHLO mail-qk0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750814AbdH3WNa (ORCPT ); Wed, 30 Aug 2017 18:13:30 -0400 Received: by mail-qk0-f194.google.com with SMTP id p67so6289095qkd.2; Wed, 30 Aug 2017 15:13:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=RoB7XstzykeJQA0EZ3hV+h6Lxu/BvsmKVVJBGBe0w2A=; b=SbsoMBN9nyGQQqaH9OxfhhOrVB2kRHMzd/wiljsqpuNUaSvP3SXcz4XMMNrdH1wMaB hGba96C/Jsb2qCyzP/fIZ0lXz0d1y4Cg28HECXp0Z2Z2GOdGy2EAopxS0jODaGqNM3qf AAPsXKc5/2qT6Yded7pZTCUGAJMMrm2ew1KQJZ9Af/yEz32SjUOFymF6wEloToAhXJ7/ pd9R/mXe5yqsuE+xlT7ElXLlyRcl7pR5sqCUS7Pk8i4LFE6cFzEKdI0nX34es22o0eAn dob2ziTXkdLZIqOvlU7MK2D01FGHVdYlkf69pfOMdmbvjC041Bh+y8HrPRAlcPSNKdsm SSmw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=RoB7XstzykeJQA0EZ3hV+h6Lxu/BvsmKVVJBGBe0w2A=; b=LE3XXzuITF1YBsRSshiW0w87k5n2WBNqfY9n/ufsLkGZzDeDPf11KzvB9QF6MSqs90 ivJZL5vZCrkcKwVrHJwnw81FuNlRcl9CZ5hDWjuGbazdQVv4PdC7+EOAleHzw1/SrW5v GOybaACEVszA5KKHmgx/8bhrkxKAud8UsXnLOb3eyFI2UDDsrCwfWcAmqIbSC+IOOWt+ kPr5Au7oYmgvx4enhJeK+lIrSO+i6RS290ayBPovyQHzXwFH7yzXuuQsLF89CXzw0gP/ 8lFyrI8pYAySFrCLOTSnHWyqxoXiOAYi7JBzCb23Vbeyx1kLAmzAMwd3kGfQfY9yZJMB eKNQ== X-Gm-Message-State: AHYfb5iMOpEnxmUjspba0Fk7suRewo4+hNIoV7XbfL0VGVexaZKIHEIf TyC9y5D7ly86TXbcutU= X-Received: by 10.55.99.214 with SMTP id x205mr1174140qkb.356.1504131209457; Wed, 30 Aug 2017 15:13:29 -0700 (PDT) Received: from wacom-arch2.corp.onewacom.com ([50.225.60.4]) by smtp.gmail.com with ESMTPSA id 137sm733018qkl.18.2017.08.30.15.13.27 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 30 Aug 2017 15:13:28 -0700 (PDT) From: Jason Gerecke To: linux-input@vger.kernel.org, Jiri Kosina Cc: stable@vger.kernel.org, Ping Cheng , Aaron Skomra , Benjamin Tissoires , Jason Gerecke , Jason Gerecke Subject: [PATCH v2 1/2] HID: wacom: Properly report negative values from Intuos Pro 2 Bluetooth Date: Wed, 30 Aug 2017 15:13:25 -0700 Message-Id: <20170830221326.15877-1-killertofu@gmail.com> X-Mailer: git-send-email 2.14.1 In-Reply-To: References: Sender: linux-input-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-input@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP The wacom driver's IRQ handler for Bluetooth reports from the 2nd-gen Intuos Pro does not correctly process negative numbers. Values for tilt and rotation (which can go negative) are instead interpreted as unsigned and so jump to very large values when the data should be negative. This commit properly casts the data to ensure we report negative numbers when necessary. Fixes: 4922cd2 ("HID: wacom: Support 2nd-gen Intuos Pro's Bluetooth classic interface") Cc: stable@vger.kernel.org # v4.11 Signed-off-by: Jason Gerecke --- Changes from v1: * Patch introduced. drivers/hid/wacom_wac.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/hid/wacom_wac.c b/drivers/hid/wacom_wac.c index bb17d7bbefd3..d7ca1eb9d559 100644 --- a/drivers/hid/wacom_wac.c +++ b/drivers/hid/wacom_wac.c @@ -1229,9 +1229,9 @@ static void wacom_intuos_pro2_bt_pen(struct wacom_wac *wacom) if (range) { input_report_abs(pen_input, ABS_X, get_unaligned_le16(&frame[1])); input_report_abs(pen_input, ABS_Y, get_unaligned_le16(&frame[3])); - input_report_abs(pen_input, ABS_TILT_X, frame[7]); - input_report_abs(pen_input, ABS_TILT_Y, frame[8]); - input_report_abs(pen_input, ABS_Z, get_unaligned_le16(&frame[9])); + input_report_abs(pen_input, ABS_TILT_X, (char)frame[7]); + input_report_abs(pen_input, ABS_TILT_Y, (char)frame[8]); + input_report_abs(pen_input, ABS_Z, (int16_t)get_unaligned_le16(&frame[9])); input_report_abs(pen_input, ABS_WHEEL, get_unaligned_le16(&frame[11])); } input_report_abs(pen_input, ABS_PRESSURE, get_unaligned_le16(&frame[5]));