Patch "regmap: Drop initial version of maximum transfer length fixes" has been added to the 6.4-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    regmap: Drop initial version of maximum transfer length fixes

to the 6.4-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     regmap-drop-initial-version-of-maximum-transfer-length-fixes.patch
and it can be found in the queue-6.4 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.


>From bc64734825c59e18a27ac266b07e14944c111fd8 Mon Sep 17 00:00:00 2001
From: Mark Brown <broonie@xxxxxxxxxx>
Date: Wed, 12 Jul 2023 12:16:39 +0100
Subject: regmap: Drop initial version of maximum transfer length fixes

From: Mark Brown <broonie@xxxxxxxxxx>

commit bc64734825c59e18a27ac266b07e14944c111fd8 upstream.

When problems were noticed with the register address not being taken
into account when limiting raw transfers with I2C devices we fixed this
in the core.  Unfortunately it has subsequently been realised that a lot
of buses were relying on the prior behaviour, partly due to unclear
documentation not making it obvious what was intended in the core.  This
is all more involved to fix than is sensible for a fix commit so let's
just drop the original fixes, a separate commit will fix the originally
observed problem in an I2C specific way

Fixes: 3981514180c9 ("regmap: Account for register length when chunking")
Fixes: c8e796895e23 ("regmap: spi-avmm: Fix regmap_bus max_raw_write")
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
Reviewed-by: Xu Yilun <yilun.xu@xxxxxxxxx>
Cc: stable@xxxxxxxxxx
Link: https://lore.kernel.org/r/20230712-regmap-max-transfer-v1-1-80e2aed22e83@xxxxxxxxxx
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
---
 drivers/base/regmap/regmap-spi-avmm.c |    2 +-
 drivers/base/regmap/regmap.c          |    6 ++----
 2 files changed, 3 insertions(+), 5 deletions(-)

--- a/drivers/base/regmap/regmap-spi-avmm.c
+++ b/drivers/base/regmap/regmap-spi-avmm.c
@@ -660,7 +660,7 @@ static const struct regmap_bus regmap_sp
 	.reg_format_endian_default = REGMAP_ENDIAN_NATIVE,
 	.val_format_endian_default = REGMAP_ENDIAN_NATIVE,
 	.max_raw_read = SPI_AVMM_VAL_SIZE * MAX_READ_CNT,
-	.max_raw_write = SPI_AVMM_REG_SIZE + SPI_AVMM_VAL_SIZE * MAX_WRITE_CNT,
+	.max_raw_write = SPI_AVMM_VAL_SIZE * MAX_WRITE_CNT,
 	.free_context = spi_avmm_bridge_ctx_free,
 };
 
--- a/drivers/base/regmap/regmap.c
+++ b/drivers/base/regmap/regmap.c
@@ -2082,8 +2082,6 @@ int _regmap_raw_write(struct regmap *map
 	size_t val_count = val_len / val_bytes;
 	size_t chunk_count, chunk_bytes;
 	size_t chunk_regs = val_count;
-	size_t max_data = map->max_raw_write - map->format.reg_bytes -
-			map->format.pad_bytes;
 	int ret, i;
 
 	if (!val_count)
@@ -2091,8 +2089,8 @@ int _regmap_raw_write(struct regmap *map
 
 	if (map->use_single_write)
 		chunk_regs = 1;
-	else if (map->max_raw_write && val_len > max_data)
-		chunk_regs = max_data / val_bytes;
+	else if (map->max_raw_write && val_len > map->max_raw_write)
+		chunk_regs = map->max_raw_write / val_bytes;
 
 	chunk_count = val_count / chunk_regs;
 	chunk_bytes = chunk_regs * val_bytes;


Patches currently in stable-queue which might be from broonie@xxxxxxxxxx are

queue-6.4/asoc-codecs-wcd938x-fix-missing-mbhc-init-error-handling.patch
queue-6.4/asoc-rt5640-fix-sleep-in-atomic-context.patch
queue-6.4/asoc-codecs-wcd938x-fix-resource-leaks-on-component-remove.patch
queue-6.4/asoc-cs35l45-select-regmap_irq.patch
queue-6.4/asoc-qdsp6-audioreach-fix-topology-probe-deferral.patch
queue-6.4/asoc-tegra-fix-amx-byte-map.patch
queue-6.4/asoc-codecs-wcd938x-fix-missing-clsh-ctrl-error-handling.patch
queue-6.4/asoc-codecs-wcd938x-fix-soundwire-initialisation-race.patch
queue-6.4/asoc-fsl_sai-disable-bit-clock-with-transmitter.patch
queue-6.4/asoc-fsl_sai-revert-asoc-fsl_sai-enable-mctl_mclk_en-bit-for-master-mode.patch
queue-6.4/asoc-tegra-fix-adx-byte-map.patch
queue-6.4/arm64-fpsimd-ensure-sme-storage-is-allocated-after-sve-vl-changes.patch
queue-6.4/regmap-drop-initial-version-of-maximum-transfer-length-fixes.patch
queue-6.4/asoc-codecs-wcd934x-fix-resource-leaks-on-component-remove.patch
queue-6.4/asoc-cs42l51-fix-driver-to-properly-autoload-with-automatic-module-loading.patch
queue-6.4/asoc-codecs-wcd938x-fix-codec-initialisation-race.patch
queue-6.4/asoc-codecs-wcd-mbhc-v2-fix-resource-leaks-on-component-remove.patch
queue-6.4/regmap-account-for-register-length-in-smbus-i-o-limits.patch



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux