Received: by 2002:ab2:6d45:0:b0:1fb:d597:ff75 with SMTP id d5csp265835lqr; Wed, 5 Jun 2024 05:40:58 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCXoae29c+XJ+pqFsfAjPIG5V5Kk4P3zc01cRpZDRq/dlv8w4RqRZ6OJ0hWcpN5l1WlxnpAaq7z7AHfOdk598fgC6nBd/5Rv2C3LONjfFA== X-Google-Smtp-Source: AGHT+IGV3GPYp6Ujs8/XS/ngf6URpaVKr1hDeGaWEtRr6WljlwgbhOL1lMJ1MO3JSflP4IwRoRKj X-Received: by 2002:a25:264b:0:b0:df7:8b7c:ee6e with SMTP id 3f1490d57ef6-dfacac43984mr2474167276.43.1717591258524; Wed, 05 Jun 2024 05:40:58 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1717591258; cv=pass; d=google.com; s=arc-20160816; b=aVwkDy8Set+Qmj0jqlUTSqfamSGX+Z6nQbbKyFAIEbdQfiJ2ZHoXTvvxA5eOawN3LV 4K+UmPrK+bFePKg2my3UWt0lQg3O32/V8Nddlbe5v0Tlixm5ICNvBznOowXwAXw0s3wL 2S06K7wlvFYYovIMgsvmmSTPtsvSoy2SuV217zpq/rugYIgtukYspEl5knZpc/IbECJV HOXX5vaH4HtN0xni6GS/kWp+8WvhlGKRB6/jgtf/0LqUx8KEmr4iUDB9e+eJgpnoYR+b rozFtMGXH+ZICKySnd2J69dakfowlferHveGX+ImUTV5pIm+TUmZyuO6YKQgV6+kKEw9 Bj+A== 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=rHEW3ZWzN2vx85WCgI5726DpMlaySoNfl0mi/525zgsnS8Ap5xxIvSoK7HsT0y1kgl gT+6TpaCf6HEU2j2pc2rFJRrLbQYEBvWm3fpVtUC1ZNWOxVMkScE+wJxCeKbHQG9raI5 0cD26GXef5ReAE7dO7DwCqTajYKBfkKi9o/DME7d0GVLykqVjsQmSxSe8amIx5fn8UQ/ byosNdRVHUIKZiCUWW6in5YglqCFQ46jjdazFAlLY1i9unwBxI7FWQpLCk5uFadT05j9 1IxLs09TPrRhdQU+wwVoyX0NlP0+tpKnNiJ8SMLkGRmV5BN+uLwqPp5C+rDB/PfhbeBT iEQQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="E/MsrZpm"; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-202500-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-202500-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [147.75.199.223]) by mx.google.com with ESMTPS id 6a1803df08f44-6ae4b42b8fasi3965916d6.501.2024.06.05.05.40.58 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 05 Jun 2024 05:40:58 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-202500-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) client-ip=147.75.199.223; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="E/MsrZpm"; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-202500-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-202500-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 ny.mirrors.kernel.org (Postfix) with ESMTPS id 3D4231C238A1 for ; Wed, 5 Jun 2024 12:40:58 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 3B6011C7763; Wed, 5 Jun 2024 12:04:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="E/MsrZpm" 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 5AE251C7748; Wed, 5 Jun 2024 12:04:18 +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=1717589058; cv=none; b=KrxFGVirHIplh9AFFzbsAy4rrApkJoQjkjW7L6PJvc19ykpFPqj2VOVbf9pyWytxiBYnYk/jZiNXhlKUwAhx1ROmGN+EZ9M/2KtaRGU10QVMDYP2iSO+rj+YP/8RR2ndIXBdaASsc817PiPx4kxUOOs0F1bFsp7GPVrNiWeT6Bk= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717589058; c=relaxed/simple; bh=dRcy6OS1IofzbD1NjQE76rjD0zXix+SxVmT62c0IwPE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=j7St/lhLTkejWp1SPXnjI6gZ5nUDV/da8ilF8hnVxTZrdkn7s7g53+oSGYB2+/aw4mg/NsD0qnUAgZo5bb+kZrJ8IQ3P1CzROoDTwb6u444wGe6AM4oZ1YPg94hUKp70sK2Q9G/dlLRMxlfPpWAN9WYquEZYi6VW/zGQfvAgqDc= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=E/MsrZpm; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id 855B6C4AF07; Wed, 5 Jun 2024 12:04:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1717589058; bh=dRcy6OS1IofzbD1NjQE76rjD0zXix+SxVmT62c0IwPE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=E/MsrZpm96uqlFfwUM2fkzHmyq12ehTJ45OP9RG9RNJESuma9BBhZndk/jC+CE26Y RensooTSldzv+5qcUQYTgnE9Pw1Gyabu48DCMNp57emco/uHGxTP8oZWjy9UIxAnO+ yw70y9VMN24aEldI/JSBYEvrCv358vI+j7NQasE7ga+byj53nhnBR8doKj+XyQhFa2 PlaIP4TWov4SMpQML0bJilrEKxNMgsrwyKSVY385hD00WiXaqJ6LTxzNTWxHooDV49 W1qdYHSAdcbPMcfxLJY2Plg0uNtA5mVthHqlbazw6YxNZ4rnOb9ALQ2VknA8Lp6bny GCIWhr1fnemIg== 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 6.6 06/18] regmap-i2c: Subtract reg size from max_write Date: Wed, 5 Jun 2024 08:03:45 -0400 Message-ID: <20240605120409.2967044-6-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240605120409.2967044-1-sashal@kernel.org> References: <20240605120409.2967044-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 6.6.32 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