Merge branch 'topic/tasklet' into next
This commit is contained in:
commit
a841592fb3
|
@ -680,9 +680,9 @@ static int msgdma_alloc_chan_resources(struct dma_chan *dchan)
|
|||
* msgdma_tasklet - Schedule completion tasklet
|
||||
* @data: Pointer to the Altera sSGDMA channel structure
|
||||
*/
|
||||
static void msgdma_tasklet(unsigned long data)
|
||||
static void msgdma_tasklet(struct tasklet_struct *t)
|
||||
{
|
||||
struct msgdma_device *mdev = (struct msgdma_device *)data;
|
||||
struct msgdma_device *mdev = from_tasklet(mdev, t, irq_tasklet);
|
||||
u32 count;
|
||||
u32 __maybe_unused size;
|
||||
u32 __maybe_unused status;
|
||||
|
@ -830,7 +830,7 @@ static int msgdma_probe(struct platform_device *pdev)
|
|||
if (ret)
|
||||
return ret;
|
||||
|
||||
tasklet_init(&mdev->irq_tasklet, msgdma_tasklet, (unsigned long)mdev);
|
||||
tasklet_setup(&mdev->irq_tasklet, msgdma_tasklet);
|
||||
|
||||
dma_cookie_init(&mdev->dmachan);
|
||||
|
||||
|
|
|
@ -598,9 +598,9 @@ static void atc_handle_cyclic(struct at_dma_chan *atchan)
|
|||
|
||||
/*-- IRQ & Tasklet ---------------------------------------------------*/
|
||||
|
||||
static void atc_tasklet(unsigned long data)
|
||||
static void atc_tasklet(struct tasklet_struct *t)
|
||||
{
|
||||
struct at_dma_chan *atchan = (struct at_dma_chan *)data;
|
||||
struct at_dma_chan *atchan = from_tasklet(atchan, t, tasklet);
|
||||
|
||||
if (test_and_clear_bit(ATC_IS_ERROR, &atchan->status))
|
||||
return atc_handle_error(atchan);
|
||||
|
@ -1892,8 +1892,7 @@ static int __init at_dma_probe(struct platform_device *pdev)
|
|||
INIT_LIST_HEAD(&atchan->queue);
|
||||
INIT_LIST_HEAD(&atchan->free_list);
|
||||
|
||||
tasklet_init(&atchan->tasklet, atc_tasklet,
|
||||
(unsigned long)atchan);
|
||||
tasklet_setup(&atchan->tasklet, atc_tasklet);
|
||||
atc_enable_chan_irq(atdma, i);
|
||||
}
|
||||
|
||||
|
|
|
@ -1613,9 +1613,9 @@ static void at_xdmac_handle_error(struct at_xdmac_chan *atchan)
|
|||
/* Then continue with usual descriptor management */
|
||||
}
|
||||
|
||||
static void at_xdmac_tasklet(unsigned long data)
|
||||
static void at_xdmac_tasklet(struct tasklet_struct *t)
|
||||
{
|
||||
struct at_xdmac_chan *atchan = (struct at_xdmac_chan *)data;
|
||||
struct at_xdmac_chan *atchan = from_tasklet(atchan, t, tasklet);
|
||||
struct at_xdmac_desc *desc;
|
||||
u32 error_mask;
|
||||
|
||||
|
@ -2063,8 +2063,7 @@ static int at_xdmac_probe(struct platform_device *pdev)
|
|||
spin_lock_init(&atchan->lock);
|
||||
INIT_LIST_HEAD(&atchan->xfers_list);
|
||||
INIT_LIST_HEAD(&atchan->free_descs_list);
|
||||
tasklet_init(&atchan->tasklet, at_xdmac_tasklet,
|
||||
(unsigned long)atchan);
|
||||
tasklet_setup(&atchan->tasklet, at_xdmac_tasklet);
|
||||
|
||||
/* Clear pending interrupts. */
|
||||
while (at_xdmac_chan_read(atchan, AT_XDMAC_CIS))
|
||||
|
|
|
@ -1868,9 +1868,9 @@ static struct coh901318_desc *coh901318_queue_start(struct coh901318_chan *cohc)
|
|||
* This tasklet is called from the interrupt handler to
|
||||
* handle each descriptor (DMA job) that is sent to a channel.
|
||||
*/
|
||||
static void dma_tasklet(unsigned long data)
|
||||
static void dma_tasklet(struct tasklet_struct *t)
|
||||
{
|
||||
struct coh901318_chan *cohc = (struct coh901318_chan *) data;
|
||||
struct coh901318_chan *cohc = from_tasklet(cohc, t, tasklet);
|
||||
struct coh901318_desc *cohd_fin;
|
||||
unsigned long flags;
|
||||
struct dmaengine_desc_callback cb;
|
||||
|
@ -2615,8 +2615,7 @@ static void coh901318_base_init(struct dma_device *dma, const int *pick_chans,
|
|||
INIT_LIST_HEAD(&cohc->active);
|
||||
INIT_LIST_HEAD(&cohc->queue);
|
||||
|
||||
tasklet_init(&cohc->tasklet, dma_tasklet,
|
||||
(unsigned long) cohc);
|
||||
tasklet_setup(&cohc->tasklet, dma_tasklet);
|
||||
|
||||
list_add_tail(&cohc->chan.device_node,
|
||||
&dma->channels);
|
||||
|
|
|
@ -463,9 +463,9 @@ static void dwc_handle_error(struct dw_dma *dw, struct dw_dma_chan *dwc)
|
|||
dwc_descriptor_complete(dwc, bad_desc, true);
|
||||
}
|
||||
|
||||
static void dw_dma_tasklet(unsigned long data)
|
||||
static void dw_dma_tasklet(struct tasklet_struct *t)
|
||||
{
|
||||
struct dw_dma *dw = (struct dw_dma *)data;
|
||||
struct dw_dma *dw = from_tasklet(dw, t, tasklet);
|
||||
struct dw_dma_chan *dwc;
|
||||
u32 status_xfer;
|
||||
u32 status_err;
|
||||
|
@ -1142,7 +1142,7 @@ int do_dma_probe(struct dw_dma_chip *chip)
|
|||
goto err_pdata;
|
||||
}
|
||||
|
||||
tasklet_init(&dw->tasklet, dw_dma_tasklet, (unsigned long)dw);
|
||||
tasklet_setup(&dw->tasklet, dw_dma_tasklet);
|
||||
|
||||
err = request_irq(chip->irq, dw_dma_interrupt, IRQF_SHARED,
|
||||
dw->name, dw);
|
||||
|
|
|
@ -745,9 +745,9 @@ static void ep93xx_dma_advance_work(struct ep93xx_dma_chan *edmac)
|
|||
spin_unlock_irqrestore(&edmac->lock, flags);
|
||||
}
|
||||
|
||||
static void ep93xx_dma_tasklet(unsigned long data)
|
||||
static void ep93xx_dma_tasklet(struct tasklet_struct *t)
|
||||
{
|
||||
struct ep93xx_dma_chan *edmac = (struct ep93xx_dma_chan *)data;
|
||||
struct ep93xx_dma_chan *edmac = from_tasklet(edmac, t, tasklet);
|
||||
struct ep93xx_dma_desc *desc, *d;
|
||||
struct dmaengine_desc_callback cb;
|
||||
LIST_HEAD(list);
|
||||
|
@ -1353,8 +1353,7 @@ static int __init ep93xx_dma_probe(struct platform_device *pdev)
|
|||
INIT_LIST_HEAD(&edmac->active);
|
||||
INIT_LIST_HEAD(&edmac->queue);
|
||||
INIT_LIST_HEAD(&edmac->free_list);
|
||||
tasklet_init(&edmac->tasklet, ep93xx_dma_tasklet,
|
||||
(unsigned long)edmac);
|
||||
tasklet_setup(&edmac->tasklet, ep93xx_dma_tasklet);
|
||||
|
||||
list_add_tail(&edmac->chan.device_node,
|
||||
&dma_dev->channels);
|
||||
|
|
|
@ -154,9 +154,9 @@ static void fsl_re_cleanup_descs(struct fsl_re_chan *re_chan)
|
|||
fsl_re_issue_pending(&re_chan->chan);
|
||||
}
|
||||
|
||||
static void fsl_re_dequeue(unsigned long data)
|
||||
static void fsl_re_dequeue(struct tasklet_struct *t)
|
||||
{
|
||||
struct fsl_re_chan *re_chan;
|
||||
struct fsl_re_chan *re_chan = from_tasklet(re_chan, t, irqtask);
|
||||
struct fsl_re_desc *desc, *_desc;
|
||||
struct fsl_re_hw_desc *hwdesc;
|
||||
unsigned long flags;
|
||||
|
@ -671,7 +671,7 @@ static int fsl_re_chan_probe(struct platform_device *ofdev,
|
|||
snprintf(chan->name, sizeof(chan->name), "re_jr%02d", q);
|
||||
|
||||
chandev = &chan_ofdev->dev;
|
||||
tasklet_init(&chan->irqtask, fsl_re_dequeue, (unsigned long)chandev);
|
||||
tasklet_setup(&chan->irqtask, fsl_re_dequeue);
|
||||
|
||||
ret = request_irq(chan->irq, fsl_re_isr, 0, chan->name, chandev);
|
||||
if (ret) {
|
||||
|
|
|
@ -976,9 +976,9 @@ static irqreturn_t fsldma_chan_irq(int irq, void *data)
|
|||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
static void dma_do_tasklet(unsigned long data)
|
||||
static void dma_do_tasklet(struct tasklet_struct *t)
|
||||
{
|
||||
struct fsldma_chan *chan = (struct fsldma_chan *)data;
|
||||
struct fsldma_chan *chan = from_tasklet(chan, t, tasklet);
|
||||
|
||||
chan_dbg(chan, "tasklet entry\n");
|
||||
|
||||
|
@ -1151,7 +1151,7 @@ static int fsl_dma_chan_probe(struct fsldma_device *fdev,
|
|||
}
|
||||
|
||||
fdev->chan[chan->id] = chan;
|
||||
tasklet_init(&chan->tasklet, dma_do_tasklet, (unsigned long)chan);
|
||||
tasklet_setup(&chan->tasklet, dma_do_tasklet);
|
||||
snprintf(chan->name, sizeof(chan->name), "chan%d", chan->id);
|
||||
|
||||
/* Initialize the channel */
|
||||
|
|
|
@ -612,9 +612,9 @@ static int imxdma_xfer_desc(struct imxdma_desc *d)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static void imxdma_tasklet(unsigned long data)
|
||||
static void imxdma_tasklet(struct tasklet_struct *t)
|
||||
{
|
||||
struct imxdma_channel *imxdmac = (void *)data;
|
||||
struct imxdma_channel *imxdmac = from_tasklet(imxdmac, t, dma_tasklet);
|
||||
struct imxdma_engine *imxdma = imxdmac->imxdma;
|
||||
struct imxdma_desc *desc, *next_desc;
|
||||
unsigned long flags;
|
||||
|
@ -1168,8 +1168,7 @@ static int __init imxdma_probe(struct platform_device *pdev)
|
|||
INIT_LIST_HEAD(&imxdmac->ld_free);
|
||||
INIT_LIST_HEAD(&imxdmac->ld_active);
|
||||
|
||||
tasklet_init(&imxdmac->dma_tasklet, imxdma_tasklet,
|
||||
(unsigned long)imxdmac);
|
||||
tasklet_setup(&imxdmac->dma_tasklet, imxdma_tasklet);
|
||||
imxdmac->chan.device = &imxdma->dma_device;
|
||||
dma_cookie_init(&imxdmac->chan);
|
||||
imxdmac->channel = i;
|
||||
|
|
|
@ -165,7 +165,7 @@ void ioat_stop(struct ioatdma_chan *ioat_chan)
|
|||
tasklet_kill(&ioat_chan->cleanup_task);
|
||||
|
||||
/* final cleanup now that everything is quiesced and can't re-arm */
|
||||
ioat_cleanup_event((unsigned long)&ioat_chan->dma_chan);
|
||||
ioat_cleanup_event(&ioat_chan->cleanup_task);
|
||||
}
|
||||
|
||||
static void __ioat_issue_pending(struct ioatdma_chan *ioat_chan)
|
||||
|
@ -690,9 +690,9 @@ static void ioat_cleanup(struct ioatdma_chan *ioat_chan)
|
|||
spin_unlock_bh(&ioat_chan->cleanup_lock);
|
||||
}
|
||||
|
||||
void ioat_cleanup_event(unsigned long data)
|
||||
void ioat_cleanup_event(struct tasklet_struct *t)
|
||||
{
|
||||
struct ioatdma_chan *ioat_chan = to_ioat_chan((void *)data);
|
||||
struct ioatdma_chan *ioat_chan = from_tasklet(ioat_chan, t, cleanup_task);
|
||||
|
||||
ioat_cleanup(ioat_chan);
|
||||
if (!test_bit(IOAT_RUN, &ioat_chan->state))
|
||||
|
|
|
@ -393,7 +393,7 @@ int ioat_reset_hw(struct ioatdma_chan *ioat_chan);
|
|||
enum dma_status
|
||||
ioat_tx_status(struct dma_chan *c, dma_cookie_t cookie,
|
||||
struct dma_tx_state *txstate);
|
||||
void ioat_cleanup_event(unsigned long data);
|
||||
void ioat_cleanup_event(struct tasklet_struct *t);
|
||||
void ioat_timer_event(struct timer_list *t);
|
||||
int ioat_check_space_lock(struct ioatdma_chan *ioat_chan, int num_descs);
|
||||
void ioat_issue_pending(struct dma_chan *chan);
|
||||
|
|
|
@ -767,8 +767,6 @@ ioat_init_channel(struct ioatdma_device *ioat_dma,
|
|||
struct ioatdma_chan *ioat_chan, int idx)
|
||||
{
|
||||
struct dma_device *dma = &ioat_dma->dma_dev;
|
||||
struct dma_chan *c = &ioat_chan->dma_chan;
|
||||
unsigned long data = (unsigned long) c;
|
||||
|
||||
ioat_chan->ioat_dma = ioat_dma;
|
||||
ioat_chan->reg_base = ioat_dma->reg_base + (0x80 * (idx + 1));
|
||||
|
@ -778,7 +776,7 @@ ioat_init_channel(struct ioatdma_device *ioat_dma,
|
|||
list_add_tail(&ioat_chan->dma_chan.device_node, &dma->channels);
|
||||
ioat_dma->idx[idx] = ioat_chan;
|
||||
timer_setup(&ioat_chan->timer, ioat_timer_event, 0);
|
||||
tasklet_init(&ioat_chan->cleanup_task, ioat_cleanup_event, data);
|
||||
tasklet_setup(&ioat_chan->cleanup_task, ioat_cleanup_event);
|
||||
}
|
||||
|
||||
#define IOAT_NUM_SRC_TEST 6 /* must be <= 8 */
|
||||
|
|
|
@ -238,9 +238,10 @@ iop_adma_slot_cleanup(struct iop_adma_chan *iop_chan)
|
|||
spin_unlock_bh(&iop_chan->lock);
|
||||
}
|
||||
|
||||
static void iop_adma_tasklet(unsigned long data)
|
||||
static void iop_adma_tasklet(struct tasklet_struct *t)
|
||||
{
|
||||
struct iop_adma_chan *iop_chan = (struct iop_adma_chan *) data;
|
||||
struct iop_adma_chan *iop_chan = from_tasklet(iop_chan, t,
|
||||
irq_tasklet);
|
||||
|
||||
/* lockdep will flag depedency submissions as potentially
|
||||
* recursive locking, this is not the case as a dependency
|
||||
|
@ -1350,8 +1351,7 @@ static int iop_adma_probe(struct platform_device *pdev)
|
|||
ret = -ENOMEM;
|
||||
goto err_free_iop_chan;
|
||||
}
|
||||
tasklet_init(&iop_chan->irq_tasklet, iop_adma_tasklet, (unsigned long)
|
||||
iop_chan);
|
||||
tasklet_setup(&iop_chan->irq_tasklet, iop_adma_tasklet);
|
||||
|
||||
/* clear errors before enabling interrupts */
|
||||
iop_adma_device_clear_err_status(iop_chan);
|
||||
|
|
|
@ -1299,9 +1299,9 @@ static irqreturn_t idmac_interrupt(int irq, void *dev_id)
|
|||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
static void ipu_gc_tasklet(unsigned long arg)
|
||||
static void ipu_gc_tasklet(struct tasklet_struct *t)
|
||||
{
|
||||
struct ipu *ipu = (struct ipu *)arg;
|
||||
struct ipu *ipu = from_tasklet(ipu, t, tasklet);
|
||||
int i;
|
||||
|
||||
for (i = 0; i < IPU_CHANNELS_NUM; i++) {
|
||||
|
@ -1740,7 +1740,7 @@ static int __init ipu_probe(struct platform_device *pdev)
|
|||
if (ret < 0)
|
||||
goto err_idmac_init;
|
||||
|
||||
tasklet_init(&ipu_data.tasklet, ipu_gc_tasklet, (unsigned long)&ipu_data);
|
||||
tasklet_setup(&ipu_data.tasklet, ipu_gc_tasklet);
|
||||
|
||||
ipu_data.dev = &pdev->dev;
|
||||
|
||||
|
|
|
@ -297,9 +297,9 @@ static int k3_dma_start_txd(struct k3_dma_chan *c)
|
|||
return -EAGAIN;
|
||||
}
|
||||
|
||||
static void k3_dma_tasklet(unsigned long arg)
|
||||
static void k3_dma_tasklet(struct tasklet_struct *t)
|
||||
{
|
||||
struct k3_dma_dev *d = (struct k3_dma_dev *)arg;
|
||||
struct k3_dma_dev *d = from_tasklet(d, t, task);
|
||||
struct k3_dma_phy *p;
|
||||
struct k3_dma_chan *c, *cn;
|
||||
unsigned pch, pch_alloc = 0;
|
||||
|
@ -962,7 +962,7 @@ static int k3_dma_probe(struct platform_device *op)
|
|||
|
||||
spin_lock_init(&d->lock);
|
||||
INIT_LIST_HEAD(&d->chan_pending);
|
||||
tasklet_init(&d->task, k3_dma_tasklet, (unsigned long)d);
|
||||
tasklet_setup(&d->task, k3_dma_tasklet);
|
||||
platform_set_drvdata(op, d);
|
||||
dev_info(&op->dev, "initialized\n");
|
||||
|
||||
|
|
|
@ -356,9 +356,9 @@ static struct mtk_cqdma_vdesc
|
|||
return ret;
|
||||
}
|
||||
|
||||
static void mtk_cqdma_tasklet_cb(unsigned long data)
|
||||
static void mtk_cqdma_tasklet_cb(struct tasklet_struct *t)
|
||||
{
|
||||
struct mtk_cqdma_pchan *pc = (struct mtk_cqdma_pchan *)data;
|
||||
struct mtk_cqdma_pchan *pc = from_tasklet(pc, t, tasklet);
|
||||
struct mtk_cqdma_vdesc *cvd = NULL;
|
||||
unsigned long flags;
|
||||
|
||||
|
@ -878,8 +878,7 @@ static int mtk_cqdma_probe(struct platform_device *pdev)
|
|||
|
||||
/* initialize tasklet for each PC */
|
||||
for (i = 0; i < cqdma->dma_channels; ++i)
|
||||
tasklet_init(&cqdma->pc[i]->tasklet, mtk_cqdma_tasklet_cb,
|
||||
(unsigned long)cqdma->pc[i]);
|
||||
tasklet_setup(&cqdma->pc[i]->tasklet, mtk_cqdma_tasklet_cb);
|
||||
|
||||
dev_info(&pdev->dev, "MediaTek CQDMA driver registered\n");
|
||||
|
||||
|
|
|
@ -873,9 +873,9 @@ static void mmp_pdma_issue_pending(struct dma_chan *dchan)
|
|||
* Do call back
|
||||
* Start pending list
|
||||
*/
|
||||
static void dma_do_tasklet(unsigned long data)
|
||||
static void dma_do_tasklet(struct tasklet_struct *t)
|
||||
{
|
||||
struct mmp_pdma_chan *chan = (struct mmp_pdma_chan *)data;
|
||||
struct mmp_pdma_chan *chan = from_tasklet(chan, t, tasklet);
|
||||
struct mmp_pdma_desc_sw *desc, *_desc;
|
||||
LIST_HEAD(chain_cleanup);
|
||||
unsigned long flags;
|
||||
|
@ -993,7 +993,7 @@ static int mmp_pdma_chan_init(struct mmp_pdma_device *pdev, int idx, int irq)
|
|||
spin_lock_init(&chan->desc_lock);
|
||||
chan->dev = pdev->dev;
|
||||
chan->chan.device = &pdev->device;
|
||||
tasklet_init(&chan->tasklet, dma_do_tasklet, (unsigned long)chan);
|
||||
tasklet_setup(&chan->tasklet, dma_do_tasklet);
|
||||
INIT_LIST_HEAD(&chan->chain_pending);
|
||||
INIT_LIST_HEAD(&chan->chain_running);
|
||||
|
||||
|
|
|
@ -346,9 +346,9 @@ static irqreturn_t mmp_tdma_int_handler(int irq, void *dev_id)
|
|||
return IRQ_NONE;
|
||||
}
|
||||
|
||||
static void dma_do_tasklet(unsigned long data)
|
||||
static void dma_do_tasklet(struct tasklet_struct *t)
|
||||
{
|
||||
struct mmp_tdma_chan *tdmac = (struct mmp_tdma_chan *)data;
|
||||
struct mmp_tdma_chan *tdmac = from_tasklet(tdmac, t, tasklet);
|
||||
|
||||
dmaengine_desc_get_callback_invoke(&tdmac->desc, NULL);
|
||||
}
|
||||
|
@ -586,7 +586,7 @@ static int mmp_tdma_chan_init(struct mmp_tdma_device *tdev,
|
|||
tdmac->pool = pool;
|
||||
tdmac->status = DMA_COMPLETE;
|
||||
tdev->tdmac[tdmac->idx] = tdmac;
|
||||
tasklet_init(&tdmac->tasklet, dma_do_tasklet, (unsigned long)tdmac);
|
||||
tasklet_setup(&tdmac->tasklet, dma_do_tasklet);
|
||||
|
||||
/* add the channel to tdma_chan list */
|
||||
list_add_tail(&tdmac->chan.device_node,
|
||||
|
|
|
@ -414,9 +414,9 @@ static void mpc_dma_process_completed(struct mpc_dma *mdma)
|
|||
}
|
||||
|
||||
/* DMA Tasklet */
|
||||
static void mpc_dma_tasklet(unsigned long data)
|
||||
static void mpc_dma_tasklet(struct tasklet_struct *t)
|
||||
{
|
||||
struct mpc_dma *mdma = (void *)data;
|
||||
struct mpc_dma *mdma = from_tasklet(mdma, t, tasklet);
|
||||
unsigned long flags;
|
||||
uint es;
|
||||
|
||||
|
@ -1009,7 +1009,7 @@ static int mpc_dma_probe(struct platform_device *op)
|
|||
list_add_tail(&mchan->chan.device_node, &dma->channels);
|
||||
}
|
||||
|
||||
tasklet_init(&mdma->tasklet, mpc_dma_tasklet, (unsigned long)mdma);
|
||||
tasklet_setup(&mdma->tasklet, mpc_dma_tasklet);
|
||||
|
||||
/*
|
||||
* Configure DMA Engine:
|
||||
|
|
|
@ -336,9 +336,9 @@ static void mv_chan_slot_cleanup(struct mv_xor_chan *mv_chan)
|
|||
mv_chan->dmachan.completed_cookie = cookie;
|
||||
}
|
||||
|
||||
static void mv_xor_tasklet(unsigned long data)
|
||||
static void mv_xor_tasklet(struct tasklet_struct *t)
|
||||
{
|
||||
struct mv_xor_chan *chan = (struct mv_xor_chan *) data;
|
||||
struct mv_xor_chan *chan = from_tasklet(chan, t, irq_tasklet);
|
||||
|
||||
spin_lock(&chan->lock);
|
||||
mv_chan_slot_cleanup(chan);
|
||||
|
@ -1097,8 +1097,7 @@ mv_xor_channel_add(struct mv_xor_device *xordev,
|
|||
|
||||
mv_chan->mmr_base = xordev->xor_base;
|
||||
mv_chan->mmr_high_base = xordev->xor_high_base;
|
||||
tasklet_init(&mv_chan->irq_tasklet, mv_xor_tasklet, (unsigned long)
|
||||
mv_chan);
|
||||
tasklet_setup(&mv_chan->irq_tasklet, mv_xor_tasklet);
|
||||
|
||||
/* clear errors before enabling interrupts */
|
||||
mv_chan_clear_err_status(mv_chan);
|
||||
|
|
|
@ -553,9 +553,10 @@ int mv_xor_v2_get_pending_params(struct mv_xor_v2_device *xor_dev,
|
|||
/*
|
||||
* handle the descriptors after HW process
|
||||
*/
|
||||
static void mv_xor_v2_tasklet(unsigned long data)
|
||||
static void mv_xor_v2_tasklet(struct tasklet_struct *t)
|
||||
{
|
||||
struct mv_xor_v2_device *xor_dev = (struct mv_xor_v2_device *) data;
|
||||
struct mv_xor_v2_device *xor_dev = from_tasklet(xor_dev, t,
|
||||
irq_tasklet);
|
||||
int pending_ptr, num_of_pending, i;
|
||||
struct mv_xor_v2_sw_desc *next_pending_sw_desc = NULL;
|
||||
|
||||
|
@ -780,8 +781,7 @@ static int mv_xor_v2_probe(struct platform_device *pdev)
|
|||
if (ret)
|
||||
goto free_msi_irqs;
|
||||
|
||||
tasklet_init(&xor_dev->irq_tasklet, mv_xor_v2_tasklet,
|
||||
(unsigned long) xor_dev);
|
||||
tasklet_setup(&xor_dev->irq_tasklet, mv_xor_v2_tasklet);
|
||||
|
||||
xor_dev->desc_size = mv_xor_v2_set_desc_size(xor_dev);
|
||||
|
||||
|
|
|
@ -319,9 +319,9 @@ static dma_cookie_t mxs_dma_tx_submit(struct dma_async_tx_descriptor *tx)
|
|||
return dma_cookie_assign(tx);
|
||||
}
|
||||
|
||||
static void mxs_dma_tasklet(unsigned long data)
|
||||
static void mxs_dma_tasklet(struct tasklet_struct *t)
|
||||
{
|
||||
struct mxs_dma_chan *mxs_chan = (struct mxs_dma_chan *) data;
|
||||
struct mxs_dma_chan *mxs_chan = from_tasklet(mxs_chan, t, tasklet);
|
||||
|
||||
dmaengine_desc_get_callback_invoke(&mxs_chan->desc, NULL);
|
||||
}
|
||||
|
@ -811,8 +811,7 @@ static int __init mxs_dma_probe(struct platform_device *pdev)
|
|||
mxs_chan->chan.device = &mxs_dma->dma_device;
|
||||
dma_cookie_init(&mxs_chan->chan);
|
||||
|
||||
tasklet_init(&mxs_chan->tasklet, mxs_dma_tasklet,
|
||||
(unsigned long) mxs_chan);
|
||||
tasklet_setup(&mxs_chan->tasklet, mxs_dma_tasklet);
|
||||
|
||||
|
||||
/* Add the channel to mxs_chan list */
|
||||
|
|
|
@ -1113,9 +1113,9 @@ static struct dma_chan *nbpf_of_xlate(struct of_phandle_args *dma_spec,
|
|||
return dchan;
|
||||
}
|
||||
|
||||
static void nbpf_chan_tasklet(unsigned long data)
|
||||
static void nbpf_chan_tasklet(struct tasklet_struct *t)
|
||||
{
|
||||
struct nbpf_channel *chan = (struct nbpf_channel *)data;
|
||||
struct nbpf_channel *chan = from_tasklet(chan, t, tasklet);
|
||||
struct nbpf_desc *desc, *tmp;
|
||||
struct dmaengine_desc_callback cb;
|
||||
|
||||
|
@ -1260,7 +1260,7 @@ static int nbpf_chan_probe(struct nbpf_device *nbpf, int n)
|
|||
|
||||
snprintf(chan->name, sizeof(chan->name), "nbpf %d", n);
|
||||
|
||||
tasklet_init(&chan->tasklet, nbpf_chan_tasklet, (unsigned long)chan);
|
||||
tasklet_setup(&chan->tasklet, nbpf_chan_tasklet);
|
||||
ret = devm_request_irq(dma_dev->dev, chan->irq,
|
||||
nbpf_chan_irq, IRQF_SHARED,
|
||||
chan->name, chan);
|
||||
|
|
|
@ -670,9 +670,9 @@ static int pd_device_terminate_all(struct dma_chan *chan)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static void pdc_tasklet(unsigned long data)
|
||||
static void pdc_tasklet(struct tasklet_struct *t)
|
||||
{
|
||||
struct pch_dma_chan *pd_chan = (struct pch_dma_chan *)data;
|
||||
struct pch_dma_chan *pd_chan = from_tasklet(pd_chan, t, tasklet);
|
||||
unsigned long flags;
|
||||
|
||||
if (!pdc_is_idle(pd_chan)) {
|
||||
|
@ -882,8 +882,7 @@ static int pch_dma_probe(struct pci_dev *pdev,
|
|||
INIT_LIST_HEAD(&pd_chan->queue);
|
||||
INIT_LIST_HEAD(&pd_chan->free_list);
|
||||
|
||||
tasklet_init(&pd_chan->tasklet, pdc_tasklet,
|
||||
(unsigned long)pd_chan);
|
||||
tasklet_setup(&pd_chan->tasklet, pdc_tasklet);
|
||||
list_add_tail(&pd_chan->chan.device_node, &pd->dma.channels);
|
||||
}
|
||||
|
||||
|
|
|
@ -1573,9 +1573,9 @@ static void dma_pl330_rqcb(struct dma_pl330_desc *desc, enum pl330_op_err err)
|
|||
tasklet_schedule(&pch->task);
|
||||
}
|
||||
|
||||
static void pl330_dotask(unsigned long data)
|
||||
static void pl330_dotask(struct tasklet_struct *t)
|
||||
{
|
||||
struct pl330_dmac *pl330 = (struct pl330_dmac *) data;
|
||||
struct pl330_dmac *pl330 = from_tasklet(pl330, t, tasks);
|
||||
unsigned long flags;
|
||||
int i;
|
||||
|
||||
|
@ -1979,7 +1979,7 @@ static int pl330_add(struct pl330_dmac *pl330)
|
|||
return ret;
|
||||
}
|
||||
|
||||
tasklet_init(&pl330->tasks, pl330_dotask, (unsigned long) pl330);
|
||||
tasklet_setup(&pl330->tasks, pl330_dotask);
|
||||
|
||||
pl330->state = INIT;
|
||||
|
||||
|
@ -2062,9 +2062,9 @@ static inline void fill_queue(struct dma_pl330_chan *pch)
|
|||
}
|
||||
}
|
||||
|
||||
static void pl330_tasklet(unsigned long data)
|
||||
static void pl330_tasklet(struct tasklet_struct *t)
|
||||
{
|
||||
struct dma_pl330_chan *pch = (struct dma_pl330_chan *)data;
|
||||
struct dma_pl330_chan *pch = from_tasklet(pch, t, task);
|
||||
struct dma_pl330_desc *desc, *_dt;
|
||||
unsigned long flags;
|
||||
bool power_down = false;
|
||||
|
@ -2172,7 +2172,7 @@ static int pl330_alloc_chan_resources(struct dma_chan *chan)
|
|||
return -ENOMEM;
|
||||
}
|
||||
|
||||
tasklet_init(&pch->task, pl330_tasklet, (unsigned long) pch);
|
||||
tasklet_setup(&pch->task, pl330_tasklet);
|
||||
|
||||
spin_unlock_irqrestore(&pl330->lock, flags);
|
||||
|
||||
|
@ -2484,7 +2484,7 @@ static void pl330_issue_pending(struct dma_chan *chan)
|
|||
list_splice_tail_init(&pch->submitted_list, &pch->work_list);
|
||||
spin_unlock_irqrestore(&pch->lock, flags);
|
||||
|
||||
pl330_tasklet((unsigned long)pch);
|
||||
pl330_tasklet(&pch->task);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -241,9 +241,9 @@ static void plx_dma_stop(struct plx_dma_dev *plxdev)
|
|||
rcu_read_unlock();
|
||||
}
|
||||
|
||||
static void plx_dma_desc_task(unsigned long data)
|
||||
static void plx_dma_desc_task(struct tasklet_struct *t)
|
||||
{
|
||||
struct plx_dma_dev *plxdev = (void *)data;
|
||||
struct plx_dma_dev *plxdev = from_tasklet(plxdev, t, desc_task);
|
||||
|
||||
plx_dma_process_desc(plxdev);
|
||||
}
|
||||
|
@ -513,8 +513,7 @@ static int plx_dma_create(struct pci_dev *pdev)
|
|||
}
|
||||
|
||||
spin_lock_init(&plxdev->ring_lock);
|
||||
tasklet_init(&plxdev->desc_task, plx_dma_desc_task,
|
||||
(unsigned long)plxdev);
|
||||
tasklet_setup(&plxdev->desc_task, plx_dma_desc_task);
|
||||
|
||||
RCU_INIT_POINTER(plxdev->pdev, pdev);
|
||||
plxdev->bar = pcim_iomap_table(pdev)[0];
|
||||
|
|
|
@ -1660,9 +1660,9 @@ static void __ppc440spe_adma_slot_cleanup(struct ppc440spe_adma_chan *chan)
|
|||
/**
|
||||
* ppc440spe_adma_tasklet - clean up watch-dog initiator
|
||||
*/
|
||||
static void ppc440spe_adma_tasklet(unsigned long data)
|
||||
static void ppc440spe_adma_tasklet(struct tasklet_struct *t)
|
||||
{
|
||||
struct ppc440spe_adma_chan *chan = (struct ppc440spe_adma_chan *) data;
|
||||
struct ppc440spe_adma_chan *chan = from_tasklet(chan, t, irq_tasklet);
|
||||
|
||||
spin_lock_nested(&chan->lock, SINGLE_DEPTH_NESTING);
|
||||
__ppc440spe_adma_slot_cleanup(chan);
|
||||
|
@ -4141,8 +4141,7 @@ static int ppc440spe_adma_probe(struct platform_device *ofdev)
|
|||
chan->common.device = &adev->common;
|
||||
dma_cookie_init(&chan->common);
|
||||
list_add_tail(&chan->common.device_node, &adev->common.channels);
|
||||
tasklet_init(&chan->irq_tasklet, ppc440spe_adma_tasklet,
|
||||
(unsigned long)chan);
|
||||
tasklet_setup(&chan->irq_tasklet, ppc440spe_adma_tasklet);
|
||||
|
||||
/* allocate and map helper pages for async validation or
|
||||
* async_mult/async_sum_product operations on DMA0/1.
|
||||
|
|
|
@ -1074,9 +1074,9 @@ static void bam_start_dma(struct bam_chan *bchan)
|
|||
*
|
||||
* Sets up next DMA operation and then processes all completed transactions
|
||||
*/
|
||||
static void dma_tasklet(unsigned long data)
|
||||
static void dma_tasklet(struct tasklet_struct *t)
|
||||
{
|
||||
struct bam_device *bdev = (struct bam_device *)data;
|
||||
struct bam_device *bdev = from_tasklet(bdev, t, task);
|
||||
struct bam_chan *bchan;
|
||||
unsigned long flags;
|
||||
unsigned int i;
|
||||
|
@ -1292,7 +1292,7 @@ static int bam_dma_probe(struct platform_device *pdev)
|
|||
if (ret)
|
||||
goto err_disable_clk;
|
||||
|
||||
tasklet_init(&bdev->task, dma_tasklet, (unsigned long)bdev);
|
||||
tasklet_setup(&bdev->task, dma_tasklet);
|
||||
|
||||
bdev->channels = devm_kcalloc(bdev->dev, bdev->num_channels,
|
||||
sizeof(*bdev->channels), GFP_KERNEL);
|
||||
|
|
|
@ -224,9 +224,9 @@ static int hidma_chan_init(struct hidma_dev *dmadev, u32 dma_sig)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static void hidma_issue_task(unsigned long arg)
|
||||
static void hidma_issue_task(struct tasklet_struct *t)
|
||||
{
|
||||
struct hidma_dev *dmadev = (struct hidma_dev *)arg;
|
||||
struct hidma_dev *dmadev = from_tasklet(dmadev, t, task);
|
||||
|
||||
pm_runtime_get_sync(dmadev->ddev.dev);
|
||||
hidma_ll_start(dmadev->lldev);
|
||||
|
@ -885,7 +885,7 @@ static int hidma_probe(struct platform_device *pdev)
|
|||
goto uninit;
|
||||
|
||||
dmadev->irq = chirq;
|
||||
tasklet_init(&dmadev->task, hidma_issue_task, (unsigned long)dmadev);
|
||||
tasklet_setup(&dmadev->task, hidma_issue_task);
|
||||
hidma_debug_init(dmadev);
|
||||
hidma_sysfs_init(dmadev);
|
||||
dev_info(&pdev->dev, "HI-DMA engine driver registration complete\n");
|
||||
|
|
|
@ -173,9 +173,9 @@ int hidma_ll_request(struct hidma_lldev *lldev, u32 sig, const char *dev_name,
|
|||
/*
|
||||
* Multiple TREs may be queued and waiting in the pending queue.
|
||||
*/
|
||||
static void hidma_ll_tre_complete(unsigned long arg)
|
||||
static void hidma_ll_tre_complete(struct tasklet_struct *t)
|
||||
{
|
||||
struct hidma_lldev *lldev = (struct hidma_lldev *)arg;
|
||||
struct hidma_lldev *lldev = from_tasklet(lldev, t, task);
|
||||
struct hidma_tre *tre;
|
||||
|
||||
while (kfifo_out(&lldev->handoff_fifo, &tre, 1)) {
|
||||
|
@ -792,7 +792,7 @@ struct hidma_lldev *hidma_ll_init(struct device *dev, u32 nr_tres,
|
|||
return NULL;
|
||||
|
||||
spin_lock_init(&lldev->lock);
|
||||
tasklet_init(&lldev->task, hidma_ll_tre_complete, (unsigned long)lldev);
|
||||
tasklet_setup(&lldev->task, hidma_ll_tre_complete);
|
||||
lldev->initialized = 1;
|
||||
writel(ENABLE_IRQS, lldev->evca + HIDMA_EVCA_IRQ_EN_REG);
|
||||
return lldev;
|
||||
|
|
|
@ -323,9 +323,9 @@ static void sa11x0_dma_start_txd(struct sa11x0_dma_chan *c)
|
|||
}
|
||||
}
|
||||
|
||||
static void sa11x0_dma_tasklet(unsigned long arg)
|
||||
static void sa11x0_dma_tasklet(struct tasklet_struct *t)
|
||||
{
|
||||
struct sa11x0_dma_dev *d = (struct sa11x0_dma_dev *)arg;
|
||||
struct sa11x0_dma_dev *d = from_tasklet(d, t, task);
|
||||
struct sa11x0_dma_phy *p;
|
||||
struct sa11x0_dma_chan *c;
|
||||
unsigned pch, pch_alloc = 0;
|
||||
|
@ -928,7 +928,7 @@ static int sa11x0_dma_probe(struct platform_device *pdev)
|
|||
goto err_ioremap;
|
||||
}
|
||||
|
||||
tasklet_init(&d->task, sa11x0_dma_tasklet, (unsigned long)d);
|
||||
tasklet_setup(&d->task, sa11x0_dma_tasklet);
|
||||
|
||||
for (i = 0; i < NR_PHY_CHAN; i++) {
|
||||
struct sa11x0_dma_phy *p = &d->phy[i];
|
||||
|
|
|
@ -393,9 +393,9 @@ static void sirfsoc_dma_process_completed(struct sirfsoc_dma *sdma)
|
|||
}
|
||||
|
||||
/* DMA Tasklet */
|
||||
static void sirfsoc_dma_tasklet(unsigned long data)
|
||||
static void sirfsoc_dma_tasklet(struct tasklet_struct *t)
|
||||
{
|
||||
struct sirfsoc_dma *sdma = (void *)data;
|
||||
struct sirfsoc_dma *sdma = from_tasklet(sdma, t, tasklet);
|
||||
|
||||
sirfsoc_dma_process_completed(sdma);
|
||||
}
|
||||
|
@ -938,7 +938,7 @@ static int sirfsoc_dma_probe(struct platform_device *op)
|
|||
list_add_tail(&schan->chan.device_node, &dma->channels);
|
||||
}
|
||||
|
||||
tasklet_init(&sdma->tasklet, sirfsoc_dma_tasklet, (unsigned long)sdma);
|
||||
tasklet_setup(&sdma->tasklet, sirfsoc_dma_tasklet);
|
||||
|
||||
/* Register DMA engine */
|
||||
dev_set_drvdata(dev, sdma);
|
||||
|
|
|
@ -1571,9 +1571,9 @@ static void dma_tc_handle(struct d40_chan *d40c)
|
|||
|
||||
}
|
||||
|
||||
static void dma_tasklet(unsigned long data)
|
||||
static void dma_tasklet(struct tasklet_struct *t)
|
||||
{
|
||||
struct d40_chan *d40c = (struct d40_chan *) data;
|
||||
struct d40_chan *d40c = from_tasklet(d40c, t, tasklet);
|
||||
struct d40_desc *d40d;
|
||||
unsigned long flags;
|
||||
bool callback_active;
|
||||
|
@ -2804,8 +2804,7 @@ static void __init d40_chan_init(struct d40_base *base, struct dma_device *dma,
|
|||
INIT_LIST_HEAD(&d40c->client);
|
||||
INIT_LIST_HEAD(&d40c->prepare_queue);
|
||||
|
||||
tasklet_init(&d40c->tasklet, dma_tasklet,
|
||||
(unsigned long) d40c);
|
||||
tasklet_setup(&d40c->tasklet, dma_tasklet);
|
||||
|
||||
list_add_tail(&d40c->chan.device_node,
|
||||
&dma->channels);
|
||||
|
|
|
@ -467,9 +467,9 @@ static int sun6i_dma_start_desc(struct sun6i_vchan *vchan)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static void sun6i_dma_tasklet(unsigned long data)
|
||||
static void sun6i_dma_tasklet(struct tasklet_struct *t)
|
||||
{
|
||||
struct sun6i_dma_dev *sdev = (struct sun6i_dma_dev *)data;
|
||||
struct sun6i_dma_dev *sdev = from_tasklet(sdev, t, task);
|
||||
struct sun6i_vchan *vchan;
|
||||
struct sun6i_pchan *pchan;
|
||||
unsigned int pchan_alloc = 0;
|
||||
|
@ -1343,7 +1343,7 @@ static int sun6i_dma_probe(struct platform_device *pdev)
|
|||
if (!sdc->vchans)
|
||||
return -ENOMEM;
|
||||
|
||||
tasklet_init(&sdc->task, sun6i_dma_tasklet, (unsigned long)sdc);
|
||||
tasklet_setup(&sdc->task, sun6i_dma_tasklet);
|
||||
|
||||
for (i = 0; i < sdc->num_pchans; i++) {
|
||||
struct sun6i_pchan *pchan = &sdc->pchans[i];
|
||||
|
|
|
@ -644,9 +644,9 @@ static void handle_cont_sngl_cycle_dma_done(struct tegra_dma_channel *tdc,
|
|||
}
|
||||
}
|
||||
|
||||
static void tegra_dma_tasklet(unsigned long data)
|
||||
static void tegra_dma_tasklet(struct tasklet_struct *t)
|
||||
{
|
||||
struct tegra_dma_channel *tdc = (struct tegra_dma_channel *)data;
|
||||
struct tegra_dma_channel *tdc = from_tasklet(tdc, t, tasklet);
|
||||
struct dmaengine_desc_callback cb;
|
||||
struct tegra_dma_desc *dma_desc;
|
||||
unsigned int cb_count;
|
||||
|
@ -1523,8 +1523,7 @@ static int tegra_dma_probe(struct platform_device *pdev)
|
|||
tdc->id = i;
|
||||
tdc->slave_id = TEGRA_APBDMA_SLAVE_ID_INVALID;
|
||||
|
||||
tasklet_init(&tdc->tasklet, tegra_dma_tasklet,
|
||||
(unsigned long)tdc);
|
||||
tasklet_setup(&tdc->tasklet, tegra_dma_tasklet);
|
||||
spin_lock_init(&tdc->lock);
|
||||
init_waitqueue_head(&tdc->wq);
|
||||
|
||||
|
|
|
@ -2909,9 +2909,9 @@ static void udma_desc_pre_callback(struct virt_dma_chan *vc,
|
|||
* This tasklet handles the completion of a DMA descriptor by
|
||||
* calling its callback and freeing it.
|
||||
*/
|
||||
static void udma_vchan_complete(unsigned long arg)
|
||||
static void udma_vchan_complete(struct tasklet_struct *t)
|
||||
{
|
||||
struct virt_dma_chan *vc = (struct virt_dma_chan *)arg;
|
||||
struct virt_dma_chan *vc = from_tasklet(vc, t, task);
|
||||
struct virt_dma_desc *vd, *_vd;
|
||||
struct dmaengine_desc_callback cb;
|
||||
LIST_HEAD(head);
|
||||
|
@ -3667,8 +3667,7 @@ static int udma_probe(struct platform_device *pdev)
|
|||
|
||||
vchan_init(&uc->vc, &ud->ddev);
|
||||
/* Use custom vchan completion handling */
|
||||
tasklet_init(&uc->vc.task, udma_vchan_complete,
|
||||
(unsigned long)&uc->vc);
|
||||
tasklet_setup(&uc->vc.task, udma_vchan_complete);
|
||||
init_completion(&uc->teardown_completed);
|
||||
INIT_DELAYED_WORK(&uc->tx_drain.work, udma_check_tx_completion);
|
||||
}
|
||||
|
|
|
@ -563,9 +563,9 @@ static int td_terminate_all(struct dma_chan *chan)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static void td_tasklet(unsigned long data)
|
||||
static void td_tasklet(struct tasklet_struct *t)
|
||||
{
|
||||
struct timb_dma *td = (struct timb_dma *)data;
|
||||
struct timb_dma *td = from_tasklet(td, t, tasklet);
|
||||
u32 isr;
|
||||
u32 ipr;
|
||||
u32 ier;
|
||||
|
@ -658,7 +658,7 @@ static int td_probe(struct platform_device *pdev)
|
|||
iowrite32(0x0, td->membase + TIMBDMA_IER);
|
||||
iowrite32(0xFFFFFFFF, td->membase + TIMBDMA_ISR);
|
||||
|
||||
tasklet_init(&td->tasklet, td_tasklet, (unsigned long)td);
|
||||
tasklet_setup(&td->tasklet, td_tasklet);
|
||||
|
||||
err = request_irq(irq, td_irq, IRQF_SHARED, DRIVER_NAME, td);
|
||||
if (err) {
|
||||
|
|
|
@ -601,13 +601,13 @@ scan_done:
|
|||
}
|
||||
}
|
||||
|
||||
static void txx9dmac_chan_tasklet(unsigned long data)
|
||||
static void txx9dmac_chan_tasklet(struct tasklet_struct *t)
|
||||
{
|
||||
int irq;
|
||||
u32 csr;
|
||||
struct txx9dmac_chan *dc;
|
||||
|
||||
dc = (struct txx9dmac_chan *)data;
|
||||
dc = from_tasklet(dc, t, tasklet);
|
||||
csr = channel_readl(dc, CSR);
|
||||
dev_vdbg(chan2dev(&dc->chan), "tasklet: status=%x\n", csr);
|
||||
|
||||
|
@ -638,13 +638,13 @@ static irqreturn_t txx9dmac_chan_interrupt(int irq, void *dev_id)
|
|||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
static void txx9dmac_tasklet(unsigned long data)
|
||||
static void txx9dmac_tasklet(struct tasklet_struct *t)
|
||||
{
|
||||
int irq;
|
||||
u32 csr;
|
||||
struct txx9dmac_chan *dc;
|
||||
|
||||
struct txx9dmac_dev *ddev = (struct txx9dmac_dev *)data;
|
||||
struct txx9dmac_dev *ddev = from_tasklet(ddev, t, tasklet);
|
||||
u32 mcr;
|
||||
int i;
|
||||
|
||||
|
@ -1113,8 +1113,7 @@ static int __init txx9dmac_chan_probe(struct platform_device *pdev)
|
|||
irq = platform_get_irq(pdev, 0);
|
||||
if (irq < 0)
|
||||
return irq;
|
||||
tasklet_init(&dc->tasklet, txx9dmac_chan_tasklet,
|
||||
(unsigned long)dc);
|
||||
tasklet_setup(&dc->tasklet, txx9dmac_chan_tasklet);
|
||||
dc->irq = irq;
|
||||
err = devm_request_irq(&pdev->dev, dc->irq,
|
||||
txx9dmac_chan_interrupt, 0, dev_name(&pdev->dev), dc);
|
||||
|
@ -1200,8 +1199,7 @@ static int __init txx9dmac_probe(struct platform_device *pdev)
|
|||
|
||||
ddev->irq = platform_get_irq(pdev, 0);
|
||||
if (ddev->irq >= 0) {
|
||||
tasklet_init(&ddev->tasklet, txx9dmac_tasklet,
|
||||
(unsigned long)ddev);
|
||||
tasklet_setup(&ddev->tasklet, txx9dmac_tasklet);
|
||||
err = devm_request_irq(&pdev->dev, ddev->irq,
|
||||
txx9dmac_interrupt, 0, dev_name(&pdev->dev), ddev);
|
||||
if (err)
|
||||
|
|
|
@ -80,9 +80,9 @@ EXPORT_SYMBOL_GPL(vchan_find_desc);
|
|||
* This tasklet handles the completion of a DMA descriptor by
|
||||
* calling its callback and freeing it.
|
||||
*/
|
||||
static void vchan_complete(unsigned long arg)
|
||||
static void vchan_complete(struct tasklet_struct *t)
|
||||
{
|
||||
struct virt_dma_chan *vc = (struct virt_dma_chan *)arg;
|
||||
struct virt_dma_chan *vc = from_tasklet(vc, t, task);
|
||||
struct virt_dma_desc *vd, *_vd;
|
||||
struct dmaengine_desc_callback cb;
|
||||
LIST_HEAD(head);
|
||||
|
@ -131,7 +131,7 @@ void vchan_init(struct virt_dma_chan *vc, struct dma_device *dmadev)
|
|||
INIT_LIST_HEAD(&vc->desc_completed);
|
||||
INIT_LIST_HEAD(&vc->desc_terminated);
|
||||
|
||||
tasklet_init(&vc->task, vchan_complete, (unsigned long)vc);
|
||||
tasklet_setup(&vc->task, vchan_complete);
|
||||
|
||||
vc->chan.device = dmadev;
|
||||
list_add_tail(&vc->chan.device_node, &dmadev->channels);
|
||||
|
|
|
@ -975,9 +975,9 @@ static enum dma_status xgene_dma_tx_status(struct dma_chan *dchan,
|
|||
return dma_cookie_status(dchan, cookie, txstate);
|
||||
}
|
||||
|
||||
static void xgene_dma_tasklet_cb(unsigned long data)
|
||||
static void xgene_dma_tasklet_cb(struct tasklet_struct *t)
|
||||
{
|
||||
struct xgene_dma_chan *chan = (struct xgene_dma_chan *)data;
|
||||
struct xgene_dma_chan *chan = from_tasklet(chan, t, tasklet);
|
||||
|
||||
/* Run all cleanup for descriptors which have been completed */
|
||||
xgene_dma_cleanup_descriptors(chan);
|
||||
|
@ -1539,8 +1539,7 @@ static int xgene_dma_async_register(struct xgene_dma *pdma, int id)
|
|||
INIT_LIST_HEAD(&chan->ld_pending);
|
||||
INIT_LIST_HEAD(&chan->ld_running);
|
||||
INIT_LIST_HEAD(&chan->ld_completed);
|
||||
tasklet_init(&chan->tasklet, xgene_dma_tasklet_cb,
|
||||
(unsigned long)chan);
|
||||
tasklet_setup(&chan->tasklet, xgene_dma_tasklet_cb);
|
||||
|
||||
chan->pending = 0;
|
||||
chan->desc_pool = NULL;
|
||||
|
|
|
@ -1046,9 +1046,9 @@ static void xilinx_dma_chan_desc_cleanup(struct xilinx_dma_chan *chan)
|
|||
* xilinx_dma_do_tasklet - Schedule completion tasklet
|
||||
* @data: Pointer to the Xilinx DMA channel structure
|
||||
*/
|
||||
static void xilinx_dma_do_tasklet(unsigned long data)
|
||||
static void xilinx_dma_do_tasklet(struct tasklet_struct *t)
|
||||
{
|
||||
struct xilinx_dma_chan *chan = (struct xilinx_dma_chan *)data;
|
||||
struct xilinx_dma_chan *chan = from_tasklet(chan, t, tasklet);
|
||||
|
||||
xilinx_dma_chan_desc_cleanup(chan);
|
||||
}
|
||||
|
@ -2846,8 +2846,7 @@ static int xilinx_dma_chan_probe(struct xilinx_dma_device *xdev,
|
|||
}
|
||||
|
||||
/* Initialize the tasklet */
|
||||
tasklet_init(&chan->tasklet, xilinx_dma_do_tasklet,
|
||||
(unsigned long)chan);
|
||||
tasklet_setup(&chan->tasklet, xilinx_dma_do_tasklet);
|
||||
|
||||
/*
|
||||
* Initialize the DMA channel and add it to the DMA engine channels
|
||||
|
|
|
@ -744,9 +744,9 @@ static irqreturn_t zynqmp_dma_irq_handler(int irq, void *data)
|
|||
* zynqmp_dma_do_tasklet - Schedule completion tasklet
|
||||
* @data: Pointer to the ZynqMP DMA channel structure
|
||||
*/
|
||||
static void zynqmp_dma_do_tasklet(unsigned long data)
|
||||
static void zynqmp_dma_do_tasklet(struct tasklet_struct *t)
|
||||
{
|
||||
struct zynqmp_dma_chan *chan = (struct zynqmp_dma_chan *)data;
|
||||
struct zynqmp_dma_chan *chan = from_tasklet(chan, t, tasklet);
|
||||
u32 count;
|
||||
unsigned long irqflags;
|
||||
|
||||
|
@ -908,7 +908,7 @@ static int zynqmp_dma_chan_probe(struct zynqmp_dma_device *zdev,
|
|||
|
||||
chan->is_dmacoherent = of_property_read_bool(node, "dma-coherent");
|
||||
zdev->chan = chan;
|
||||
tasklet_init(&chan->tasklet, zynqmp_dma_do_tasklet, (ulong)chan);
|
||||
tasklet_setup(&chan->tasklet, zynqmp_dma_do_tasklet);
|
||||
spin_lock_init(&chan->lock);
|
||||
INIT_LIST_HEAD(&chan->active_list);
|
||||
INIT_LIST_HEAD(&chan->pending_list);
|
||||
|
|
Loading…
Reference in New Issue