iio: temperature: ltc2983: make bulk write buffer DMA-safe
[ Upstream commit5e01762139
] regmap_bulk_write() does not guarantee implicit DMA-safety, even though the current implementation duplicates the given buffer. Do not rely on it. Fixes:f110f3188e
("iio: temperature: Add support for LTC2983") Signed-off-by: Cosmin Tanislav <cosmin.tanislav@analog.com> Link: https://lore.kernel.org/r/20221103130041.2153295-2-demonsingur@gmail.com Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
Родитель
22511eefa6
Коммит
994243de7a
|
@ -205,6 +205,7 @@ struct ltc2983_data {
|
|||
* Holds the converted temperature
|
||||
*/
|
||||
__be32 temp ____cacheline_aligned;
|
||||
__be32 chan_val;
|
||||
};
|
||||
|
||||
struct ltc2983_sensor {
|
||||
|
@ -309,19 +310,18 @@ static int __ltc2983_fault_handler(const struct ltc2983_data *st,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int __ltc2983_chan_assign_common(const struct ltc2983_data *st,
|
||||
static int __ltc2983_chan_assign_common(struct ltc2983_data *st,
|
||||
const struct ltc2983_sensor *sensor,
|
||||
u32 chan_val)
|
||||
{
|
||||
u32 reg = LTC2983_CHAN_START_ADDR(sensor->chan);
|
||||
__be32 __chan_val;
|
||||
|
||||
chan_val |= LTC2983_CHAN_TYPE(sensor->type);
|
||||
dev_dbg(&st->spi->dev, "Assign reg:0x%04X, val:0x%08X\n", reg,
|
||||
chan_val);
|
||||
__chan_val = cpu_to_be32(chan_val);
|
||||
return regmap_bulk_write(st->regmap, reg, &__chan_val,
|
||||
sizeof(__chan_val));
|
||||
st->chan_val = cpu_to_be32(chan_val);
|
||||
return regmap_bulk_write(st->regmap, reg, &st->chan_val,
|
||||
sizeof(st->chan_val));
|
||||
}
|
||||
|
||||
static int __ltc2983_chan_custom_sensor_assign(struct ltc2983_data *st,
|
||||
|
|
Загрузка…
Ссылка в новой задаче