Skip to content

Commit a841592

Browse files
committed
Merge branch 'topic/tasklet' into next
2 parents da75ba2 + 86ae924 commit a841592

42 files changed

Lines changed: 131 additions & 151 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

drivers/dma/altera-msgdma.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -680,9 +680,9 @@ static int msgdma_alloc_chan_resources(struct dma_chan *dchan)
680680
* msgdma_tasklet - Schedule completion tasklet
681681
* @data: Pointer to the Altera sSGDMA channel structure
682682
*/
683-
static void msgdma_tasklet(unsigned long data)
683+
static void msgdma_tasklet(struct tasklet_struct *t)
684684
{
685-
struct msgdma_device *mdev = (struct msgdma_device *)data;
685+
struct msgdma_device *mdev = from_tasklet(mdev, t, irq_tasklet);
686686
u32 count;
687687
u32 __maybe_unused size;
688688
u32 __maybe_unused status;
@@ -830,7 +830,7 @@ static int msgdma_probe(struct platform_device *pdev)
830830
if (ret)
831831
return ret;
832832

833-
tasklet_init(&mdev->irq_tasklet, msgdma_tasklet, (unsigned long)mdev);
833+
tasklet_setup(&mdev->irq_tasklet, msgdma_tasklet);
834834

835835
dma_cookie_init(&mdev->dmachan);
836836

drivers/dma/at_hdmac.c

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -598,9 +598,9 @@ static void atc_handle_cyclic(struct at_dma_chan *atchan)
598598

599599
/*-- IRQ & Tasklet ---------------------------------------------------*/
600600

601-
static void atc_tasklet(unsigned long data)
601+
static void atc_tasklet(struct tasklet_struct *t)
602602
{
603-
struct at_dma_chan *atchan = (struct at_dma_chan *)data;
603+
struct at_dma_chan *atchan = from_tasklet(atchan, t, tasklet);
604604

605605
if (test_and_clear_bit(ATC_IS_ERROR, &atchan->status))
606606
return atc_handle_error(atchan);
@@ -1892,8 +1892,7 @@ static int __init at_dma_probe(struct platform_device *pdev)
18921892
INIT_LIST_HEAD(&atchan->queue);
18931893
INIT_LIST_HEAD(&atchan->free_list);
18941894

1895-
tasklet_init(&atchan->tasklet, atc_tasklet,
1896-
(unsigned long)atchan);
1895+
tasklet_setup(&atchan->tasklet, atc_tasklet);
18971896
atc_enable_chan_irq(atdma, i);
18981897
}
18991898

drivers/dma/at_xdmac.c

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1613,9 +1613,9 @@ static void at_xdmac_handle_error(struct at_xdmac_chan *atchan)
16131613
/* Then continue with usual descriptor management */
16141614
}
16151615

1616-
static void at_xdmac_tasklet(unsigned long data)
1616+
static void at_xdmac_tasklet(struct tasklet_struct *t)
16171617
{
1618-
struct at_xdmac_chan *atchan = (struct at_xdmac_chan *)data;
1618+
struct at_xdmac_chan *atchan = from_tasklet(atchan, t, tasklet);
16191619
struct at_xdmac_desc *desc;
16201620
u32 error_mask;
16211621

@@ -2063,8 +2063,7 @@ static int at_xdmac_probe(struct platform_device *pdev)
20632063
spin_lock_init(&atchan->lock);
20642064
INIT_LIST_HEAD(&atchan->xfers_list);
20652065
INIT_LIST_HEAD(&atchan->free_descs_list);
2066-
tasklet_init(&atchan->tasklet, at_xdmac_tasklet,
2067-
(unsigned long)atchan);
2066+
tasklet_setup(&atchan->tasklet, at_xdmac_tasklet);
20682067

20692068
/* Clear pending interrupts. */
20702069
while (at_xdmac_chan_read(atchan, AT_XDMAC_CIS))

drivers/dma/coh901318.c

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1868,9 +1868,9 @@ static struct coh901318_desc *coh901318_queue_start(struct coh901318_chan *cohc)
18681868
* This tasklet is called from the interrupt handler to
18691869
* handle each descriptor (DMA job) that is sent to a channel.
18701870
*/
1871-
static void dma_tasklet(unsigned long data)
1871+
static void dma_tasklet(struct tasklet_struct *t)
18721872
{
1873-
struct coh901318_chan *cohc = (struct coh901318_chan *) data;
1873+
struct coh901318_chan *cohc = from_tasklet(cohc, t, tasklet);
18741874
struct coh901318_desc *cohd_fin;
18751875
unsigned long flags;
18761876
struct dmaengine_desc_callback cb;
@@ -2615,8 +2615,7 @@ static void coh901318_base_init(struct dma_device *dma, const int *pick_chans,
26152615
INIT_LIST_HEAD(&cohc->active);
26162616
INIT_LIST_HEAD(&cohc->queue);
26172617

2618-
tasklet_init(&cohc->tasklet, dma_tasklet,
2619-
(unsigned long) cohc);
2618+
tasklet_setup(&cohc->tasklet, dma_tasklet);
26202619

26212620
list_add_tail(&cohc->chan.device_node,
26222621
&dma->channels);

drivers/dma/dw/core.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -463,9 +463,9 @@ static void dwc_handle_error(struct dw_dma *dw, struct dw_dma_chan *dwc)
463463
dwc_descriptor_complete(dwc, bad_desc, true);
464464
}
465465

466-
static void dw_dma_tasklet(unsigned long data)
466+
static void dw_dma_tasklet(struct tasklet_struct *t)
467467
{
468-
struct dw_dma *dw = (struct dw_dma *)data;
468+
struct dw_dma *dw = from_tasklet(dw, t, tasklet);
469469
struct dw_dma_chan *dwc;
470470
u32 status_xfer;
471471
u32 status_err;
@@ -1142,7 +1142,7 @@ int do_dma_probe(struct dw_dma_chip *chip)
11421142
goto err_pdata;
11431143
}
11441144

1145-
tasklet_init(&dw->tasklet, dw_dma_tasklet, (unsigned long)dw);
1145+
tasklet_setup(&dw->tasklet, dw_dma_tasklet);
11461146

11471147
err = request_irq(chip->irq, dw_dma_interrupt, IRQF_SHARED,
11481148
dw->name, dw);

drivers/dma/ep93xx_dma.c

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -745,9 +745,9 @@ static void ep93xx_dma_advance_work(struct ep93xx_dma_chan *edmac)
745745
spin_unlock_irqrestore(&edmac->lock, flags);
746746
}
747747

748-
static void ep93xx_dma_tasklet(unsigned long data)
748+
static void ep93xx_dma_tasklet(struct tasklet_struct *t)
749749
{
750-
struct ep93xx_dma_chan *edmac = (struct ep93xx_dma_chan *)data;
750+
struct ep93xx_dma_chan *edmac = from_tasklet(edmac, t, tasklet);
751751
struct ep93xx_dma_desc *desc, *d;
752752
struct dmaengine_desc_callback cb;
753753
LIST_HEAD(list);
@@ -1353,8 +1353,7 @@ static int __init ep93xx_dma_probe(struct platform_device *pdev)
13531353
INIT_LIST_HEAD(&edmac->active);
13541354
INIT_LIST_HEAD(&edmac->queue);
13551355
INIT_LIST_HEAD(&edmac->free_list);
1356-
tasklet_init(&edmac->tasklet, ep93xx_dma_tasklet,
1357-
(unsigned long)edmac);
1356+
tasklet_setup(&edmac->tasklet, ep93xx_dma_tasklet);
13581357

13591358
list_add_tail(&edmac->chan.device_node,
13601359
&dma_dev->channels);

drivers/dma/fsl_raid.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -154,9 +154,9 @@ static void fsl_re_cleanup_descs(struct fsl_re_chan *re_chan)
154154
fsl_re_issue_pending(&re_chan->chan);
155155
}
156156

157-
static void fsl_re_dequeue(unsigned long data)
157+
static void fsl_re_dequeue(struct tasklet_struct *t)
158158
{
159-
struct fsl_re_chan *re_chan;
159+
struct fsl_re_chan *re_chan = from_tasklet(re_chan, t, irqtask);
160160
struct fsl_re_desc *desc, *_desc;
161161
struct fsl_re_hw_desc *hwdesc;
162162
unsigned long flags;
@@ -671,7 +671,7 @@ static int fsl_re_chan_probe(struct platform_device *ofdev,
671671
snprintf(chan->name, sizeof(chan->name), "re_jr%02d", q);
672672

673673
chandev = &chan_ofdev->dev;
674-
tasklet_init(&chan->irqtask, fsl_re_dequeue, (unsigned long)chandev);
674+
tasklet_setup(&chan->irqtask, fsl_re_dequeue);
675675

676676
ret = request_irq(chan->irq, fsl_re_isr, 0, chan->name, chandev);
677677
if (ret) {

drivers/dma/fsldma.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -976,9 +976,9 @@ static irqreturn_t fsldma_chan_irq(int irq, void *data)
976976
return IRQ_HANDLED;
977977
}
978978

979-
static void dma_do_tasklet(unsigned long data)
979+
static void dma_do_tasklet(struct tasklet_struct *t)
980980
{
981-
struct fsldma_chan *chan = (struct fsldma_chan *)data;
981+
struct fsldma_chan *chan = from_tasklet(chan, t, tasklet);
982982

983983
chan_dbg(chan, "tasklet entry\n");
984984

@@ -1151,7 +1151,7 @@ static int fsl_dma_chan_probe(struct fsldma_device *fdev,
11511151
}
11521152

11531153
fdev->chan[chan->id] = chan;
1154-
tasklet_init(&chan->tasklet, dma_do_tasklet, (unsigned long)chan);
1154+
tasklet_setup(&chan->tasklet, dma_do_tasklet);
11551155
snprintf(chan->name, sizeof(chan->name), "chan%d", chan->id);
11561156

11571157
/* Initialize the channel */

drivers/dma/imx-dma.c

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -612,9 +612,9 @@ static int imxdma_xfer_desc(struct imxdma_desc *d)
612612
return 0;
613613
}
614614

615-
static void imxdma_tasklet(unsigned long data)
615+
static void imxdma_tasklet(struct tasklet_struct *t)
616616
{
617-
struct imxdma_channel *imxdmac = (void *)data;
617+
struct imxdma_channel *imxdmac = from_tasklet(imxdmac, t, dma_tasklet);
618618
struct imxdma_engine *imxdma = imxdmac->imxdma;
619619
struct imxdma_desc *desc, *next_desc;
620620
unsigned long flags;
@@ -1168,8 +1168,7 @@ static int __init imxdma_probe(struct platform_device *pdev)
11681168
INIT_LIST_HEAD(&imxdmac->ld_free);
11691169
INIT_LIST_HEAD(&imxdmac->ld_active);
11701170

1171-
tasklet_init(&imxdmac->dma_tasklet, imxdma_tasklet,
1172-
(unsigned long)imxdmac);
1171+
tasklet_setup(&imxdmac->dma_tasklet, imxdma_tasklet);
11731172
imxdmac->chan.device = &imxdma->dma_device;
11741173
dma_cookie_init(&imxdmac->chan);
11751174
imxdmac->channel = i;

drivers/dma/ioat/dma.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ void ioat_stop(struct ioatdma_chan *ioat_chan)
165165
tasklet_kill(&ioat_chan->cleanup_task);
166166

167167
/* final cleanup now that everything is quiesced and can't re-arm */
168-
ioat_cleanup_event((unsigned long)&ioat_chan->dma_chan);
168+
ioat_cleanup_event(&ioat_chan->cleanup_task);
169169
}
170170

171171
static void __ioat_issue_pending(struct ioatdma_chan *ioat_chan)
@@ -690,9 +690,9 @@ static void ioat_cleanup(struct ioatdma_chan *ioat_chan)
690690
spin_unlock_bh(&ioat_chan->cleanup_lock);
691691
}
692692

693-
void ioat_cleanup_event(unsigned long data)
693+
void ioat_cleanup_event(struct tasklet_struct *t)
694694
{
695-
struct ioatdma_chan *ioat_chan = to_ioat_chan((void *)data);
695+
struct ioatdma_chan *ioat_chan = from_tasklet(ioat_chan, t, cleanup_task);
696696

697697
ioat_cleanup(ioat_chan);
698698
if (!test_bit(IOAT_RUN, &ioat_chan->state))

0 commit comments

Comments
 (0)