From patchwork Tue Nov 29 16:59:13 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Vaussard X-Patchwork-Id: 9452745 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 B68BF6071E for ; Tue, 29 Nov 2016 16:59:45 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A6DDE283C2 for ; Tue, 29 Nov 2016 16:59:45 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 9BA15283DF; Tue, 29 Nov 2016 16:59:45 +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 9953F283C2 for ; Tue, 29 Nov 2016 16:59:44 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754942AbcK2Q7m (ORCPT ); Tue, 29 Nov 2016 11:59:42 -0500 Received: from mail-wm0-f67.google.com ([74.125.82.67]:34712 "EHLO mail-wm0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754609AbcK2Q7j (ORCPT ); Tue, 29 Nov 2016 11:59:39 -0500 Received: by mail-wm0-f67.google.com with SMTP id g23so25416180wme.1; Tue, 29 Nov 2016 08:59:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=ZICIi8b8pGHT5ryFHkxWRvv2kZSSuIHDoTKSV3FJhwk=; b=gtaEywjP4JcEZ28rip/P7p5Z2f+LPRyG/NyCi1IXHLywaL01MVyCfjkBOCqO+HGIZY 6pKyLWQovSqwLm9wH4sDFMHJjd9iu70+aEPCj7vEqyRhT/iDxA2kqwezfvpt3aOJx4Bq ZFQB5SvF/FxGmVE9F5LG3JrWOJrh3MG5mytLuV+jvYDevoGLiLt7buGmZp2mk6MJreFe Hhupf36wBjG34puwoBaZitbCKOCLliVmDdw60XeV5mGbY1DZUn4HQ3CSL0tr4S3s+Xh4 JLnfyTXurgKIPewYjb5R7Y93GdZNM5krrEgdzwBjPGC7eTaHtqYPZM+C538K0Gyu4kjQ 46bg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=ZICIi8b8pGHT5ryFHkxWRvv2kZSSuIHDoTKSV3FJhwk=; b=ObzuMXvy6EotJlVH3DAHZ6O1SBU9lw1v7W3t7mNGLlJwM9TuuWwt8ZbNPMlht0n0RI ETqHiUibW+Xc+jaeCWkx41ylTk9w8Fz2zLdpmGdBmwU6tJFuU+Np8wmqUwAozhalJZfE awIcdF4uCYoSS0+6iopGwF3oNsJRCJ/xeCaGxGhAiAY/thO+jP7w/otfxEL3KrX84JeJ bDsnOg3awn95xpclgQnei3yFvWHBK22UWkZWoiupc9N95E/JuDiknibIxlRV0p8sVFJ+ xck4QacJWJmLoP8t0fz3JP8PohKCU/iOuXgOAPxQ110A6rb9Xd89I6jsnmBxyopBgWsm VbDQ== X-Gm-Message-State: AKaTC02sgH7PAX5aLG/WHfGPBsGR48wgVafq+PaBMXaWlrsLpEefFrmsmJbAjPYgFT7RtQ== X-Received: by 10.28.69.217 with SMTP id l86mr24137067wmi.129.1480438778338; Tue, 29 Nov 2016 08:59:38 -0800 (PST) Received: from a23nb05.localdomain ([194.230.159.140]) by smtp.googlemail.com with ESMTPSA id jm6sm68753838wjb.27.2016.11.29.08.59.37 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 29 Nov 2016 08:59:37 -0800 (PST) From: Florian Vaussard X-Google-Original-From: Florian Vaussard To: Dmitry Torokhov Cc: Dan Murphy , linux-input@vger.kernel.org, linux-kernel@vger.kernel.org, Florian Vaussard Subject: [PATCH 1/2] Input: drv2665: Fix misuse of regmap_update_bits Date: Tue, 29 Nov 2016 17:59:13 +0100 Message-Id: <1480438754-14794-2-git-send-email-florian.vaussard@heig-vd.ch> X-Mailer: git-send-email 2.5.5 In-Reply-To: <1480438754-14794-1-git-send-email-florian.vaussard@heig-vd.ch> References: <1480438754-14794-1-git-send-email-florian.vaussard@heig-vd.ch> 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 Using regmap_update_bits(..., mask, 1) with 'mask' following (1 << k) and k greater than 0 is wrong. Indeed, _regmap_update_bits will perform (mask & 1), which results in 0 if LSB of mask is 0. Thus the call regmap_update_bits(..., mask, 1) is in reality equivalent to regmap_update_bits(..., mask, 0). In such a case, the correct use is regmap_update_bits(..., mask, mask). This driver is performing such a mistake with the DRV2665_STANDBY mask, which equals BIT(6). Fix the driver to make it consistent with the API, and fix the alignment problem at the same time. Please note that this change is untested, as I do not have this piece of hardware. Testers are welcome! Signed-off-by: Florian Vaussard --- drivers/input/misc/drv2665.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/input/misc/drv2665.c b/drivers/input/misc/drv2665.c index ef9bc12..b0f46e7 100644 --- a/drivers/input/misc/drv2665.c +++ b/drivers/input/misc/drv2665.c @@ -126,7 +126,8 @@ static void drv2665_close(struct input_dev *input) cancel_work_sync(&haptics->work); error = regmap_update_bits(haptics->regmap, - DRV2665_CTRL_2, DRV2665_STANDBY, 1); + DRV2665_CTRL_2, DRV2665_STANDBY, + DRV2665_STANDBY); if (error) dev_err(&haptics->client->dev, "Failed to enter standby mode: %d\n", error); @@ -240,7 +241,7 @@ static int __maybe_unused drv2665_suspend(struct device *dev) if (haptics->input_dev->users) { ret = regmap_update_bits(haptics->regmap, DRV2665_CTRL_2, - DRV2665_STANDBY, 1); + DRV2665_STANDBY, DRV2665_STANDBY); if (ret) { dev_err(dev, "Failed to set standby mode\n"); regulator_disable(haptics->regulator);