diff options
author | Ivan Mikhaylov <i.mikhaylov@yadro.com> | 2021-07-22 18:44:18 +0300 |
---|---|---|
committer | Jonathan Cameron <Jonathan.Cameron@huawei.com> | 2021-07-24 16:00:55 +0100 |
commit | f5e9e38e7063dbe2c811bb5ee7d255318eb064b3 (patch) | |
tree | a1577ef020f624e88e26c6d87f1c7e02e53174fb /drivers/iio | |
parent | 9c6cd755b548767ae1780fa41967ac602604d456 (diff) |
iio: proximity: vcnl3020: add DMA safe buffer
Add DMA safe buffer for bulk transfers.
Signed-off-by: Ivan Mikhaylov <i.mikhaylov@yadro.com>
Link: https://lore.kernel.org/r/20210722154420.915082-2-i.mikhaylov@yadro.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Diffstat (limited to 'drivers/iio')
-rw-r--r-- | drivers/iio/proximity/vcnl3020.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/iio/proximity/vcnl3020.c b/drivers/iio/proximity/vcnl3020.c index 43817f6b3086..c90f9c6e9e97 100644 --- a/drivers/iio/proximity/vcnl3020.c +++ b/drivers/iio/proximity/vcnl3020.c @@ -57,12 +57,14 @@ static const int vcnl3020_prox_sampling_frequency[][2] = { * @dev: vcnl3020 device. * @rev: revision id. * @lock: lock for protecting access to device hardware registers. + * @buf: DMA safe __be16 buffer. */ struct vcnl3020_data { struct regmap *regmap; struct device *dev; u8 rev; struct mutex lock; + __be16 buf ____cacheline_aligned; }; /** @@ -144,7 +146,6 @@ static int vcnl3020_measure_proximity(struct vcnl3020_data *data, int *val) { int rc; unsigned int reg; - __be16 res; mutex_lock(&data->lock); @@ -163,12 +164,12 @@ static int vcnl3020_measure_proximity(struct vcnl3020_data *data, int *val) } /* high & low result bytes read */ - rc = regmap_bulk_read(data->regmap, VCNL_PS_RESULT_HI, &res, - sizeof(res)); + rc = regmap_bulk_read(data->regmap, VCNL_PS_RESULT_HI, &data->buf, + sizeof(data->buf)); if (rc) goto err_unlock; - *val = be16_to_cpu(res); + *val = be16_to_cpu(data->buf); err_unlock: mutex_unlock(&data->lock); |