Received: by 2002:ab2:6d45:0:b0:1fb:d597:ff75 with SMTP id d5csp284978lqr; Wed, 5 Jun 2024 06:12:06 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCX6X/9j2ulFe7RhYAe3uJpXVF2A2TA1srmvT1fNTDY+N3xP7D81481lBaEDX3HfZC1zLp7NrPyU1GHwLKT4QaKMAMqo1ZMr0JNTqTscAA== X-Google-Smtp-Source: AGHT+IHkUJJ67itAV9HRjQ6ikLpIvCQu7XbSoE09l00mSqM2dbnQ114ESeLeSSFzQS5jXU2C2oiK X-Received: by 2002:a05:6a20:72a7:b0:1b2:a94d:4ecc with SMTP id adf61e73a8af0-1b2b712d561mr3129555637.49.1717593124355; Wed, 05 Jun 2024 06:12:04 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1717593124; cv=pass; d=google.com; s=arc-20160816; b=BSDs1kfxiePioQRWletKZBlVM+rupG9EhgkNV253vB7fpMyvtu8QBdRq7gupoy5PbU ulRpTyf2inrD7EFnTw8HqrPBelbFel9/AoaWFFw9K/7F6apzQaXYAfgoxbsHDyaDAsVy dlZKJONHgDCOotzwm8epLacOuGF2lsoxOuvaQ3i3yMnbfhHKU5q1GguVSwWHa+94Gl8H x4S108Jj8+LQ/z949RTb9L9bjvSXPDlifi7VKspngFqHi6azOwAV8vm2ydsFYnQgateR mnkL5zrlEFjErGpgvDV4nv5+PbGG9vvfwUtD3GID2iI2zgXt6Y9ghEMA9AH+ZcMYfBcD Iwdg== 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=vZbDwMg2fJPuaHeXDKB2JOAXBsNXnRdmkApah9MsfhXx/cxsn0jHFeA6ghBBNBKtSH HJfTRU8V8T0HtyWA3qyRsRslwQyniCkz44XH0F8a0OZN/tkA2v4stZYC/PqctEeEicKj EkIEgn4NjeCAuMH2OsD5QeEgTw03Ufnco1+hFrWJk+7bWeIP7ICl1RtF39ZtlfLOnIIU BsSxb7T7z7NBwgGdmDnBxouK+ecGY1BLSmqCAMVL+dd4zVGLahx9vOns4kD7s1k36gW3 7fmQuSs5+0KbmC4mKzp8t79lNADPY3aKIPSlxWiBiZvAhx84YT7rAkxhR2C4+fU/fxII 6gxQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="S/lyY28O"; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-202518-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:40f1:3f00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-202518-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. [2604:1380:40f1:3f00::1]) by mx.google.com with ESMTPS id d2e1a72fcca58-70242c2a76bsi10133305b3a.301.2024.06.05.06.12.03 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 05 Jun 2024 06:12:04 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-202518-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:40f1:3f00::1 as permitted sender) client-ip=2604:1380:40f1:3f00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="S/lyY28O"; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-202518-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:40f1:3f00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-202518-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 5168EB2BD92 for ; Wed, 5 Jun 2024 12:45:25 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 9D3E61CBE82; Wed, 5 Jun 2024 12:05:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="S/lyY28O" 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 C1A7A1CB2F9; Wed, 5 Jun 2024 12:05:02 +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=1717589102; cv=none; b=foXq5Ulsb/EclSyc7d59Pugucz6xb3fdeD54k8QTaYf56EF+WqpV4RPWr81MJYSq3HqLt9pC2logMz6E3poOcPP5maQuugVlzoP2v+I1bGZ6AICvh6EyM0qbUvpw1V+BqBRqzBeEXcHRvWqm8toF8JZIz9GAA8/jsS0c0okMAa8= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717589102; c=relaxed/simple; bh=dRcy6OS1IofzbD1NjQE76rjD0zXix+SxVmT62c0IwPE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=WYXys/mUsO40HAQ9Vjj+IoOHROBYqCifNydV9EY3p9+BV9aG5V1RyDdlTiuQrDm1U+6E/x3Jn3cT6388P3RG2ICzc7+JmZ7bZI+0VNROHMvRtByC5EEy4w0h/LZG7A15SrikTq/jbKkrRPm/j1SXgR7CzRmpXPzxjoCsQJs7K9s= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=S/lyY28O; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id E691BC32781; Wed, 5 Jun 2024 12:05:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1717589102; bh=dRcy6OS1IofzbD1NjQE76rjD0zXix+SxVmT62c0IwPE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=S/lyY28OuAbbz0yOB59IoiNlCJUrGBtv600dpp/v/QmHgTk+7sDCrgy3JMsm96ZpZ 93yypthpvcH9POgV43wcjswUg+uDXDSfPJlwDDjHw7py13I3xVkRSOXUiWgrDwncXh 7qqK5zmPTVphk18DeoSMjezRdkDzzCzjL47Or+0NG7ggUOGNJAsVnowzsNaGupHhcH kMTDbE1BNqeOiEs2PKw/w9djHVoFoLzXpu6b5+/6QRCJYNPnj3aNCBOf71W70A/xxS cHyoZfepQiKsVNbf31uvwmryWxtLT/S2S6rHiKknKIBOiwQdCIJz/O06aSueXQIX7I b1ePqKKjIqOhQ== 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.1 05/14] regmap-i2c: Subtract reg size from max_write Date: Wed, 5 Jun 2024 08:04:38 -0400 Message-ID: <20240605120455.2967445-5-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240605120455.2967445-1-sashal@kernel.org> References: <20240605120455.2967445-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.1.92 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