From nobody Fri Apr 3 01:22:52 2026 Received: from mail-ed1-f45.google.com (mail-ed1-f45.google.com [209.85.208.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 48C1C2F39CD for ; Sun, 15 Feb 2026 14:14:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771164883; cv=none; b=s32taInq8rFFQ96d5fOH8Yn0H5nYLOEqmZfrVgZFLFSAP5U2f0FRZzNh5ZjGuIWsdFfcr+GwFTLVxzRRDvmIRoohgzpzZPH5jxkA1ZgQ0pHQfisBMXEj43qC58qqmjVX439CJ4I3X1xBHnOI7V0P5lWfUz+IMTEdSoay1oA29Vc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771164883; c=relaxed/simple; bh=tGAAR8BCPGQ6diGbDduc4alU8q3ssqbirz2CiArzelY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=UouYQ/cZuffh0CUZwqohjGWWBo0zGPU5MPSwdeBh21BfqfqlDP6gkAFzdU2uuQTRqM+gjFXVdeDqPoX6rfdqwP/6e/2kLKAiB8+1/0QNgjtM5c+FZF/keCfMPW5MRFS8OrqZzNQeJftZgOmCRvdF9paoI4g37E4KbJP74dHuoVc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=MmP4Si1N; arc=none smtp.client-ip=209.85.208.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="MmP4Si1N" Received: by mail-ed1-f45.google.com with SMTP id 4fb4d7f45d1cf-6581234d208so3910889a12.3 for ; Sun, 15 Feb 2026 06:14:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1771164881; x=1771769681; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=GhCYDBAOVWjwZIBQGZkgvy83Ytz3Sb0ddi7CY5JAu4c=; b=MmP4Si1NH3j1HjinSekQYW+ArM4FiqsOyU+YDyUSvRE+dFZJYosFckgyEdscWX0X3Z OjVuZXDbxOg1wLoG9L2bzmnG9H6pZiXVXPyIKPQL+qRfmWAMnhbK3oR0dGMPjBEZhltG 1TMObW4kpKYwfPKJD9mxjo+fleQN5Nad02xUaQDpwEx8hnIUZd9g5/uSO3fFqM5yZNdA 1k3UElUS7mtZCSaLBwYWVAN8SDhJ4QWcfOk5WBWlJfCzHZeikOHitIYnhL0XxJ+7JXsG ceu6nu/aL6JFbhrcg4S6V76wtMqeC6YQXBJzIVopIOi5zkLDGT2WIkAkFtCHAs0vdf1g wosA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771164881; x=1771769681; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=GhCYDBAOVWjwZIBQGZkgvy83Ytz3Sb0ddi7CY5JAu4c=; b=DFEdnmmns1tnvLwkFHXzKa/fD3nUF+wJVJxNzFV7kv5/Sdwb8w+z5O/4dbUGHcXivn xfFU4rNYSauA8FLcmUM0yC0t0IW4C8rlZTC+bBX02BxX8wf/njqsASIO0IacpRo+e17z hZgYlOxbszYSVAOLFBofPf640z6RkIArVuK9AwsFu6SL0gXqze8OZ0RwOjxx5rT4uB30 Xvw+qXpJL31WjmfuohdnAe5/cj3Y9tWFtGVd8QuAZPDlrySEcRvo5uP7Wiuo88j+jLaG tclYn0Ri2N9gDTsrrJhtnfg+QSVhWS0GHlMJDAfnyCv3xDuecd4AjltA2QwVE7slPchv g8Eg== X-Gm-Message-State: AOJu0YyDdqVI3uyr2TXGkPNuBB6jSQ0Hp6yNWzGmPtRC5rfNegVtL25z pdw5XJipNYNixAoOdHUlLuj5rmAsO+boA8loP9/EB1XJN1XDZ8sZLqqm X-Gm-Gg: AZuq6aKtW+mpG+yEI8B3TGhsUDaRgvPPJlx2Wk1BNZYEuJToLP4RQFpGWd0bz02DQqY zLIiGiznK4Fp0kVmXPB6W7bX1Hu6sx5YZ69kJgrGgamSCKm01FGithX9vsQJumfJSjv84kTM7p/ 1hmzSF/Zdd2qmKqVo8Ij2B+nsc3X4bOFsbyMyAAMSqVfnINbSvL+v1q8faIxQyrtVdPfjtzSCqe P4Wcz5VbMtIB+jbpVLdBcNYh6+Mgklp/Ihs4Bdg3j9sNBE+4B6iwdUVGtO54OW3ikHnD0T1ZGFz jMUygGQY9qlpz1TsnEXeS3Nq2uxA32EKprPgO2IjfBSsSqsOWuZ6wT2vvKK2Xmyrl53VlN4pb+C g9cqxg/fiQ3ShBppsr9gcji6vPiig4hN++Bki9eSfhkRUUJUJIOCMqTG6B9xqWGvb/mwtE4ES4X 0+mAYkIBsrLXdBJg== X-Received: by 2002:a05:6402:90a:b0:659:3ed2:13dd with SMTP id 4fb4d7f45d1cf-65bc78549ccmr2529465a12.4.1771164880514; Sun, 15 Feb 2026 06:14:40 -0800 (PST) Received: from jekhomev ([46.251.53.180]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-65bad29df12sm1518889a12.14.2026.02.15.06.14.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 15 Feb 2026 06:14:40 -0800 (PST) From: Yauhen Kharuzhy To: Dmitry Torokhov , linux-input@vger.kernel.org Cc: linux-kernel@vger.kernel.org, Hans de Goede Subject: [PATCH v2 4/5] input: drv260x: Fix unbalanced regulator_disable() call Date: Sun, 15 Feb 2026 16:14:34 +0200 Message-ID: <20260215141435.727872-5-jekhor@gmail.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260215141435.727872-1-jekhor@gmail.com> References: <20260215141435.727872-1-jekhor@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The driver acquires the 'vbat' regulator during probing but never enables it. Consequently, in the suspend method, the driver disables the regulator without enabling it first, causing an 'Unbalanced regulator_disable()' error. Enable the regulator in the probe() method and add the remove() method with regulator disabling to fix this. Signed-off-by: Yauhen Kharuzhy --- drivers/input/misc/drv260x.c | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/drivers/input/misc/drv260x.c b/drivers/input/misc/drv260x.c index c4dd410c303e..71fbdabc6589 100644 --- a/drivers/input/misc/drv260x.c +++ b/drivers/input/misc/drv260x.c @@ -520,19 +520,37 @@ static int drv260x_probe(struct i2c_client *client) return error; } =20 + error =3D regulator_enable(haptics->regulator); + if (error) { + dev_err(dev, "Failed to enable regulator\n"); + return error; + } + error =3D drv260x_init(haptics); if (error) { dev_err(dev, "Device init failed: %d\n", error); - return error; + goto err_regulator_disable; } =20 error =3D input_register_device(haptics->input_dev); if (error) { dev_err(dev, "couldn't register input device: %d\n", error); - return error; + goto err_regulator_disable; } =20 return 0; + +err_regulator_disable: + regulator_disable(haptics->regulator); + + return error; +} + +static void drv260x_remove(struct i2c_client *client) +{ + struct drv260x_data *haptics =3D i2c_get_clientdata(client); + + regulator_disable(haptics->regulator); } =20 static int drv260x_suspend(struct device *dev) @@ -626,6 +644,7 @@ MODULE_DEVICE_TABLE(of, drv260x_of_match); =20 static struct i2c_driver drv260x_driver =3D { .probe =3D drv260x_probe, + .remove =3D drv260x_remove, .driver =3D { .name =3D "drv260x-haptics", .of_match_table =3D drv260x_of_match, --=20 2.51.0