Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp443815ybl; Tue, 28 Jan 2020 06:06:18 -0800 (PST) X-Google-Smtp-Source: APXvYqwwwXkduDSmUEkfO1ubQNM/kLAl0Eo8kgqpAKeakVFA0WwRECGGZfT2FTZ5LQJj0P1dOscb X-Received: by 2002:a9d:7548:: with SMTP id b8mr16255505otl.74.1580220377997; Tue, 28 Jan 2020 06:06:17 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1580220377; cv=none; d=google.com; s=arc-20160816; b=tF5B0l9RUcAbYUsdGauuNQc8mgtZsE/c7aIEei3yhbwU9J5dU0wbtyYuCfqJniHKg4 qr2oRTAypA2N6sHBywiPTv6NFQCV0p48uRtxQ7FpxA0ZEcmWzemiPUPEEyKcz/JlcVZt G6bdfnmfZIzfh+qwZs2AluPogiPMsCcaZrUERKmCXDFupu6q01pOLnDEfpDoJpydHgW0 rfw4QOf/3bSdO3v5nQMces+CFCWBdSJl/urCiKbKkz7FCCgXhGSThqRnKQh6K2yEWx1X HwejP0U5ucGHzcWdLQs84I1t/usRByTJg3IptF2vPEvPBW2gc6/wydXbsKK32x4jQbFh vR+g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=OnakE1BCs5JnBYJAVjFhTL6zU8RTQ28kIm6SITdslIk=; b=CbZ7CYtKnk13cFVLHNpM3c7ALT9vuiQC4tkS203GDcE5bbN3tvsxfYTU5a98AQ6dyI 4wfErCnJXuTzmsBnwJJBWqNsgmoswMaPWSXzUy0VctaITZy2sgiGsV0uOmY6BLRu0OpT M9BPtVidgwKKn0cHDY4DI+mKz8UZT42a80Wnf0+eNRu8KZ9TsE7PvhHTUDesH5Sn9h71 UbdgzkzzL9h5Dq7AI49hfe6DwTjmf5Eym2n/XsKGmj8g/BxwLoh+FrX2MCHz4kz/jkqb Uwv1cvlpQko49brVr3uTsdLcoHibapqAIs1Jk12d4y4fC4/nZiINTUdlYqa+ujIFeNwD UCNA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=GGVi9awg; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a128si5203769oib.142.2020.01.28.06.05.57; Tue, 28 Jan 2020 06:06:17 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=GGVi9awg; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727933AbgA1ODs (ORCPT + 99 others); Tue, 28 Jan 2020 09:03:48 -0500 Received: from mail.kernel.org ([198.145.29.99]:50498 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727909AbgA1ODk (ORCPT ); Tue, 28 Jan 2020 09:03:40 -0500 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 4CDE52468E; Tue, 28 Jan 2020 14:03:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1580220219; bh=9kR/3OCN6jMu5Onj2cKpowi5ii9LW+C2hiYmA5NJb28=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=GGVi9awgukjkXRZPcGXQ38k+cxMm8wb/b0lDWX3yO7HmTe3DuhEc1C+1ddUewpw+m XGYWY5lDk79/7RsOoW7bCRIruss5CkQ22U+m77RTP8n+sUTvB+xfs0UbyEksB287uB //XgVrc5zKcnDJ/BEprzSYxb8vRwLbBnQhtx6hgc= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Stephan Gerhold , Dmitry Torokhov Subject: [PATCH 5.4 064/104] Input: pm8xxx-vib - fix handling of separate enable register Date: Tue, 28 Jan 2020 15:00:25 +0100 Message-Id: <20200128135826.358779254@linuxfoundation.org> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200128135817.238524998@linuxfoundation.org> References: <20200128135817.238524998@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Stephan Gerhold commit 996d5d5f89a558a3608a46e73ccd1b99f1b1d058 upstream. Setting the vibrator enable_mask is not implemented correctly: For regmap_update_bits(map, reg, mask, val) we give in either regs->enable_mask or 0 (= no-op) as mask and "val" as value. But "val" actually refers to the vibrator voltage control register, which has nothing to do with the enable_mask. So we usually end up doing nothing when we really wanted to enable the vibrator. We want to set or clear the enable_mask (to enable/disable the vibrator). Therefore, change the call to always modify the enable_mask and set the bits only if we want to enable the vibrator. Fixes: d4c7c5c96c92 ("Input: pm8xxx-vib - handle separate enable register") Signed-off-by: Stephan Gerhold Link: https://lore.kernel.org/r/20200114183442.45720-1-stephan@gerhold.net Signed-off-by: Dmitry Torokhov Signed-off-by: Greg Kroah-Hartman --- drivers/input/misc/pm8xxx-vibrator.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- a/drivers/input/misc/pm8xxx-vibrator.c +++ b/drivers/input/misc/pm8xxx-vibrator.c @@ -90,7 +90,7 @@ static int pm8xxx_vib_set(struct pm8xxx_ if (regs->enable_mask) rc = regmap_update_bits(vib->regmap, regs->enable_addr, - on ? regs->enable_mask : 0, val); + regs->enable_mask, on ? ~0 : 0); return rc; }