iio: dac: vf610_dac: Replace indio_dev->mlock with own device lock
authorSergiu Cuciurean <sergiu.cuciurean@analog.com>
Thu, 14 May 2020 08:58:15 +0000 (11:58 +0300)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Sat, 16 May 2020 15:36:22 +0000 (16:36 +0100)
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>
drivers/iio/dac/vf610_dac.c

index 71f8a5c..c1e15ed 100644 (file)
@@ -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,