staging: comedi: mite: pass subdevice to mite_sync_output_dma()
authorIan Abbott <abbotti@mev.co.uk>
Tue, 6 May 2014 12:12:17 +0000 (13:12 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 23 May 2014 12:25:50 +0000 (21:25 +0900)
`mite_sync_output_dma()` in the "mite" module currently takes a pointer
to a `struct comedi_async` and gets a pointer to the owning `struct
comedi_subdevice` from the `subdevice` member.  Change it to take a
pointer to a `struct comedi_subdevice` and use the `async` member.

The motivation for this is to eliminate the `subdevice` member of
`struct comedi_async`.

Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/comedi/drivers/mite.c
drivers/staging/comedi/drivers/mite.h
drivers/staging/comedi/drivers/ni_mio_common.c

index f473841e18014e3707dc2c49b88a37b974cd22af..c12806ee4f6f882b09d36e7d5747f5a70b9c495c 100644 (file)
@@ -559,9 +559,9 @@ int mite_sync_input_dma(struct mite_channel *mite_chan,
 EXPORT_SYMBOL_GPL(mite_sync_input_dma);
 
 int mite_sync_output_dma(struct mite_channel *mite_chan,
-                        struct comedi_async *async)
+                        struct comedi_subdevice *s)
 {
-       struct comedi_subdevice *s = async->subdevice;
+       struct comedi_async *async = s->async;
        int count;
        u32 nbytes_ub, nbytes_lb;
        unsigned int old_alloc_count;
@@ -579,8 +579,7 @@ int mite_sync_output_dma(struct mite_channel *mite_chan,
            (int)(nbytes_ub - stop_count) > 0)
                nbytes_ub = stop_count;
        if ((int)(nbytes_ub - old_alloc_count) > 0) {
-               dev_warn(async->subdevice->device->class_dev,
-                        "mite: DMA underrun\n");
+               dev_warn(s->device->class_dev, "mite: DMA underrun\n");
                async->events |= COMEDI_CB_OVERFLOW;
                return -1;
        }
index ba3ad0cf014faa4a2322870c9dfbd8df2128d895..e6e58e989b73a49670bddd9e13def37132167fca 100644 (file)
@@ -108,7 +108,7 @@ void mite_dma_disarm(struct mite_channel *mite_chan);
 int mite_sync_input_dma(struct mite_channel *mite_chan,
                        struct comedi_subdevice *s);
 int mite_sync_output_dma(struct mite_channel *mite_chan,
-                        struct comedi_async *async);
+                        struct comedi_subdevice *s);
 u32 mite_bytes_written_to_memory_lb(struct mite_channel *mite_chan);
 u32 mite_bytes_written_to_memory_ub(struct mite_channel *mite_chan);
 u32 mite_bytes_read_from_memory_lb(struct mite_channel *mite_chan);
index 953130b37fdaeb1b535d9350b687fc0c3bd82fed..9afe76f2c7c8aa4a8d0b44d96d42b6f00f3d8b73 100644 (file)
@@ -877,7 +877,7 @@ static void mite_handle_b_linkc(struct mite_struct *mite,
 
        spin_lock_irqsave(&devpriv->mite_channel_lock, flags);
        if (devpriv->ao_mite_chan)
-               mite_sync_output_dma(devpriv->ao_mite_chan, s->async);
+               mite_sync_output_dma(devpriv->ao_mite_chan, s);
        spin_unlock_irqrestore(&devpriv->mite_channel_lock, flags);
 }
 
@@ -3640,7 +3640,7 @@ static void handle_cdio_interrupt(struct comedi_device *dev)
                               devpriv->mite->mite_io_addr +
                               MITE_CHOR(devpriv->cdo_mite_chan->channel));
                }
-               mite_sync_output_dma(devpriv->cdo_mite_chan, s->async);
+               mite_sync_output_dma(devpriv->cdo_mite_chan, s);
        }
        spin_unlock_irqrestore(&devpriv->mite_channel_lock, flags);
 #endif