Merge tag 'for-linus-v3.10-rc3' of git://oss.sgi.com/xfs/xfs
[firefly-linux-kernel-4.4.55.git] / drivers / staging / iio / adc / mxs-lradc.c
index 0eb5b4d759e53c1fa3cbdc593d559ffebad78775..163c638e4095f3b893668bb5d83e8e2110b76afb 100644 (file)
@@ -643,7 +643,7 @@ static irqreturn_t mxs_lradc_trigger_handler(int irq, void *p)
 
 static int mxs_lradc_configure_trigger(struct iio_trigger *trig, bool state)
 {
-       struct iio_dev *iio = trig->private_data;
+       struct iio_dev *iio = iio_trigger_get_drvdata(trig);
        struct mxs_lradc *lradc = iio_priv(iio);
        const uint32_t st = state ? STMP_OFFSET_REG_SET : STMP_OFFSET_REG_CLR;
 
@@ -667,7 +667,7 @@ static int mxs_lradc_trigger_init(struct iio_dev *iio)
                return -ENOMEM;
 
        trig->dev.parent = iio->dev.parent;
-       trig->private_data = iio;
+       iio_trigger_set_drvdata(trig, iio);
        trig->ops = &mxs_lradc_trigger_ops;
 
        ret = iio_trigger_register(trig);
@@ -690,7 +690,6 @@ static void mxs_lradc_trigger_remove(struct iio_dev *iio)
 static int mxs_lradc_buffer_preenable(struct iio_dev *iio)
 {
        struct mxs_lradc *lradc = iio_priv(iio);
-       struct iio_buffer *buffer = iio->buffer;
        int ret = 0, chan, ofs = 0;
        unsigned long enable = 0;
        uint32_t ctrl4_set = 0;
@@ -698,7 +697,7 @@ static int mxs_lradc_buffer_preenable(struct iio_dev *iio)
        uint32_t ctrl1_irq = 0;
        const uint32_t chan_value = LRADC_CH_ACCUMULATE |
                ((LRADC_DELAY_TIMER_LOOP - 1) << LRADC_CH_NUM_SAMPLES_OFFSET);
-       const int len = bitmap_weight(buffer->scan_mask, LRADC_MAX_TOTAL_CHANS);
+       const int len = bitmap_weight(iio->active_scan_mask, LRADC_MAX_TOTAL_CHANS);
 
        if (!len)
                return -EINVAL;
@@ -725,7 +724,7 @@ static int mxs_lradc_buffer_preenable(struct iio_dev *iio)
                lradc->base + LRADC_CTRL1 + STMP_OFFSET_REG_CLR);
        writel(0xff, lradc->base + LRADC_CTRL0 + STMP_OFFSET_REG_CLR);
 
-       for_each_set_bit(chan, buffer->scan_mask, LRADC_MAX_TOTAL_CHANS) {
+       for_each_set_bit(chan, iio->active_scan_mask, LRADC_MAX_TOTAL_CHANS) {
                ctrl4_set |= chan << LRADC_CTRL4_LRADCSELECT_OFFSET(ofs);
                ctrl4_clr |= LRADC_CTRL4_LRADCSELECT_MASK(ofs);
                ctrl1_irq |= LRADC_CTRL1_LRADC_IRQ_EN(ofs);
@@ -819,7 +818,7 @@ static const struct iio_buffer_setup_ops mxs_lradc_buffer_ops = {
        .type = (chan_type),                                    \
        .indexed = 1,                                           \
        .scan_index = (idx),                                    \
-       .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT,            \
+       .info_mask_separate = BIT(IIO_CHAN_INFO_RAW),           \
        .channel = (idx),                                       \
        .scan_type = {                                          \
                .sign = 'u',                                    \
@@ -980,6 +979,9 @@ static int mxs_lradc_probe(struct platform_device *pdev)
        if (ret)
                goto err_trig;
 
+       /* Configure the hardware. */
+       mxs_lradc_hw_init(lradc);
+
        /* Register the touchscreen input device. */
        ret = mxs_lradc_ts_register(lradc);
        if (ret)
@@ -992,9 +994,6 @@ static int mxs_lradc_probe(struct platform_device *pdev)
                goto err_ts;
        }
 
-       /* Configure the hardware. */
-       mxs_lradc_hw_init(lradc);
-
        return 0;
 
 err_ts: