Received: by 2002:ab2:6d45:0:b0:1fb:d597:ff75 with SMTP id d5csp288729lqr; Wed, 5 Jun 2024 06:17:54 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCXdwkuPBN6KVti2uGupX2KtLbm9xtnYy3IANqZzmDUY8vCQUdV0jCm1YJfQXnwG483Np8Q1HjPVXKt8oDl1WsGTuKUizQnBqtE3SLb2Vw== X-Google-Smtp-Source: AGHT+IEgrq6ddJXWZoY9KxBQn7y+7a452BlewcZbQZfHHkS9c6oKvAHfoeTUA2swTejmTWn2G+4N X-Received: by 2002:a05:6a00:2e97:b0:702:31dd:6a19 with SMTP id d2e1a72fcca58-703e5a0e3fdmr2813821b3a.32.1717593473997; Wed, 05 Jun 2024 06:17:53 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1717593473; cv=pass; d=google.com; s=arc-20160816; b=ehBeU/iArLKO44uCTlH4WAAzkFbqN0qBJ3SYgoI50eEhaZrFLm3640U4ptM64dCfcI y1Ev21PE6paWWBk9jUVZ2DR1s8AXVg4GVGhSRJls5P5Cy1nhnM9VREMc/41gcf3dbQB5 O0D2lafY/g9nJ3MXy6B0hs6q+/Yiv2m8EqXPrBjltuDhgOEBgo8WU3zt3fuCWkZXFjrH fhHmH65mz47cSHdL2aw0TV3gr3gvE1S8Mp4/pZQ/LdLygOHWN4O9VgQ7SM8P5vnvPpU/ t0Z+5nThuILooqjrZu8r0T2AV3cyJ7Bj6MJ8gm0uTBlX4UVzDmhGzMv03CW07POiVpB+ sg+w== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=onWDHspBmcnpswma1QjNp2VCogB9NlFuso36jCV2zj0=; fh=2Wvii+SHL0QXhhk/PaL6KJSZa7hYfSAVbSvLO6ae/Iw=; b=MPB6O5y75EblyWjumChBU2VFoXcGRnKDzO1q4fZ1RzN7ke2Tui5q70mJkDbgjWPrhn ORhmI+oJnvbrxcwxzG3clIjVDavOGqjMMucohNKx1lHsNaJHTJy+gIW6gGPQju8IyrO9 3h1fGohWNP9M3EcMfmry3Dk/XNVDQ2EiRUvq7kySCl2YsyzDSyiCvIyvY+dZd3md1LgC /tKtffAaMYnW19UiQt3e0tgA+gBRFoLwolpDJiE+4fTyKmWwxX7y+7BmpoGszQ59zJ6I 9SbMP1G0VZ4noxzQ3TrA2PO/7csjzDuAKHwDQPPxFGZetwzGese9IVHD+ZajbYjOMyvw 1G9w==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=lZnL6RGT; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-202532-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.48.161 as permitted sender) smtp.mailfrom="linux-kernel+bounces-202532-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from sy.mirrors.kernel.org (sy.mirrors.kernel.org. [147.75.48.161]) by mx.google.com with ESMTPS id d2e1a72fcca58-70242d58adesi257315b3a.337.2024.06.05.06.17.53 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 05 Jun 2024 06:17:53 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-202532-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.48.161 as permitted sender) client-ip=147.75.48.161; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=lZnL6RGT; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-202532-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.48.161 as permitted sender) smtp.mailfrom="linux-kernel+bounces-202532-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sy.mirrors.kernel.org (Postfix) with ESMTPS id C96A8B21CC3 for ; Wed, 5 Jun 2024 12:49:11 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 5DDBC1CE8C5; Wed, 5 Jun 2024 12:05:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="lZnL6RGT" Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 804171ABE51; Wed, 5 Jun 2024 12:05:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717589136; cv=none; b=ehnev7h/FAHoFYopC10Hp03WPXvaFrsgzJYqgXnxzOY42TUObqcBvFZmeGD/y9tThAdOlKspMdqhfKcMb9z+NX1P23tOzXbCzIM2JrhJDYhAh7csoWpkZvfSmqb6aWsuLiaZpPHgscnoBcFfHcWXe6w3kKd+y6M5s5WmAhRTlQE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717589136; c=relaxed/simple; bh=dRcy6OS1IofzbD1NjQE76rjD0zXix+SxVmT62c0IwPE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=QDjwm94UyJR6SRMq+X4/ud6+3nZ4yx5lxfnA4a7ORXTvuUyMf4t170qnUdjk+Q1O8mMAN7YeFyhhHduzP+tKniazOgEn08TnR+3PTyKTGbF9Xgv7nMKpepawrvmb60qn/dvjDZS/JpJ+kRvy2b1JSFFfJi6qQXu+pgnNidmwA6w= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=lZnL6RGT; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id A7540C4AF09; Wed, 5 Jun 2024 12:05:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1717589136; bh=dRcy6OS1IofzbD1NjQE76rjD0zXix+SxVmT62c0IwPE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=lZnL6RGTHnjXjS58b7LixhFx62X8+UC31o9jlo4hCUEZZNCUzKCCvKcImLhY/cXPw mc8tWdJPy/2dVd2xlohTzY6J2xqbpa6awoi/138ewmX8mV1bE5jn014f3QD6Ht3Bxg NXfZTHuSUUGVNxnIC9Hyw8lObSGiXO37yL/WAOYiCFt4RXe9KPpirdDEkyuOLGk+It AbnCajnmfX0ys4+jmWvRLO24AsEB33IDw4ZL/epqb6r3Vyp0GvujsaciKDcpKZDZZI 2PRNANAwpNgSRiVKzTXqbgUCsdIBdJKJ+ixDztLxPRozDJvlyZKrzmQRFrE5Q0bu0P 1cO9fzLTU58yg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jim Wylder , Mark Brown , Sasha Levin , gregkh@linuxfoundation.org Subject: [PATCH AUTOSEL 5.15 05/12] regmap-i2c: Subtract reg size from max_write Date: Wed, 5 Jun 2024 08:05:15 -0400 Message-ID: <20240605120528.2967750-5-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240605120528.2967750-1-sashal@kernel.org> References: <20240605120528.2967750-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore X-stable-base: Linux 5.15.160 Content-Transfer-Encoding: 8bit From: Jim Wylder [ Upstream commit 611b7eb19d0a305d4de00280e4a71a1b15c507fc ] Currently, when an adapter defines a max_write_len quirk, the data will be chunked into data sizes equal to the max_write_len quirk value. But the payload will be increased by the size of the register address before transmission. The resulting value always ends up larger than the limit set by the quirk. Avoid this error by setting regmap's max_write to the quirk's max_write_len minus the number of bytes for the register and padding. This allows the chunking to work correctly for this limited case without impacting other use-cases. Signed-off-by: Jim Wylder Link: https://msgid.link/r/20240523211437.2839942-1-jwylder@google.com Signed-off-by: Mark Brown Signed-off-by: Sasha Levin --- drivers/base/regmap/regmap-i2c.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/base/regmap/regmap-i2c.c b/drivers/base/regmap/regmap-i2c.c index 3ec611dc0c09f..a905e955bbfc7 100644 --- a/drivers/base/regmap/regmap-i2c.c +++ b/drivers/base/regmap/regmap-i2c.c @@ -350,7 +350,8 @@ static const struct regmap_bus *regmap_get_i2c_bus(struct i2c_client *i2c, if (quirks->max_write_len && (bus->max_raw_write == 0 || bus->max_raw_write > quirks->max_write_len)) - max_write = quirks->max_write_len; + max_write = quirks->max_write_len - + (config->reg_bits + config->pad_bits) / BITS_PER_BYTE; if (max_read || max_write) { ret_bus = kmemdup(bus, sizeof(*bus), GFP_KERNEL); -- 2.43.0