Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

iio: light: cm3232: move calibscale to struct cm3232_chip

Move the calibscale field from struct cm3232_als_info to struct
cm3232_chip. The chip info struct is supposed to be const while the
driver data struct should contain mutable fields. Since calibscale
is a mutable field, it should be in the driver data struct.

Signed-off-by: David Lechner <dlechner@baylibre.com>
Link: https://patch.msgid.link/20250628-iio-const-data-20-v1-1-2bf90b03f9f1@baylibre.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>

authored by

David Lechner and committed by
Jonathan Cameron
8f02a8d6 2ef920e0

+5 -7
+5 -7
drivers/iio/light/cm3232.c
··· 54 54 struct cm3232_als_info { 55 55 u8 regs_cmd_default; 56 56 u8 hw_id; 57 - int calibscale; 58 57 int mlux_per_bit; 59 58 int mlux_per_bit_base_it; 60 59 }; ··· 61 62 static struct cm3232_als_info cm3232_als_info_default = { 62 63 .regs_cmd_default = CM3232_CMD_DEFAULT, 63 64 .hw_id = CM3232_HW_ID, 64 - .calibscale = CM3232_CALIBSCALE_DEFAULT, 65 65 .mlux_per_bit = CM3232_MLUX_PER_BIT_DEFAULT, 66 66 .mlux_per_bit_base_it = CM3232_MLUX_PER_BIT_BASE_IT, 67 67 }; ··· 68 70 struct cm3232_chip { 69 71 struct i2c_client *client; 70 72 struct cm3232_als_info *als_info; 73 + int calibscale; 71 74 u8 regs_cmd; 72 75 u16 regs_als; 73 76 }; ··· 221 222 222 223 chip->regs_als = (u16)ret; 223 224 lux *= chip->regs_als; 224 - lux *= als_info->calibscale; 225 + lux *= chip->calibscale; 225 226 lux = div_u64(lux, CM3232_CALIBSCALE_RESOLUTION); 226 227 lux = div_u64(lux, CM3232_MLUX_PER_LUX); 227 228 ··· 236 237 int *val, int *val2, long mask) 237 238 { 238 239 struct cm3232_chip *chip = iio_priv(indio_dev); 239 - struct cm3232_als_info *als_info = chip->als_info; 240 240 int ret; 241 241 242 242 switch (mask) { ··· 246 248 *val = ret; 247 249 return IIO_VAL_INT; 248 250 case IIO_CHAN_INFO_CALIBSCALE: 249 - *val = als_info->calibscale; 251 + *val = chip->calibscale; 250 252 return IIO_VAL_INT; 251 253 case IIO_CHAN_INFO_INT_TIME: 252 254 return cm3232_read_als_it(chip, val, val2); ··· 260 262 int val, int val2, long mask) 261 263 { 262 264 struct cm3232_chip *chip = iio_priv(indio_dev); 263 - struct cm3232_als_info *als_info = chip->als_info; 264 265 265 266 switch (mask) { 266 267 case IIO_CHAN_INFO_CALIBSCALE: 267 - als_info->calibscale = val; 268 + chip->calibscale = val; 268 269 return 0; 269 270 case IIO_CHAN_INFO_INT_TIME: 270 271 return cm3232_write_als_it(chip, val, val2); ··· 336 339 chip = iio_priv(indio_dev); 337 340 i2c_set_clientdata(client, indio_dev); 338 341 chip->client = client; 342 + chip->calibscale = CM3232_CALIBSCALE_DEFAULT; 339 343 340 344 indio_dev->channels = cm3232_channels; 341 345 indio_dev->num_channels = ARRAY_SIZE(cm3232_channels);