@@ -111,6 +111,7 @@ struct tegra_adma_desc {
size_t buf_len;
size_t period_len;
size_t num_periods;
+ bool cyclic;
};
/*
@@ -408,7 +409,8 @@ static irqreturn_t tegra_adma_isr(int irq, void *dev_id)
return IRQ_NONE;
}
- vchan_cyclic_callback(&tdc->desc->vd);
+ if (tdc->desc->cyclic)
+ vchan_cyclic_callback(&tdc->desc->vd);
spin_unlock_irqrestore(&tdc->vc.lock, flags);
@@ -557,6 +559,7 @@ static struct dma_async_tx_descriptor *tegra_adma_prep_dma_cyclic(
if (!desc)
return NULL;
+ desc->cyclic = true;
desc->buf_len = buf_len;
desc->period_len = period_len;
desc->num_periods = buf_len / period_len;
ADMA driver will support more than cyclic type of transaction. So this patch limit the cyclic callback for the cyclic type only in order to support other types. Signed-off-by: Nicolin Chen <nicoleotsuka@gmail.com> --- drivers/dma/tegra210-adma.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)