forked from Minki/linux
iio: dac: vf610_dac: Replace indio_dev->mlock with own device lock
As part of the general cleanup of indio_dev->mlock, this change replaces it with a local lock on the device's state structure. Signed-off-by: Sergiu Cuciurean <sergiu.cuciurean@analog.com> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
This commit is contained in:
parent
0b2884ef7f
commit
3adb82ebd9
@ -36,6 +36,7 @@ struct vf610_dac {
|
||||
struct device *dev;
|
||||
enum vf610_conversion_mode_sel conv_mode;
|
||||
void __iomem *regs;
|
||||
struct mutex lock;
|
||||
};
|
||||
|
||||
static void vf610_dac_init(struct vf610_dac *info)
|
||||
@ -64,7 +65,7 @@ static int vf610_set_conversion_mode(struct iio_dev *indio_dev,
|
||||
struct vf610_dac *info = iio_priv(indio_dev);
|
||||
int val;
|
||||
|
||||
mutex_lock(&indio_dev->mlock);
|
||||
mutex_lock(&info->lock);
|
||||
info->conv_mode = mode;
|
||||
val = readl(info->regs + VF610_DACx_STATCTRL);
|
||||
if (mode)
|
||||
@ -72,7 +73,7 @@ static int vf610_set_conversion_mode(struct iio_dev *indio_dev,
|
||||
else
|
||||
val &= ~VF610_DAC_LPEN;
|
||||
writel(val, info->regs + VF610_DACx_STATCTRL);
|
||||
mutex_unlock(&indio_dev->mlock);
|
||||
mutex_unlock(&info->lock);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -147,9 +148,9 @@ static int vf610_write_raw(struct iio_dev *indio_dev,
|
||||
|
||||
switch (mask) {
|
||||
case IIO_CHAN_INFO_RAW:
|
||||
mutex_lock(&indio_dev->mlock);
|
||||
mutex_lock(&info->lock);
|
||||
writel(VF610_DAC_DAT0(val), info->regs);
|
||||
mutex_unlock(&indio_dev->mlock);
|
||||
mutex_unlock(&info->lock);
|
||||
return 0;
|
||||
|
||||
default:
|
||||
@ -205,6 +206,8 @@ static int vf610_dac_probe(struct platform_device *pdev)
|
||||
indio_dev->channels = vf610_dac_iio_channels;
|
||||
indio_dev->num_channels = ARRAY_SIZE(vf610_dac_iio_channels);
|
||||
|
||||
mutex_init(&info->lock);
|
||||
|
||||
ret = clk_prepare_enable(info->clk);
|
||||
if (ret) {
|
||||
dev_err(&pdev->dev,
|
||||
|
Loading…
Reference in New Issue
Block a user