In preparation for unconditionally passing the struct tasklet_struct pointer to all tasklet callbacks, switch to using the new tasklet_setup() and from_tasklet() to pass the tasklet pointer explicitly. Signed-off-by: Romain Perier <romain.perier@xxxxxxxxx> Signed-off-by: Allen Pais <allen.lkml@xxxxxxxxx> --- drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c b/drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c index 5baada4f65e5..dbe7788083a4 100644 --- a/drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c +++ b/drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c @@ -77,9 +77,9 @@ static void c8sectpfe_timer_interrupt(struct timer_list *t) add_timer(&fei->timer); } -static void channel_swdemux_tsklet(unsigned long data) +static void channel_swdemux_tsklet(struct tasklet_struct *t) { - struct channel_info *channel = (struct channel_info *)data; + struct channel_info *channel = from_tasklet(channel, t, tsklet); struct c8sectpfei *fei; unsigned long wp, rp; int pos, num_packets, n, size; @@ -208,8 +208,7 @@ static int c8sectpfe_start_feed(struct dvb_demux_feed *dvbdmxfeed) dev_dbg(fei->dev, "Starting channel=%p\n", channel); - tasklet_init(&channel->tsklet, channel_swdemux_tsklet, - (unsigned long) channel); + tasklet_setup(&channel->tsklet, channel_swdemux_tsklet); /* Reset the internal inputblock sram pointers */ writel(channel->fifo, @@ -638,8 +637,7 @@ static int configure_memdma_and_inputblock(struct c8sectpfei *fei, writel(tsin->back_buffer_busaddr, tsin->irec + DMA_PRDS_BUSRP_TP(0)); /* initialize tasklet */ - tasklet_init(&tsin->tsklet, channel_swdemux_tsklet, - (unsigned long) tsin); + tasklet_setup(&tsin->tsklet, channel_swdemux_tsklet); return 0; -- 2.17.1