hc
2024-01-03 2f7c68cb55ecb7331f2381deb497c27155f32faf
kernel/drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c
....@@ -77,9 +77,9 @@
7777 add_timer(&fei->timer);
7878 }
7979
80
-static void channel_swdemux_tsklet(unsigned long data)
80
+static void channel_swdemux_tsklet(struct tasklet_struct *t)
8181 {
82
- struct channel_info *channel = (struct channel_info *)data;
82
+ struct channel_info *channel = from_tasklet(channel, t, tsklet);
8383 struct c8sectpfei *fei;
8484 unsigned long wp, rp;
8585 int pos, num_packets, n, size;
....@@ -208,8 +208,7 @@
208208
209209 dev_dbg(fei->dev, "Starting channel=%p\n", channel);
210210
211
- tasklet_init(&channel->tsklet, channel_swdemux_tsklet,
212
- (unsigned long) channel);
211
+ tasklet_setup(&channel->tsklet, channel_swdemux_tsklet);
213212
214213 /* Reset the internal inputblock sram pointers */
215214 writel(channel->fifo,
....@@ -638,8 +637,7 @@
638637 writel(tsin->back_buffer_busaddr, tsin->irec + DMA_PRDS_BUSRP_TP(0));
639638
640639 /* initialize tasklet */
641
- tasklet_init(&tsin->tsklet, channel_swdemux_tsklet,
642
- (unsigned long) tsin);
640
+ tasklet_setup(&tsin->tsklet, channel_swdemux_tsklet);
643641
644642 return 0;
645643
....@@ -693,16 +691,12 @@
693691 fei->sram_size = resource_size(res);
694692
695693 fei->idle_irq = platform_get_irq_byname(pdev, "c8sectpfe-idle-irq");
696
- if (fei->idle_irq < 0) {
697
- dev_err(dev, "Can't get c8sectpfe-idle-irq\n");
694
+ if (fei->idle_irq < 0)
698695 return fei->idle_irq;
699
- }
700696
701697 fei->error_irq = platform_get_irq_byname(pdev, "c8sectpfe-error-irq");
702
- if (fei->error_irq < 0) {
703
- dev_err(dev, "Can't get c8sectpfe-error-irq\n");
698
+ if (fei->error_irq < 0)
704699 return fei->error_irq;
705
- }
706700
707701 platform_set_drvdata(pdev, fei);
708702
....@@ -943,6 +937,7 @@
943937 if (ret) {
944938 dev_err(fei->dev,
945939 "configure_memdma_and_inputblock failed\n");
940
+ of_node_put(child);
946941 goto err_unmap;
947942 }
948943 index++;