All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	patches@lists.linux.dev,
	Jonathan Cameron <Jonathan.Cameron@huawei.com>,
	Marcelo Schmitt <marcelo.schmitt1@gmail.com>,
	Sasha Levin <sashal@kernel.org>
Subject: [PATCH 5.15 090/206] staging:iio:adc:ad7280a: Register define cleanup.
Date: Wed,  4 Feb 2026 15:38:41 +0100	[thread overview]
Message-ID: <20260204143901.451213584@linuxfoundation.org> (raw)
In-Reply-To: <20260204143858.193781818@linuxfoundation.org>

5.15-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Jonathan Cameron <Jonathan.Cameron@huawei.com>

[ Upstream commit 4c59aabd9a93d8f867d9f6aa0407cc6a7db47fa5 ]

1. Postfix register addresses with _REG to distinguish them from
   fields within the registers
2. Switch to using FIELD_PREP and masks to aid readability.
3. Shorten a few defines to make the lines remain a sensible length.
4. Fix an issue whether where an CTRL_LB field is set in CTRL_HB.
5. Fix wrong AUX1_3_4 which should be AUX_1_3_5 according to
   table 14 in the datasheet.

Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: Marcelo Schmitt <marcelo.schmitt1@gmail.com>
Link: https://lore.kernel.org/r/20220206190328.333093-3-jic23@kernel.org
Stable-dep-of: 6b39824ac4c1 ("iio: adc: ad7280a: handle spi_setup() errors in probe()")
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/staging/iio/adc/ad7280a.c | 285 ++++++++++++++++--------------
 1 file changed, 154 insertions(+), 131 deletions(-)

diff --git a/drivers/staging/iio/adc/ad7280a.c b/drivers/staging/iio/adc/ad7280a.c
index 20183b2ea1279..0f64b2fbfa7aa 100644
--- a/drivers/staging/iio/adc/ad7280a.c
+++ b/drivers/staging/iio/adc/ad7280a.c
@@ -11,6 +11,7 @@
 #include <linux/slab.h>
 #include <linux/sysfs.h>
 #include <linux/spi/spi.h>
+#include <linux/bitfield.h>
 #include <linux/err.h>
 #include <linux/delay.h>
 #include <linux/interrupt.h>
@@ -23,78 +24,86 @@
 #include "ad7280a.h"
 
 /* Registers */
-#define AD7280A_CELL_VOLTAGE_1		0x0  /* D11 to D0, Read only */
-#define AD7280A_CELL_VOLTAGE_2		0x1  /* D11 to D0, Read only */
-#define AD7280A_CELL_VOLTAGE_3		0x2  /* D11 to D0, Read only */
-#define AD7280A_CELL_VOLTAGE_4		0x3  /* D11 to D0, Read only */
-#define AD7280A_CELL_VOLTAGE_5		0x4  /* D11 to D0, Read only */
-#define AD7280A_CELL_VOLTAGE_6		0x5  /* D11 to D0, Read only */
-#define AD7280A_AUX_ADC_1		0x6  /* D11 to D0, Read only */
-#define AD7280A_AUX_ADC_2		0x7  /* D11 to D0, Read only */
-#define AD7280A_AUX_ADC_3		0x8  /* D11 to D0, Read only */
-#define AD7280A_AUX_ADC_4		0x9  /* D11 to D0, Read only */
-#define AD7280A_AUX_ADC_5		0xA  /* D11 to D0, Read only */
-#define AD7280A_AUX_ADC_6		0xB  /* D11 to D0, Read only */
-#define AD7280A_SELF_TEST		0xC  /* D11 to D0, Read only */
-#define AD7280A_CONTROL_HB		0xD  /* D15 to D8, Read/write */
-#define AD7280A_CONTROL_LB		0xE  /* D7 to D0, Read/write */
-#define AD7280A_CELL_OVERVOLTAGE	0xF  /* D7 to D0, Read/write */
-#define AD7280A_CELL_UNDERVOLTAGE	0x10 /* D7 to D0, Read/write */
-#define AD7280A_AUX_ADC_OVERVOLTAGE	0x11 /* D7 to D0, Read/write */
-#define AD7280A_AUX_ADC_UNDERVOLTAGE	0x12 /* D7 to D0, Read/write */
-#define AD7280A_ALERT			0x13 /* D7 to D0, Read/write */
-#define AD7280A_CELL_BALANCE		0x14 /* D7 to D0, Read/write */
-#define AD7280A_CB1_TIMER		0x15 /* D7 to D0, Read/write */
-#define AD7280A_CB2_TIMER		0x16 /* D7 to D0, Read/write */
-#define AD7280A_CB3_TIMER		0x17 /* D7 to D0, Read/write */
-#define AD7280A_CB4_TIMER		0x18 /* D7 to D0, Read/write */
-#define AD7280A_CB5_TIMER		0x19 /* D7 to D0, Read/write */
-#define AD7280A_CB6_TIMER		0x1A /* D7 to D0, Read/write */
-#define AD7280A_PD_TIMER		0x1B /* D7 to D0, Read/write */
-#define AD7280A_READ			0x1C /* D7 to D0, Read/write */
-#define AD7280A_CNVST_CONTROL		0x1D /* D7 to D0, Read/write */
-
-/* Bits and Masks */
-#define AD7280A_CTRL_HB_CONV_INPUT_ALL			0
-#define AD7280A_CTRL_HB_CONV_INPUT_6CELL_AUX1_3_4	BIT(6)
-#define AD7280A_CTRL_HB_CONV_INPUT_6CELL		BIT(7)
-#define AD7280A_CTRL_HB_CONV_INPUT_SELF_TEST		(BIT(7) | BIT(6))
-#define AD7280A_CTRL_HB_CONV_RES_READ_ALL		0
-#define AD7280A_CTRL_HB_CONV_RES_READ_6CELL_AUX1_3_4	BIT(4)
-#define AD7280A_CTRL_HB_CONV_RES_READ_6CELL		BIT(5)
-#define AD7280A_CTRL_HB_CONV_RES_READ_NO		(BIT(5) | BIT(4))
-#define AD7280A_CTRL_HB_CONV_START_CNVST		0
-#define AD7280A_CTRL_HB_CONV_START_CS			BIT(3)
-#define AD7280A_CTRL_HB_CONV_AVG_DIS			0
-#define AD7280A_CTRL_HB_CONV_AVG_2			BIT(1)
-#define AD7280A_CTRL_HB_CONV_AVG_4			BIT(2)
-#define AD7280A_CTRL_HB_CONV_AVG_8			(BIT(2) | BIT(1))
-#define AD7280A_CTRL_HB_CONV_AVG(x)			((x) << 1)
-#define AD7280A_CTRL_HB_PWRDN_SW			BIT(0)
-
-#define AD7280A_CTRL_LB_SWRST				BIT(7)
-#define AD7280A_CTRL_LB_ACQ_TIME_400ns			0
-#define AD7280A_CTRL_LB_ACQ_TIME_800ns			BIT(5)
-#define AD7280A_CTRL_LB_ACQ_TIME_1200ns			BIT(6)
-#define AD7280A_CTRL_LB_ACQ_TIME_1600ns			(BIT(6) | BIT(5))
-#define AD7280A_CTRL_LB_ACQ_TIME(x)			((x) << 5)
-#define AD7280A_CTRL_LB_MUST_SET			BIT(4)
-#define AD7280A_CTRL_LB_THERMISTOR_EN			BIT(3)
-#define AD7280A_CTRL_LB_LOCK_DEV_ADDR			BIT(2)
-#define AD7280A_CTRL_LB_INC_DEV_ADDR			BIT(1)
-#define AD7280A_CTRL_LB_DAISY_CHAIN_RB_EN		BIT(0)
-
-#define AD7280A_ALERT_GEN_STATIC_HIGH			BIT(6)
-#define AD7280A_ALERT_RELAY_SIG_CHAIN_DOWN		(BIT(7) | BIT(6))
 
+#define AD7280A_CELL_VOLTAGE_1_REG		0x0  /* D11 to D0, Read only */
+#define AD7280A_CELL_VOLTAGE_2_REG		0x1  /* D11 to D0, Read only */
+#define AD7280A_CELL_VOLTAGE_3_REG		0x2  /* D11 to D0, Read only */
+#define AD7280A_CELL_VOLTAGE_4_REG		0x3  /* D11 to D0, Read only */
+#define AD7280A_CELL_VOLTAGE_5_REG		0x4  /* D11 to D0, Read only */
+#define AD7280A_CELL_VOLTAGE_6_REG		0x5  /* D11 to D0, Read only */
+#define AD7280A_AUX_ADC_1_REG			0x6  /* D11 to D0, Read only */
+#define AD7280A_AUX_ADC_2_REG			0x7  /* D11 to D0, Read only */
+#define AD7280A_AUX_ADC_3_REG			0x8  /* D11 to D0, Read only */
+#define AD7280A_AUX_ADC_4_REG			0x9  /* D11 to D0, Read only */
+#define AD7280A_AUX_ADC_5_REG			0xA  /* D11 to D0, Read only */
+#define AD7280A_AUX_ADC_6_REG			0xB  /* D11 to D0, Read only */
+#define AD7280A_SELF_TEST_REG			0xC  /* D11 to D0, Read only */
+
+#define AD7280A_CTRL_HB_REG			0xD  /* D15 to D8, Read/write */
+#define   AD7280A_CTRL_HB_CONV_INPUT_MSK		GENMASK(7, 6)
+#define     AD7280A_CTRL_HB_CONV_INPUT_ALL			0
+#define     AD7280A_CTRL_HB_CONV_INPUT_6CELL_AUX1_3_5		1
+#define     AD7280A_CTRL_HB_CONV_INPUT_6CELL			2
+#define     AD7280A_CTRL_HB_CONV_INPUT_SELF_TEST		3
+#define   AD7280A_CTRL_HB_CONV_RREAD_MSK		GENMASK(5, 4)
+#define     AD7280A_CTRL_HB_CONV_RREAD_ALL			0
+#define     AD7280A_CTRL_HB_CONV_RREAD_6CELL_AUX1_3_5		1
+#define     AD7280A_CTRL_HB_CONV_RREAD_6CELL			2
+#define     AD7280A_CTRL_HB_CONV_RREAD_NO		        3
+#define   AD7280A_CTRL_HB_CONV_START_MSK		BIT(3)
+#define     AD7280A_CTRL_HB_CONV_START_CNVST			0
+#define     AD7280A_CTRL_HB_CONV_START_CS			1
+#define   AD7280A_CTRL_HB_CONV_AVG_MSK			GENMASK(2, 1)
+#define     AD7280A_CTRL_HB_CONV_AVG_DIS			0
+#define     AD7280A_CTRL_HB_CONV_AVG_2				1
+#define     AD7280A_CTRL_HB_CONV_AVG_4			        2
+#define     AD7280A_CTRL_HB_CONV_AVG_8			        3
+#define   AD7280A_CTRL_HB_PWRDN_SW			BIT(0)
+
+#define AD7280A_CTRL_LB_REG			0xE  /* D7 to D0, Read/write */
+#define   AD7280A_CTRL_LB_SWRST_MSK			BIT(7)
+#define   AD7280A_CTRL_LB_ACQ_TIME_MSK			GENMASK(6, 5)
+#define     AD7280A_CTRL_LB_ACQ_TIME_400ns			0
+#define     AD7280A_CTRL_LB_ACQ_TIME_800ns			1
+#define     AD7280A_CTRL_LB_ACQ_TIME_1200ns			2
+#define     AD7280A_CTRL_LB_ACQ_TIME_1600ns			3
+#define   AD7280A_CTRL_LB_MUST_SET			BIT(4)
+#define   AD7280A_CTRL_LB_THERMISTOR_MSK		BIT(3)
+#define   AD7280A_CTRL_LB_LOCK_DEV_ADDR_MSK		BIT(2)
+#define   AD7280A_CTRL_LB_INC_DEV_ADDR_MSK		BIT(1)
+#define   AD7280A_CTRL_LB_DAISY_CHAIN_RB_MSK		BIT(0)
+
+#define AD7280A_CELL_OVERVOLTAGE_REG		0xF  /* D7 to D0, Read/write */
+#define AD7280A_CELL_UNDERVOLTAGE_REG		0x10 /* D7 to D0, Read/write */
+#define AD7280A_AUX_ADC_OVERVOLTAGE_REG		0x11 /* D7 to D0, Read/write */
+#define AD7280A_AUX_ADC_UNDERVOLTAGE_REG	0x12 /* D7 to D0, Read/write */
+
+#define AD7280A_ALERT_REG			0x13 /* D7 to D0, Read/write */
+#define   AD7280A_ALERT_GEN_STATIC_HIGH			BIT(6)
+#define   AD7280A_ALERT_RELAY_SIG_CHAIN_DOWN		(BIT(7) | BIT(6))
+
+#define AD7280A_CELL_BALANCE_REG		0x14 /* D7 to D0, Read/write */
+#define AD7280A_CB1_TIMER_REG			0x15 /* D7 to D0, Read/write */
+#define  AD7280A_CB_TIMER_VAL_MSK			GENMASK(7, 3)
+#define AD7280A_CB2_TIMER_REG			0x16 /* D7 to D0, Read/write */
+#define AD7280A_CB3_TIMER_REG			0x17 /* D7 to D0, Read/write */
+#define AD7280A_CB4_TIMER_REG			0x18 /* D7 to D0, Read/write */
+#define AD7280A_CB5_TIMER_REG			0x19 /* D7 to D0, Read/write */
+#define AD7280A_CB6_TIMER_REG			0x1A /* D7 to D0, Read/write */
+#define AD7280A_PD_TIMER_REG			0x1B /* D7 to D0, Read/write */
+#define AD7280A_READ_REG			0x1C /* D7 to D0, Read/write */
+#define   AD7280A_READ_ADDR_MSK				GENMASK(7, 2)
+#define AD7280A_CNVST_CTRL_REG			0x1D /* D7 to D0, Read/write */
+
+/* Magic value used to indicate this special case */
 #define AD7280A_ALL_CELLS				(0xAD << 16)
 
 #define AD7280A_MAX_SPI_CLK_HZ		700000 /* < 1MHz */
 #define AD7280A_MAX_CHAIN		8
 #define AD7280A_CELLS_PER_DEV		6
 #define AD7280A_BITS			12
-#define AD7280A_NUM_CH			(AD7280A_AUX_ADC_6 - \
-					AD7280A_CELL_VOLTAGE_1 + 1)
+#define AD7280A_NUM_CH			(AD7280A_AUX_ADC_6_REG - \
+					AD7280A_CELL_VOLTAGE_1_REG + 1)
 
 #define AD7280A_CALC_VOLTAGE_CHAN_NUM(d, c) (((d) * AD7280A_CELLS_PER_DEV) + \
 					     (c))
@@ -222,23 +231,28 @@ static int ad7280_read(struct ad7280_state *st, unsigned int devaddr,
 	unsigned int tmp;
 
 	/* turns off the read operation on all parts */
-	ret = ad7280_write(st, AD7280A_DEVADDR_MASTER, AD7280A_CONTROL_HB, 1,
-			   AD7280A_CTRL_HB_CONV_INPUT_ALL |
-			   AD7280A_CTRL_HB_CONV_RES_READ_NO |
+	ret = ad7280_write(st, AD7280A_DEVADDR_MASTER, AD7280A_CTRL_HB_REG, 1,
+			   FIELD_PREP(AD7280A_CTRL_HB_CONV_INPUT_MSK,
+				      AD7280A_CTRL_HB_CONV_INPUT_ALL) |
+			   FIELD_PREP(AD7280A_CTRL_HB_CONV_RREAD_MSK,
+				      AD7280A_CTRL_HB_CONV_RREAD_NO) |
 			   st->ctrl_hb);
 	if (ret)
 		return ret;
 
 	/* turns on the read operation on the addressed part */
-	ret = ad7280_write(st, devaddr, AD7280A_CONTROL_HB, 0,
-			   AD7280A_CTRL_HB_CONV_INPUT_ALL |
-			   AD7280A_CTRL_HB_CONV_RES_READ_ALL |
+	ret = ad7280_write(st, devaddr, AD7280A_CTRL_HB_REG, 0,
+			   FIELD_PREP(AD7280A_CTRL_HB_CONV_INPUT_MSK,
+				      AD7280A_CTRL_HB_CONV_INPUT_ALL) |
+			   FIELD_PREP(AD7280A_CTRL_HB_CONV_RREAD_MSK,
+				      AD7280A_CTRL_HB_CONV_RREAD_ALL) |
 			   st->ctrl_hb);
 	if (ret)
 		return ret;
 
 	/* Set register address on the part to be read from */
-	ret = ad7280_write(st, devaddr, AD7280A_READ, 0, addr << 2);
+	ret = ad7280_write(st, devaddr, AD7280A_READ_REG, 0,
+			   FIELD_PREP(AD7280A_READ_ADDR_MSK, addr));
 	if (ret)
 		return ret;
 
@@ -261,21 +275,27 @@ static int ad7280_read_channel(struct ad7280_state *st, unsigned int devaddr,
 	int ret;
 	unsigned int tmp;
 
-	ret = ad7280_write(st, devaddr, AD7280A_READ, 0, addr << 2);
+	ret = ad7280_write(st, devaddr, AD7280A_READ_REG, 0,
+			   FIELD_PREP(AD7280A_READ_ADDR_MSK, addr));
 	if (ret)
 		return ret;
 
-	ret = ad7280_write(st, AD7280A_DEVADDR_MASTER, AD7280A_CONTROL_HB, 1,
-			   AD7280A_CTRL_HB_CONV_INPUT_ALL |
-			   AD7280A_CTRL_HB_CONV_RES_READ_NO |
+	ret = ad7280_write(st, AD7280A_DEVADDR_MASTER, AD7280A_CTRL_HB_REG, 1,
+			   FIELD_PREP(AD7280A_CTRL_HB_CONV_INPUT_MSK,
+				      AD7280A_CTRL_HB_CONV_INPUT_ALL) |
+			   FIELD_PREP(AD7280A_CTRL_HB_CONV_RREAD_MSK,
+				      AD7280A_CTRL_HB_CONV_RREAD_NO) |
 			   st->ctrl_hb);
 	if (ret)
 		return ret;
 
-	ret = ad7280_write(st, devaddr, AD7280A_CONTROL_HB, 0,
-			   AD7280A_CTRL_HB_CONV_INPUT_ALL |
-			   AD7280A_CTRL_HB_CONV_RES_READ_ALL |
-			   AD7280A_CTRL_HB_CONV_START_CS |
+	ret = ad7280_write(st, devaddr, AD7280A_CTRL_HB_REG, 0,
+			   FIELD_PREP(AD7280A_CTRL_HB_CONV_INPUT_MSK,
+				      AD7280A_CTRL_HB_CONV_INPUT_ALL) |
+			   FIELD_PREP(AD7280A_CTRL_HB_CONV_RREAD_MSK,
+				      AD7280A_CTRL_HB_CONV_RREAD_ALL) |
+			   FIELD_PREP(AD7280A_CTRL_HB_CONV_START_MSK,
+				      AD7280A_CTRL_HB_CONV_START_CS) |
 			   st->ctrl_hb);
 	if (ret)
 		return ret;
@@ -301,15 +321,18 @@ static int ad7280_read_all_channels(struct ad7280_state *st, unsigned int cnt,
 	int i, ret;
 	unsigned int tmp, sum = 0;
 
-	ret = ad7280_write(st, AD7280A_DEVADDR_MASTER, AD7280A_READ, 1,
-			   AD7280A_CELL_VOLTAGE_1 << 2);
+	ret = ad7280_write(st, AD7280A_DEVADDR_MASTER, AD7280A_READ_REG, 1,
+			   AD7280A_CELL_VOLTAGE_1_REG << 2);
 	if (ret)
 		return ret;
 
-	ret = ad7280_write(st, AD7280A_DEVADDR_MASTER, AD7280A_CONTROL_HB, 1,
-			   AD7280A_CTRL_HB_CONV_INPUT_ALL |
-			   AD7280A_CTRL_HB_CONV_RES_READ_ALL |
-			   AD7280A_CTRL_HB_CONV_START_CS |
+	ret = ad7280_write(st, AD7280A_DEVADDR_MASTER, AD7280A_CTRL_HB_REG, 1,
+			   FIELD_PREP(AD7280A_CTRL_HB_CONV_INPUT_MSK,
+				      AD7280A_CTRL_HB_CONV_INPUT_ALL) |
+			   FIELD_PREP(AD7280A_CTRL_HB_CONV_RREAD_MSK,
+				      AD7280A_CTRL_HB_CONV_RREAD_ALL) |
+			   FIELD_PREP(AD7280A_CTRL_HB_CONV_START_MSK,
+				      AD7280A_CTRL_HB_CONV_START_CS) |
 			   st->ctrl_hb);
 	if (ret)
 		return ret;
@@ -327,7 +350,7 @@ static int ad7280_read_all_channels(struct ad7280_state *st, unsigned int cnt,
 		if (array)
 			array[i] = tmp;
 		/* only sum cell voltages */
-		if (((tmp >> 23) & 0xF) <= AD7280A_CELL_VOLTAGE_6)
+		if (((tmp >> 23) & 0xF) <= AD7280A_CELL_VOLTAGE_6_REG)
 			sum += ((tmp >> 11) & 0xFFF);
 	}
 
@@ -338,7 +361,7 @@ static void ad7280_sw_power_down(void *data)
 {
 	struct ad7280_state *st = data;
 
-	ad7280_write(st, AD7280A_DEVADDR_MASTER, AD7280A_CONTROL_HB, 1,
+	ad7280_write(st, AD7280A_DEVADDR_MASTER, AD7280A_CTRL_HB_REG, 1,
 		     AD7280A_CTRL_HB_PWRDN_SW | st->ctrl_hb);
 }
 
@@ -347,25 +370,26 @@ static int ad7280_chain_setup(struct ad7280_state *st)
 	unsigned int val, n;
 	int ret;
 
-	ret = ad7280_write(st, AD7280A_DEVADDR_MASTER, AD7280A_CONTROL_LB, 1,
-			   AD7280A_CTRL_LB_DAISY_CHAIN_RB_EN |
-			   AD7280A_CTRL_LB_LOCK_DEV_ADDR |
+	ret = ad7280_write(st, AD7280A_DEVADDR_MASTER, AD7280A_CTRL_LB_REG, 1,
+			   FIELD_PREP(AD7280A_CTRL_LB_DAISY_CHAIN_RB_MSK, 1) |
+			   FIELD_PREP(AD7280A_CTRL_LB_LOCK_DEV_ADDR_MSK, 1) |
 			   AD7280A_CTRL_LB_MUST_SET |
-			   AD7280A_CTRL_LB_SWRST |
+			   FIELD_PREP(AD7280A_CTRL_LB_SWRST_MSK, 1) |
 			   st->ctrl_lb);
 	if (ret)
 		return ret;
 
-	ret = ad7280_write(st, AD7280A_DEVADDR_MASTER, AD7280A_CONTROL_LB, 1,
-			   AD7280A_CTRL_LB_DAISY_CHAIN_RB_EN |
-			   AD7280A_CTRL_LB_LOCK_DEV_ADDR |
+	ret = ad7280_write(st, AD7280A_DEVADDR_MASTER, AD7280A_CTRL_LB_REG, 1,
+			   FIELD_PREP(AD7280A_CTRL_LB_DAISY_CHAIN_RB_MSK, 1) |
+			   FIELD_PREP(AD7280A_CTRL_LB_LOCK_DEV_ADDR_MSK, 1) |
 			   AD7280A_CTRL_LB_MUST_SET |
+			   FIELD_PREP(AD7280A_CTRL_LB_SWRST_MSK, 0) |
 			   st->ctrl_lb);
 	if (ret)
 		goto error_power_down;
 
-	ret = ad7280_write(st, AD7280A_DEVADDR_MASTER, AD7280A_READ, 1,
-			   AD7280A_CONTROL_LB << 2);
+	ret = ad7280_write(st, AD7280A_DEVADDR_MASTER, AD7280A_READ_REG, 1,
+			   FIELD_PREP(AD7280A_READ_ADDR_MSK, AD7280A_CTRL_LB_REG));
 	if (ret)
 		goto error_power_down;
 
@@ -390,7 +414,7 @@ static int ad7280_chain_setup(struct ad7280_state *st)
 	ret = -EFAULT;
 
 error_power_down:
-	ad7280_write(st, AD7280A_DEVADDR_MASTER, AD7280A_CONTROL_HB, 1,
+	ad7280_write(st, AD7280A_DEVADDR_MASTER, AD7280A_CTRL_HB_REG, 1,
 		     AD7280A_CTRL_HB_PWRDN_SW | st->ctrl_hb);
 
 	return ret;
@@ -434,7 +458,7 @@ static ssize_t ad7280_store_balance_sw(struct device *dev,
 	else
 		st->cb_mask[devaddr] &= ~(1 << (ch + 2));
 
-	ret = ad7280_write(st, devaddr, AD7280A_CELL_BALANCE,
+	ret = ad7280_write(st, devaddr, AD7280A_CELL_BALANCE_REG,
 			   0, st->cb_mask[devaddr]);
 	mutex_unlock(&st->lock);
 
@@ -459,7 +483,7 @@ static ssize_t ad7280_show_balance_timer(struct device *dev,
 	if (ret < 0)
 		return ret;
 
-	msecs = (ret >> 3) * 71500;
+	msecs = FIELD_GET(AD7280A_CB_TIMER_VAL_MSK, ret) * 71500;
 
 	return sprintf(buf, "%u\n", msecs);
 }
@@ -486,8 +510,8 @@ static ssize_t ad7280_store_balance_timer(struct device *dev,
 
 	mutex_lock(&st->lock);
 	ret = ad7280_write(st, this_attr->address >> 8,
-			   this_attr->address & 0xFF,
-			   0, (val & 0x1F) << 3);
+			   this_attr->address & 0xFF, 0,
+			   FIELD_PREP(AD7280A_CB_TIMER_VAL_MSK, val));
 	mutex_unlock(&st->lock);
 
 	return ret ? ret : len;
@@ -559,10 +583,10 @@ static void ad7280_init_dev_channels(struct ad7280_state *st, int dev, int *cnt)
 	int addr, ch, i;
 	struct iio_chan_spec *chan;
 
-	for (ch = AD7280A_CELL_VOLTAGE_1; ch <= AD7280A_AUX_ADC_6; ch++) {
+	for (ch = AD7280A_CELL_VOLTAGE_1_REG; ch <= AD7280A_AUX_ADC_6_REG; ch++) {
 		chan = &st->channels[*cnt];
 
-		if (ch < AD7280A_AUX_ADC_1) {
+		if (ch < AD7280A_AUX_ADC_1_REG) {
 			i = AD7280A_CALC_VOLTAGE_CHAN_NUM(dev, ch);
 			ad7280_voltage_channel_init(chan, i);
 		} else {
@@ -634,7 +658,7 @@ static int ad7280_init_dev_attrs(struct ad7280_state *st, int dev, int *cnt)
 	struct iio_dev_attr *iio_attr;
 	struct device *sdev = &st->spi->dev;
 
-	for (ch = AD7280A_CELL_VOLTAGE_1; ch <= AD7280A_CELL_VOLTAGE_6; ch++) {
+	for (ch = AD7280A_CELL_VOLTAGE_1_REG; ch <= AD7280A_CELL_VOLTAGE_6_REG; ch++) {
 		iio_attr = &st->iio_attr[*cnt];
 		addr = ad7280a_devaddr(dev) << 8 | ch;
 		i = dev * AD7280A_CELLS_PER_DEV + ch;
@@ -647,7 +671,7 @@ static int ad7280_init_dev_attrs(struct ad7280_state *st, int dev, int *cnt)
 
 		(*cnt)++;
 		iio_attr = &st->iio_attr[*cnt];
-		addr = ad7280a_devaddr(dev) << 8 | (AD7280A_CB1_TIMER + ch);
+		addr = ad7280a_devaddr(dev) << 8 | (AD7280A_CB1_TIMER_REG + ch);
 
 		ret = ad7280_balance_timer_attr_init(iio_attr, sdev, addr, i);
 		if (ret < 0)
@@ -691,16 +715,16 @@ static ssize_t ad7280_read_channel_config(struct device *dev,
 	unsigned int val;
 
 	switch (this_attr->address) {
-	case AD7280A_CELL_OVERVOLTAGE:
+	case AD7280A_CELL_OVERVOLTAGE_REG:
 		val = 1000 + (st->cell_threshhigh * 1568) / 100;
 		break;
-	case AD7280A_CELL_UNDERVOLTAGE:
+	case AD7280A_CELL_UNDERVOLTAGE_REG:
 		val = 1000 + (st->cell_threshlow * 1568) / 100;
 		break;
-	case AD7280A_AUX_ADC_OVERVOLTAGE:
+	case AD7280A_AUX_ADC_OVERVOLTAGE_REG:
 		val = (st->aux_threshhigh * 196) / 10;
 		break;
-	case AD7280A_AUX_ADC_UNDERVOLTAGE:
+	case AD7280A_AUX_ADC_UNDERVOLTAGE_REG:
 		val = (st->aux_threshlow * 196) / 10;
 		break;
 	default:
@@ -727,12 +751,12 @@ static ssize_t ad7280_write_channel_config(struct device *dev,
 		return ret;
 
 	switch (this_attr->address) {
-	case AD7280A_CELL_OVERVOLTAGE:
-	case AD7280A_CELL_UNDERVOLTAGE:
+	case AD7280A_CELL_OVERVOLTAGE_REG:
+	case AD7280A_CELL_UNDERVOLTAGE_REG:
 		val = ((val - 1000) * 100) / 1568; /* LSB 15.68mV */
 		break;
-	case AD7280A_AUX_ADC_OVERVOLTAGE:
-	case AD7280A_AUX_ADC_UNDERVOLTAGE:
+	case AD7280A_AUX_ADC_OVERVOLTAGE_REG:
+	case AD7280A_AUX_ADC_UNDERVOLTAGE_REG:
 		val = (val * 10) / 196; /* LSB 19.6mV */
 		break;
 	default:
@@ -743,16 +767,16 @@ static ssize_t ad7280_write_channel_config(struct device *dev,
 
 	mutex_lock(&st->lock);
 	switch (this_attr->address) {
-	case AD7280A_CELL_OVERVOLTAGE:
+	case AD7280A_CELL_OVERVOLTAGE_REG:
 		st->cell_threshhigh = val;
 		break;
-	case AD7280A_CELL_UNDERVOLTAGE:
+	case AD7280A_CELL_UNDERVOLTAGE_REG:
 		st->cell_threshlow = val;
 		break;
-	case AD7280A_AUX_ADC_OVERVOLTAGE:
+	case AD7280A_AUX_ADC_OVERVOLTAGE_REG:
 		st->aux_threshhigh = val;
 		break;
-	case AD7280A_AUX_ADC_UNDERVOLTAGE:
+	case AD7280A_AUX_ADC_UNDERVOLTAGE_REG:
 		st->aux_threshlow = val;
 		break;
 	}
@@ -781,7 +805,7 @@ static irqreturn_t ad7280_event_handler(int irq, void *private)
 		goto out;
 
 	for (i = 0; i < st->scan_cnt; i++) {
-		if (((channels[i] >> 23) & 0xF) <= AD7280A_CELL_VOLTAGE_6) {
+		if (((channels[i] >> 23) & 0xF) <= AD7280A_CELL_VOLTAGE_6_REG) {
 			if (((channels[i] >> 11) & 0xFFF) >=
 			    st->cell_threshhigh) {
 				u64 tmp = IIO_EVENT_CODE(IIO_VOLTAGE, 1, 0,
@@ -801,7 +825,7 @@ static irqreturn_t ad7280_event_handler(int irq, void *private)
 			}
 		} else {
 			if (((channels[i] >> 11) & 0xFFF) >=
-			    st->aux_threshhigh) {
+				st->aux_threshhigh) {
 				u64 tmp = IIO_UNMOD_EVENT_CODE(IIO_TEMP, 0,
 							IIO_EV_TYPE_THRESH,
 							IIO_EV_DIR_RISING);
@@ -833,26 +857,26 @@ static IIO_DEVICE_ATTR_NAMED(in_thresh_low_value,
 			     0644,
 			     ad7280_read_channel_config,
 			     ad7280_write_channel_config,
-			     AD7280A_CELL_UNDERVOLTAGE);
+			     AD7280A_CELL_UNDERVOLTAGE_REG);
 
 static IIO_DEVICE_ATTR_NAMED(in_thresh_high_value,
 			     in_voltage-voltage_thresh_high_value,
 			     0644,
 			     ad7280_read_channel_config,
 			     ad7280_write_channel_config,
-			     AD7280A_CELL_OVERVOLTAGE);
+			     AD7280A_CELL_OVERVOLTAGE_REG);
 
 static IIO_DEVICE_ATTR(in_temp_thresh_low_value,
 		       0644,
 		       ad7280_read_channel_config,
 		       ad7280_write_channel_config,
-		       AD7280A_AUX_ADC_UNDERVOLTAGE);
+		       AD7280A_AUX_ADC_UNDERVOLTAGE_REG);
 
 static IIO_DEVICE_ATTR(in_temp_thresh_high_value,
 		       0644,
 		       ad7280_read_channel_config,
 		       ad7280_write_channel_config,
-		       AD7280A_AUX_ADC_OVERVOLTAGE);
+		       AD7280A_AUX_ADC_OVERVOLTAGE_REG);
 
 static struct attribute *ad7280_event_attributes[] = {
 	&iio_dev_attr_in_thresh_low_value.dev_attr.attr,
@@ -892,7 +916,7 @@ static int ad7280_read_raw(struct iio_dev *indio_dev,
 
 		return IIO_VAL_INT;
 	case IIO_CHAN_INFO_SCALE:
-		if ((chan->address & 0xFF) <= AD7280A_CELL_VOLTAGE_6)
+		if ((chan->address & 0xFF) <= AD7280A_CELL_VOLTAGE_6_REG)
 			*val = 4000;
 		else
 			*val = 5000;
@@ -942,10 +966,9 @@ static int ad7280_probe(struct spi_device *spi)
 	st->spi->mode = SPI_MODE_1;
 	spi_setup(st->spi);
 
-	st->ctrl_lb = AD7280A_CTRL_LB_ACQ_TIME(pdata->acquisition_time & 0x3);
-	st->ctrl_hb = AD7280A_CTRL_HB_CONV_AVG(pdata->conversion_averaging
-			& 0x3) | (pdata->thermistor_term_en ?
-			AD7280A_CTRL_LB_THERMISTOR_EN : 0);
+	st->ctrl_lb = FIELD_PREP(AD7280A_CTRL_LB_ACQ_TIME_MSK, pdata->acquisition_time) |
+		FIELD_PREP(AD7280A_CTRL_LB_THERMISTOR_MSK, pdata->thermistor_term_en);
+	st->ctrl_hb = FIELD_PREP(AD7280A_CTRL_HB_CONV_AVG_MSK, pdata->conversion_averaging);
 
 	ret = ad7280_chain_setup(st);
 	if (ret < 0)
@@ -998,13 +1021,13 @@ static int ad7280_probe(struct spi_device *spi)
 
 	if (spi->irq > 0) {
 		ret = ad7280_write(st, AD7280A_DEVADDR_MASTER,
-				   AD7280A_ALERT, 1,
+				   AD7280A_ALERT_REG, 1,
 				   AD7280A_ALERT_RELAY_SIG_CHAIN_DOWN);
 		if (ret)
 			return ret;
 
 		ret = ad7280_write(st, ad7280a_devaddr(st->slave_num),
-				   AD7280A_ALERT, 0,
+				   AD7280A_ALERT_REG, 0,
 				   AD7280A_ALERT_GEN_STATIC_HIGH |
 				   (pdata->chain_last_alert_ignore & 0xF));
 		if (ret)
-- 
2.51.0




  parent reply	other threads:[~2026-02-04 14:56 UTC|newest]

Thread overview: 215+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-02-04 14:37 [PATCH 5.15 000/206] 5.15.199-rc1 review Greg Kroah-Hartman
2026-02-04 14:37 ` [PATCH 5.15 001/206] pnfs/flexfiles: Fix memory leak in nfs4_ff_alloc_deviceid_node() Greg Kroah-Hartman
2026-02-04 14:37 ` [PATCH 5.15 002/206] can: etas_es58x: allow partial RX URB allocation to succeed Greg Kroah-Hartman
2026-02-04 14:37 ` [PATCH 5.15 003/206] nvmet-tcp: remove boilerplate code Greg Kroah-Hartman
2026-02-04 14:37 ` [PATCH 5.15 004/206] nvme-tcp: fix NULL pointer dereferences in nvmet_tcp_build_pdu_iovec Greg Kroah-Hartman
2026-02-04 14:37 ` [PATCH 5.15 005/206] btrfs: send: check for inline extents in range_is_hole_in_parent() Greg Kroah-Hartman
2026-02-04 14:37 ` [PATCH 5.15 006/206] ip6_tunnel: use skb_vlan_inet_prepare() in __ip6_tnl_rcv() Greg Kroah-Hartman
2026-02-04 14:37 ` [PATCH 5.15 007/206] net: update netdev_lock_{type,name} Greg Kroah-Hartman
2026-02-04 14:37 ` [PATCH 5.15 008/206] macvlan: fix possible UAF in macvlan_forward_source() Greg Kroah-Hartman
2026-02-04 14:37 ` [PATCH 5.15 009/206] ipv4: ip_gre: make ipgre_header() robust Greg Kroah-Hartman
2026-02-04 14:37 ` [PATCH 5.15 010/206] vsock/test: add a final full barrier after run all tests Greg Kroah-Hartman
2026-02-04 14:37 ` [PATCH 5.15 011/206] net/mlx5e: Restore destroying state bit after profile cleanup Greg Kroah-Hartman
2026-02-04 14:37 ` [PATCH 5.15 012/206] selftests: drv-net: fix RPS mask handling for high CPU numbers Greg Kroah-Hartman
2026-02-04 14:37 ` [PATCH 5.15 013/206] net/sched: sch_qfq: do not free existing class in qfq_change_class() Greg Kroah-Hartman
2026-02-04 14:37 ` [PATCH 5.15 014/206] ASoC: tlv320adcx140: fix word length Greg Kroah-Hartman
2026-02-04 14:37 ` [PATCH 5.15 015/206] textsearch: describe @list member in ts_ops search Greg Kroah-Hartman
2026-02-04 14:37 ` [PATCH 5.15 016/206] mm, kfence: describe @slab parameter in __kfence_obj_info() Greg Kroah-Hartman
2026-02-04 14:37 ` [PATCH 5.15 017/206] dmaengine: tegra-adma: Fix use-after-free Greg Kroah-Hartman
2026-02-04 14:37 ` [PATCH 5.15 018/206] dmaengine: xilinx_dma: Fix uninitialized addr_width when "xlnx,addrwidth" property is missing Greg Kroah-Hartman
2026-02-04 14:37 ` [PATCH 5.15 019/206] phy: stm32-usphyc: Fix off by one in probe() Greg Kroah-Hartman
2026-02-04 14:37 ` [PATCH 5.15 020/206] phy: broadcom: ns-usb3: Fix Wvoid-pointer-to-enum-cast warning (again) Greg Kroah-Hartman
2026-02-04 14:37 ` [PATCH 5.15 021/206] dmaengine: omap-dma: fix dma_pool resource leak in error paths Greg Kroah-Hartman
2026-02-04 14:37 ` [PATCH 5.15 022/206] HID: usbhid: paper over wrong bNumDescriptor field Greg Kroah-Hartman
2026-02-04 14:37 ` [PATCH 5.15 023/206] ALSA: pcm: Improve the fix for race of buffer access at PCM OSS layer Greg Kroah-Hartman
2026-02-04 14:37 ` [PATCH 5.15 024/206] net: can: j1939: j1939_xtp_rx_rts_session_active(): deactivate session upon receiving the second rts Greg Kroah-Hartman
2026-02-04 14:37 ` [PATCH 5.15 025/206] x86/kaslr: Recognize all ZONE_DEVICE users as physaddr consumers Greg Kroah-Hartman
2026-02-04 14:37 ` [PATCH 5.15 026/206] phy: rockchip: inno-usb2: fix communication disruption in gadget mode Greg Kroah-Hartman
2026-02-04 14:37 ` [PATCH 5.15 027/206] phy: rockchip: inno-usb2: fix disconnection " Greg Kroah-Hartman
2026-02-04 14:37 ` [PATCH 5.15 028/206] phy: tegra: xusb: Explicitly configure HS_DISCON_LEVEL to 0x7 Greg Kroah-Hartman
2026-02-04 14:37 ` [PATCH 5.15 029/206] usb: dwc3: Check for USB4 IP_NAME Greg Kroah-Hartman
2026-02-04 14:37 ` [PATCH 5.15 030/206] USB: OHCI/UHCI: Add soft dependencies on ehci_platform Greg Kroah-Hartman
2026-02-04 14:37 ` [PATCH 5.15 031/206] USB: serial: option: add Telit LE910 MBIM composition Greg Kroah-Hartman
2026-02-04 14:37 ` [PATCH 5.15 032/206] USB: serial: ftdi_sio: add support for PICAXE AXE027 cable Greg Kroah-Hartman
2026-02-04 14:37 ` [PATCH 5.15 033/206] nvme-pci: disable secondary temp for Wodposit WPBSNM8 Greg Kroah-Hartman
2026-02-04 14:37 ` [PATCH 5.15 034/206] ext4: fix iloc.bh leak in ext4_xattr_inode_update_ref Greg Kroah-Hartman
2026-02-04 14:37 ` [PATCH 5.15 035/206] hrtimer: Fix softirq base check in update_needs_ipi() Greg Kroah-Hartman
2026-02-04 14:37 ` [PATCH 5.15 036/206] EDAC/x38: Fix a resource leak in x38_probe1() Greg Kroah-Hartman
2026-02-04 14:37 ` [PATCH 5.15 037/206] EDAC/i3200: Fix a resource leak in i3200_probe1() Greg Kroah-Hartman
2026-02-04 14:37 ` [PATCH 5.15 038/206] x86/resctrl: Add missing resctrl initialization for Hygon Greg Kroah-Hartman
2026-02-04 14:37 ` [PATCH 5.15 039/206] x86/resctrl: Fix memory bandwidth counter width " Greg Kroah-Hartman
2026-02-04 14:37 ` [PATCH 5.15 040/206] mm/page_alloc: make percpu_pagelist_high_fraction reads lock-free Greg Kroah-Hartman
2026-02-04 14:37 ` [PATCH 5.15 041/206] drm/amd: Clean up kfd node on surprise disconnect Greg Kroah-Hartman
2026-02-04 14:37 ` [PATCH 5.15 042/206] drm/nouveau/disp/nv50-: Set lock_core in curs507a_prepare Greg Kroah-Hartman
2026-02-04 14:37 ` [PATCH 5.15 043/206] drm/panel-simple: fix connector type for DataImage SCF0700C48GGU18 panel Greg Kroah-Hartman
2026-02-04 14:37 ` [PATCH 5.15 044/206] drm/vmwgfx: Fix an error return check in vmw_compat_shader_add() Greg Kroah-Hartman
2026-02-04 14:37 ` [PATCH 5.15 045/206] dmaengine: at_hdmac: fix device leak on of_dma_xlate() Greg Kroah-Hartman
2026-02-04 14:37 ` [PATCH 5.15 046/206] dmaengine: bcm-sba-raid: fix device leak on probe Greg Kroah-Hartman
2026-02-04 14:37 ` [PATCH 5.15 047/206] dmaengine: idxd: fix device leaks on compat bind and unbind Greg Kroah-Hartman
2026-02-04 14:37 ` [PATCH 5.15 048/206] dmaengine: lpc18xx-dmamux: fix device leak on route allocation Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 049/206] dmaengine: qcom: gpi: Fix memory leak in gpi_peripheral_config() Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 050/206] dmaengine: sh: rz-dmac: Fix rz_dmac_terminate_all() Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 051/206] dmaengine: ti: dma-crossbar: fix device leak on dra7x route allocation Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 052/206] dmaengine: ti: dma-crossbar: fix device leak on am335x " Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 053/206] dmaengine: ti: k3-udma: fix device leak on udma lookup Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 054/206] btrfs: fix deadlock in wait_current_trans() due to ignored transaction type Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 055/206] posix-clock: introduce posix_clock_context concept Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 056/206] Fix memory leak in posix_clock_open() Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 057/206] posix-clock: Store file pointer in struct posix_clock_context Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 058/206] ptp: Add PHC file mode checks. Allow RO adjtime() without FMODE_WRITE Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 059/206] testptp: add option to shift clock by nanoseconds Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 060/206] testptp: Add support for testing ptp_clock_info .adjphase callback Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 061/206] selftests/ptp: Add -x option for testing PTP_SYS_OFFSET_EXTENDED Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 062/206] selftests/ptp: Add -X option for testing PTP_SYS_OFFSET_PRECISE Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 063/206] ptp: add testptp mask test Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 064/206] selftest/ptp: update ptp selftest to exercise the gettimex options Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 065/206] testptp: Add option to open PHC in readonly mode Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 066/206] net: usb: dm9601: remove broken SR9700 support Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 067/206] bonding: limit BOND_MODE_8023AD to Ethernet devices Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 068/206] selftests/net: convert fib-onlink-tests.sh to run it in unique namespace Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 069/206] selftests: net: fib-onlink-tests: Convert to use namespaces by default Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 070/206] sctp: move SCTP_CMD_ASSOC_SHKEY right after SCTP_CMD_PEER_INIT Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 071/206] amd-xgbe: avoid misleading per-packet error log Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 072/206] gue: Fix skb memleak with inner IP protocol 0 Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 073/206] netlink: add a proto specification for FOU Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 074/206] net: fou: rename the source for linking Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 075/206] net: fou: use policy and operation tables generated from the spec Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 076/206] fou: Dont allow 0 for FOU_ATTR_IPPROTO Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 077/206] l2tp: avoid one data-race in l2tp_tunnel_del_work() Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 078/206] ipvlan: Make the addrs_lock be per port Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 079/206] net/sched: Enforce that teql can only be used as root qdisc Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 080/206] net/sched: qfq: Use cl_is_active to determine whether class is active in qfq_rm_from_ag Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 081/206] crypto: authencesn - reject too-short AAD (assoclen<8) to match ESP/ESN spec Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 082/206] comedi: dmm32at: serialize use of paged registers Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 083/206] w1: fix redundant counter decrement in w1_attach_slave_device() Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 084/206] Revert "nfc/nci: Add the inconsistency check between the input data length and count" Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 085/206] Input: i8042 - add quirks for MECHREVO Wujie 15X Pro Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 086/206] Input: i8042 - add quirk for ASUS Zenbook UX425QA_UM425QA Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 087/206] scsi: storvsc: Process unsupported MODE_SENSE_10 Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 088/206] x86/kfence: avoid writing L1TF-vulnerable PTEs Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 089/206] iio: imu: st_lsm6dsx: fix iio_chan_spec for sensors without event detection Greg Kroah-Hartman
2026-02-04 14:38 ` Greg Kroah-Hartman [this message]
2026-02-04 14:38 ` [PATCH 5.15 091/206] iio: adc: ad7280a: handle spi_setup() errors in probe() Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 092/206] regmap: Fix race condition in hwspinlock irqsave routine Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 093/206] ALSA: usb: Increase volume range that triggers a warning Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 094/206] net: hns3: fix wrong GENMASK() for HCLGE_FD_AD_COUNTER_NUM_M Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 095/206] net: hns3: fix the HCLGE_FD_AD_NXT_KEY error setting issue Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 096/206] mISDN: annotate data-race around dev->work Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 097/206] ipv6: annotate data-race in ndisc_router_discovery() Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 098/206] usbnet: limit max_mtu based on devices hard_mtu Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 099/206] drm/amd/pm: Dont clear SI SMC table when setting power limit Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 100/206] drm/amd/pm: Workaround SI powertune issue on Radeon 430 (v2) Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 101/206] be2net: Fix NULL pointer dereference in be_cmd_get_mac_from_list Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 102/206] bonding: provide a net pointer to __skb_flow_dissect() Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 103/206] octeontx2-af: Fix error handling Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 104/206] net/sched: act_ife: avoid possible NULL deref Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 105/206] x86: make page fault handling disable interrupts properly Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 106/206] leds: led-class: Only Add LED to leds_list when it is fully ready Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 107/206] of: fix reference count leak in of_alias_scan() Greg Kroah-Hartman
2026-02-04 14:38 ` [PATCH 5.15 108/206] iio: adc: ad9467: fix ad9434 vref mask Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 109/206] iio: adc: at91-sama5d2_adc: Fix potential use-after-free in sama5d2_adc driver Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 110/206] iio: dac: ad5686: add AD5695R to ad5686_chip_info_tbl Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 111/206] ALSA: ctxfi: Fix potential OOB access in audio mixer handling Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 112/206] ALSA: usb-audio: Fix use-after-free in snd_usb_mixer_free() Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 113/206] mmc: rtsx_pci_sdmmc: implement sdmmc_card_busy function Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 114/206] wifi: ath10k: fix dma_free_coherent() pointer Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 115/206] wifi: mwifiex: Fix a loop in mwifiex_update_ampdu_rxwinsize() Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 116/206] wifi: rsi: Fix memory corruption due to not set vif driver data size Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 117/206] arm64: Set __nocfi on swsusp_arch_resume() Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 118/206] octeontx2: Fix otx2_dma_map_page() error return code Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 119/206] slimbus: core: fix runtime PM imbalance on report present Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 120/206] slimbus: core: fix device reference leak " Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 121/206] intel_th: fix device leak on output open() Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 122/206] uacce: fix cdev handling in the cleanup path Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 123/206] uacce: implement mremap in uacce_vm_ops to return -EPERM Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 124/206] uacce: ensure safe queue release with state management Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 125/206] netrom: fix double-free in nr_route_frame() Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 126/206] perf/x86/intel: Do not enable BTS for guests Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 127/206] irqchip/gic-v3-its: Avoid truncating memory addresses Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 128/206] can: ems_usb: ems_usb_read_bulk_callback(): fix URB memory leak Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 129/206] can: kvaser_usb: kvaser_usb_read_bulk_callback(): " Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 130/206] can: mcba_usb: mcba_usb_read_bulk_callback(): " Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 131/206] can: usb_8dev: usb_8dev_read_bulk_callback(): " Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 132/206] migrate: correct lock ordering for hugetlb file folios Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 133/206] bpf: Do not let BPF test infra emit invalid GSO types to stack Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 134/206] bpf: Reject narrower access to pointer ctx fields Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 135/206] Bluetooth: hci_uart: fix null-ptr-deref in hci_uart_write_work Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 136/206] net/mlx5: Fix memory leak in esw_acl_ingress_lgcy_setup() Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 137/206] net: mvpp2: cls: Fix memory leak in mvpp2_ethtool_cls_rule_ins() Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 138/206] ipv6: use the right ifindex when replying to icmpv6 from localhost Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 139/206] rocker: fix memory leak in rocker_world_port_post_fini() Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 140/206] nfc: llcp: Fix memleak in nfc_llcp_send_ui_frame() Greg Kroah-Hartman
2026-02-04 14:39 ` [Intel-wired-lan] [PATCH 5.15 141/206] ice: stop counting UDP csum mismatch as rx_errors Greg Kroah-Hartman
2026-02-04 14:39   ` Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 142/206] net/mlx5: Add HW definitions of vport debug counters Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 143/206] net/mlx5e: Expose rx_oversize_pkts_buffer counter Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 144/206] net/mlx5e: Report rx_discards_phy via rx_dropped Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 145/206] net/mlx5e: Account for netdev stats in ndo_get_stats64 Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 146/206] nfc: nci: Fix race between rfkill and nci_unregister_device() Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 147/206] net: bridge: fix static key check Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 148/206] scsi: firewire: sbp-target: Fix overflow in sbp_make_tpg() Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 149/206] gpiolib: acpi: use BIT_ULL() for u64 mask in address space handler Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 150/206] dma/pool: distinguish between missing and exhausted atomic pools Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 151/206] ASoC: fsl: imx-card: Do not force slot width to sample width Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 152/206] scsi: be2iscsi: Fix a memory leak in beiscsi_boot_get_sinfo() Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 153/206] scsi: qla2xxx: edif: Fix dma_free_coherent() size Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 154/206] mptcp: only reset subflow errors when propagated Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 155/206] net: Add locking to protect skb->dev access in ip_output Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 156/206] tls: Use __sk_dst_get() and dst_dev_rcu() in get_netdev_for_sock() Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 157/206] comedi: Fix getting range information for subdevices 16 to 255 Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 158/206] of: platform: Use default match table for /firmware Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 159/206] iio: adc: exynos_adc: fix OF populate on driver rebind Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 160/206] scsi: xen: scsiback: Fix potential memory leak in scsiback_remove() Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 161/206] arm64: dts: rockchip: remove redundant max-link-speed from nanopi-r4s Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 162/206] w1: w1_therm: use swap() to make code cleaner Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 163/206] w1: therm: Fix off-by-one buffer overflow in alarms_store Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 164/206] dmaengine: stm32: dmamux: fix OF node leak on route allocation failure Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 165/206] dmaengine: stm32: dmamux: fix device leak on route allocation Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 166/206] xfs: set max_agbno to allow sparse alloc of last full inode chunk Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 167/206] nvme-fc: rename free_ctrl callback to match name pattern Greg Kroah-Hartman
2026-02-04 14:39 ` [PATCH 5.15 168/206] nvme-pci: do not directly handle subsys reset fallout Greg Kroah-Hartman
2026-02-04 14:40 ` [PATCH 5.15 169/206] nvme: fix PCIe subsystem reset controller state transition Greg Kroah-Hartman
2026-02-04 14:40 ` [PATCH 5.15 170/206] ALSA: scarlett2: Fix buffer overflow in config retrieval Greg Kroah-Hartman
2026-02-04 14:40 ` [PATCH 5.15 171/206] mei: trace: treat reg parameter as string Greg Kroah-Hartman
2026-02-04 14:40 ` [PATCH 5.15 172/206] ksmbd: smbd: fix dma_unmap_sg() nents Greg Kroah-Hartman
2026-02-04 14:40 ` [PATCH 5.15 173/206] mm/pagewalk: add walk_page_range_vma() Greg Kroah-Hartman
2026-02-04 14:40 ` [PATCH 5.15 174/206] ksm: use range-walk function to jump over holes in scan_get_next_rmap_item Greg Kroah-Hartman
2026-02-04 14:40 ` [PATCH 5.15 175/206] drm/ttm: fix undefined behavior in bit shift for TTM_TT_FLAG_PRIV_POPULATED Greg Kroah-Hartman
2026-02-04 14:40 ` [PATCH 5.15 176/206] ksmbd: fix use-after-free in ksmbd_tree_connect_put under concurrency Greg Kroah-Hartman
2026-02-04 14:40 ` [PATCH 5.15 177/206] fs/ntfs3: Initialize allocated memory before use Greg Kroah-Hartman
2026-02-04 14:40 ` [PATCH 5.15 178/206] blk-cgroup: Reinit blkg_iostat_set after clearing in blkcg_reset_stats() Greg Kroah-Hartman
2026-02-04 14:40 ` [PATCH 5.15 179/206] espintcp: fix skb leaks Greg Kroah-Hartman
2026-02-04 14:40 ` [PATCH 5.15 180/206] ext4: fix memory leaks in ext4_fname_{setup_filename,prepare_lookup} Greg Kroah-Hartman
2026-02-04 14:40 ` [PATCH 5.15 181/206] NFSD: fix race between nfsd registration and exports_proc Greg Kroah-Hartman
2026-02-04 14:40 ` [PATCH 5.15 182/206] usbnet: Fix using smp_processor_id() in preemptible code warnings Greg Kroah-Hartman
2026-02-04 14:40 ` [PATCH 5.15 183/206] net: stmmac: make sure that ptp_rate is not 0 before configuring EST Greg Kroah-Hartman
2026-02-04 14:40 ` [PATCH 5.15 184/206] Bluetooth: Fix hci_suspend_sync crash Greg Kroah-Hartman
2026-02-04 14:40 ` [PATCH 5.15 185/206] wifi: cfg80211: add a work abstraction with special semantics Greg Kroah-Hartman
2026-02-04 14:40 ` [PATCH 5.15 186/206] wifi: mac80211: use wiphy work for sdata->work Greg Kroah-Hartman
2026-02-04 14:40 ` [PATCH 5.15 187/206] wifi: mac80211: move TDLS work to wiphy work Greg Kroah-Hartman
2026-02-04 14:40 ` [PATCH 5.15 188/206] HID: uclogic: Correct devm device reference for hidinput input_dev name Greg Kroah-Hartman
2026-02-04 14:40 ` [PATCH 5.15 189/206] HID: uclogic: Add NULL check in uclogic_input_configured() Greg Kroah-Hartman
2026-02-04 14:40 ` [PATCH 5.15 190/206] genirq/irq_sim: Initialize work context pointers properly Greg Kroah-Hartman
2026-02-04 14:40 ` [PATCH 5.15 191/206] can: esd_usb: esd_usb_read_bulk_callback(): fix URB memory leak Greg Kroah-Hartman
2026-02-04 14:40 ` [PATCH 5.15 192/206] drm/amdkfd: fix a memory leak in device_queue_manager_init() Greg Kroah-Hartman
2026-02-04 14:40 ` [PATCH 5.15 193/206] btrfs: prevent use-after-free on page private data in btrfs_subpage_clear_uptodate() Greg Kroah-Hartman
2026-02-04 14:40 ` [PATCH 5.15 194/206] net/sched: act_ife: convert comma to semicolon Greg Kroah-Hartman
2026-02-04 14:40 ` [PATCH 5.15 195/206] mm/kfence: randomize the freelist on initialization Greg Kroah-Hartman
2026-02-04 18:48   ` Nathan Chancellor
2026-02-05  9:13     ` Pimyn Girgis
2026-02-05 14:07       ` Greg Kroah-Hartman
2026-02-04 14:40 ` [PATCH 5.15 196/206] pinctrl: lpass-lpi: implement .get_direction() for the GPIO driver Greg Kroah-Hartman
2026-02-04 14:40 ` [PATCH 5.15 197/206] drm/imx/tve: fix probe device leak Greg Kroah-Hartman
2026-02-04 14:40 ` [PATCH 5.15 198/206] writeback: fix 100% CPU usage when dirtytime_expire_interval is 0 Greg Kroah-Hartman
2026-02-04 14:40 ` [PATCH 5.15 199/206] mptcp: avoid dup SUB_CLOSED events after disconnect Greg Kroah-Hartman
2026-02-04 14:40 ` [PATCH 5.15 200/206] pinctrl: meson: mark the GPIO controller as sleeping Greg Kroah-Hartman
2026-02-04 14:40 ` [PATCH 5.15 201/206] team: Move team device type change at the end of team_port_add Greg Kroah-Hartman
2026-02-04 14:40 ` [PATCH 5.15 202/206] wifi: cfg80211: use system_unbound_wq for wiphy work Greg Kroah-Hartman
2026-02-04 14:40 ` [PATCH 5.15 203/206] wifi: cfg80211: fix wiphy delayed work queueing Greg Kroah-Hartman
2026-02-04 14:40 ` [PATCH 5.15 204/206] wifi: cfg80211: cancel wiphy_work before freeing wiphy Greg Kroah-Hartman
2026-02-04 14:40 ` [PATCH 5.15 205/206] wifi: cfg80211: fully move wiphy work to unbound workqueue Greg Kroah-Hartman
2026-02-04 14:40 ` [PATCH 5.15 206/206] wifi: cfg80211: init wiphy_work before allocating rfkill fails Greg Kroah-Hartman
2026-02-04 19:43 ` [PATCH 5.15 000/206] 5.15.199-rc1 review Florian Fainelli
2026-02-04 19:51 ` Brett A C Sheffield
2026-02-05  7:59 ` Ron Economos
2026-02-05 11:51 ` Mark Brown

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260204143901.451213584@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=Jonathan.Cameron@huawei.com \
    --cc=marcelo.schmitt1@gmail.com \
    --cc=patches@lists.linux.dev \
    --cc=sashal@kernel.org \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.