From patchwork Tue Nov 29 16:59:14 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Vaussard X-Patchwork-Id: 9452749 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 B7D666071E for ; Tue, 29 Nov 2016 17:00:18 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id AA029283D3 for ; Tue, 29 Nov 2016 17:00:18 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 9ED57283F8; Tue, 29 Nov 2016 17:00:18 +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 774E4283D3 for ; Tue, 29 Nov 2016 17:00:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755529AbcK2Q7o (ORCPT ); Tue, 29 Nov 2016 11:59:44 -0500 Received: from mail-wj0-f195.google.com ([209.85.210.195]:35074 "EHLO mail-wj0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754784AbcK2Q7l (ORCPT ); Tue, 29 Nov 2016 11:59:41 -0500 Received: by mail-wj0-f195.google.com with SMTP id he10so4712027wjc.2; Tue, 29 Nov 2016 08:59:40 -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=bR4nfBs1DD3t6IOmT8m27KIJx+Cx/M2Se3ioMQA1rFw=; b=p1D8U7M+h8YTpOdqaXOnr2t03OFVIUmHEUBZpqPLXJj1bqCG6YUWPO/ITejR0juuaH Z6ptDz+WabWfRCgQYh4MnnFRseRyNe3Ra5EvGjJ6vkb3xAlius2iEwMAZJqB+lJXZvLc iowfhDXb28/a3EzHekKwCxPy2qjbEmoSWDqsOXbTK/yemjlGTymuw94/UGv2C0l9EdCJ Xs25RQmz/XCcInGjx4/SnZ78TzvG/PfDaqstmvlDiFRlTYq4kVx5fqxlqonFeNmkllPd hDtuwnKZskCFXKoOH4riNBw7oiOM/M4c4Y7Tsj8SJwbu/cfUSaGolJmaS4Z0b7kYaJJs 6MIA== 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=bR4nfBs1DD3t6IOmT8m27KIJx+Cx/M2Se3ioMQA1rFw=; b=NDng+OOrUfTLFqfG3bpFzUdFuulxSl2UJqCf+b8VTT297glpmLvUgk/YN4OY+sfzs6 To6jeNJDE5JdHIQ6VSLRnhOG1WUzgt4VVttDJdyaNbxVSM6UjaX/yTTRZaCyTpjjGG8Z JN3prrlnyjlj07krXq/CRLU/Qa4GiDQt7wGGXKD0YI9WXR5XoQhaSrQqP/FHecpb8PFr 57FHX+sVCTNqXXsiV3wiSHbJZLa2UDRErTdmGuRBfqxcts+zRNkwZRIxfhry9xd7TUCl X24D5SJsiGwsFldUq110trCLD2HQo5756pZFEII8UGNFlbNZmIAumqByWWKjgALUm3xM Qohw== X-Gm-Message-State: AKaTC017RU7EjPZt5B/R03GyHKZSgnIwh8C6G0LZHARecPUaoWqzd9TTXt9+eujCVmBnAg== X-Received: by 10.195.14.103 with SMTP id ff7mr23725054wjd.126.1480438779389; Tue, 29 Nov 2016 08:59:39 -0800 (PST) Received: from a23nb05.localdomain ([194.230.159.140]) by smtp.googlemail.com with ESMTPSA id jm6sm68753838wjb.27.2016.11.29.08.59.38 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 29 Nov 2016 08:59:39 -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 2/2] Input: drv2667: Fix misuse of regmap_update_bits Date: Tue, 29 Nov 2016 17:59:14 +0100 Message-Id: <1480438754-14794-3-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 DRV2667_STANDBY mask, which equals (1 << 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/drv2667.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/input/misc/drv2667.c b/drivers/input/misc/drv2667.c index d5ba748..2849bb6 100644 --- a/drivers/input/misc/drv2667.c +++ b/drivers/input/misc/drv2667.c @@ -256,7 +256,7 @@ static void drv2667_close(struct input_dev *input) cancel_work_sync(&haptics->work); error = regmap_update_bits(haptics->regmap, DRV2667_CTRL_2, - DRV2667_STANDBY, 1); + DRV2667_STANDBY, DRV2667_STANDBY); if (error) dev_err(&haptics->client->dev, "Failed to enter standby mode: %d\n", error); @@ -415,7 +415,7 @@ static int __maybe_unused drv2667_suspend(struct device *dev) if (haptics->input_dev->users) { ret = regmap_update_bits(haptics->regmap, DRV2667_CTRL_2, - DRV2667_STANDBY, 1); + DRV2667_STANDBY, DRV2667_STANDBY); if (ret) { dev_err(dev, "Failed to set standby mode\n"); regulator_disable(haptics->regulator);