Commit e9567174 authored by Federico Vaga's avatar Federico Vaga

drv: move out HW_BUSY flag set|get and use ZIO API

the HW_BUSY flag must be cleared before doing data_done in order to hold
only during DMA.
Signed-off-by: Federico Vaga's avatarFederico Vaga <federico.vaga@cern.ch>
parent 31d98b13
...@@ -212,8 +212,10 @@ static void ft_readout_dma_start(struct fmctdc_dev *ft, int channel) ...@@ -212,8 +212,10 @@ static void ft_readout_dma_start(struct fmctdc_dev *ft, int channel)
while (total > 0) { while (total > 0) {
cset->ti->nsamples = min((unsigned long)total, cset->ti->nsamples = min((unsigned long)total,
KMALLOC_MAX_SIZE); KMALLOC_MAX_SIZE);
zio_cset_busy_set(cset, 1);
zio_arm_trigger(cset->ti); /* actually a fire */ zio_arm_trigger(cset->ti); /* actually a fire */
ft_readout_dma_run(cset, base_cur, count, cset->ti->nsamples); ft_readout_dma_run(cset, base_cur, count, cset->ti->nsamples);
zio_cset_busy_clear(cset, 1);
zio_trigger_data_done(cset); zio_trigger_data_done(cset);
count += cset->ti->nsamples; count += cset->ti->nsamples;
......
...@@ -186,12 +186,6 @@ static int ft_zio_conf_channel(struct device *dev, struct zio_attribute *zattr, ...@@ -186,12 +186,6 @@ static int ft_zio_conf_channel(struct device *dev, struct zio_attribute *zattr,
*/ */
static int ft_zio_input(struct zio_cset *cset) static int ft_zio_input(struct zio_cset *cset)
{ {
unsigned long flags;
spin_lock_irqsave(&cset->lock, flags);
cset->flags |= ZIO_CSET_HW_BUSY;
spin_unlock_irqrestore(&cset->lock, flags);
return -EAGAIN; return -EAGAIN;
} }
...@@ -541,8 +535,6 @@ static int ft_trig_data_done(struct zio_cset *cset) ...@@ -541,8 +535,6 @@ static int ft_trig_data_done(struct zio_cset *cset)
out: out:
ret = zio_generic_data_done(cset); ret = zio_generic_data_done(cset);
cset->flags &= ~ZIO_CSET_HW_BUSY;
return ret; return ret;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment