.. | .. |
---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-or-later |
---|
1 | 2 | /* |
---|
2 | 3 | * DMA controller driver for CSR SiRFprimaII |
---|
3 | 4 | * |
---|
4 | 5 | * Copyright (c) 2011 Cambridge Silicon Radio Limited, a CSR plc group company. |
---|
5 | | - * |
---|
6 | | - * Licensed under GPLv2 or later. |
---|
7 | 6 | */ |
---|
8 | 7 | |
---|
9 | 8 | #include <linux/module.h> |
---|
.. | .. |
---|
394 | 393 | } |
---|
395 | 394 | |
---|
396 | 395 | /* DMA Tasklet */ |
---|
397 | | -static void sirfsoc_dma_tasklet(unsigned long data) |
---|
| 396 | +static void sirfsoc_dma_tasklet(struct tasklet_struct *t) |
---|
398 | 397 | { |
---|
399 | | - struct sirfsoc_dma *sdma = (void *)data; |
---|
| 398 | + struct sirfsoc_dma *sdma = from_tasklet(sdma, t, tasklet); |
---|
400 | 399 | |
---|
401 | 400 | sirfsoc_dma_process_completed(sdma); |
---|
402 | 401 | } |
---|
.. | .. |
---|
939 | 938 | list_add_tail(&schan->chan.device_node, &dma->channels); |
---|
940 | 939 | } |
---|
941 | 940 | |
---|
942 | | - tasklet_init(&sdma->tasklet, sirfsoc_dma_tasklet, (unsigned long)sdma); |
---|
| 941 | + tasklet_setup(&sdma->tasklet, sirfsoc_dma_tasklet); |
---|
943 | 942 | |
---|
944 | 943 | /* Register DMA engine */ |
---|
945 | 944 | dev_set_drvdata(dev, sdma); |
---|