hc
2024-10-22 8ac6c7a54ed1b98d142dce24b11c6de6a1e239a5
kernel/drivers/media/pci/ngene/ngene-core.c
....@@ -1,3 +1,4 @@
1
+// SPDX-License-Identifier: GPL-2.0-only
12 /*
23 * ngene.c: nGene PCIe bridge driver
34 *
....@@ -7,20 +8,6 @@
78 * Modifications for new nGene firmware,
89 * support for EEPROM-copying,
910 * support for new dual DVB-S2 card prototype
10
- *
11
- *
12
- * This program is free software; you can redistribute it and/or
13
- * modify it under the terms of the GNU General Public License
14
- * version 2 only, as published by the Free Software Foundation.
15
- *
16
- *
17
- * This program is distributed in the hope that it will be useful,
18
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
19
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20
- * GNU General Public License for more details.
21
- *
22
- * To obtain the license, point your browser to
23
- * http://www.gnu.org/copyleft/gpl.html
2411 */
2512
2613 #include <linux/module.h>
....@@ -63,9 +50,9 @@
6350 /* nGene interrupt handler **************************************************/
6451 /****************************************************************************/
6552
66
-static void event_tasklet(unsigned long data)
53
+static void event_tasklet(struct tasklet_struct *t)
6754 {
68
- struct ngene *dev = (struct ngene *)data;
55
+ struct ngene *dev = from_tasklet(dev, t, event_tasklet);
6956
7057 while (dev->EventQueueReadIndex != dev->EventQueueWriteIndex) {
7158 struct EVENT_BUFFER Event =
....@@ -81,9 +68,9 @@
8168 }
8269 }
8370
84
-static void demux_tasklet(unsigned long data)
71
+static void demux_tasklet(struct tasklet_struct *t)
8572 {
86
- struct ngene_channel *chan = (struct ngene_channel *)data;
73
+ struct ngene_channel *chan = from_tasklet(chan, t, demux_tasklet);
8774 struct device *pdev = &chan->dev->pci_dev->dev;
8875 struct SBufferHeader *Cur = chan->nextBuffer;
8976
....@@ -867,8 +854,6 @@
867854 if (!Head)
868855 return -ENOMEM;
869856
870
- memset(Head, 0, MemSize);
871
-
872857 PARingBufferCur = PARingBufferHead;
873858 Cur = Head;
874859
....@@ -919,8 +904,6 @@
919904 PASCListMem = tmp;
920905 if (SCListMem == NULL)
921906 return -ENOMEM;
922
-
923
- memset(SCListMem, 0, SCListMemSize);
924907
925908 pRingBuffer->SCListMem = SCListMem;
926909 pRingBuffer->PASCListMem = PASCListMem;
....@@ -1014,7 +997,7 @@
1014997 /* Point to first buffer entry */
1015998 struct SBufferHeader *Cur = pRingBuffer->Head;
1016999 int i;
1017
- /* Loop thru all buffer and set Buffer 2 pointers to TSIdlebuffer */
1000
+ /* Loop through all buffer and set Buffer 2 pointers to TSIdlebuffer */
10181001 for (i = 0; i < n; i++) {
10191002 Cur->Buffer2 = pIdleBuffer->Head->Buffer1;
10201003 Cur->scList2 = pIdleBuffer->Head->scList1;
....@@ -1198,7 +1181,7 @@
11981181 struct device *pdev = &dev->pci_dev->dev;
11991182 int i;
12001183
1201
- tasklet_init(&dev->event_tasklet, event_tasklet, (unsigned long)dev);
1184
+ tasklet_setup(&dev->event_tasklet, event_tasklet);
12021185
12031186 memset_io(dev->iomem + 0xc000, 0x00, 0x220);
12041187 memset_io(dev->iomem + 0xc400, 0x00, 0x100);
....@@ -1462,7 +1445,7 @@
14621445 struct ngene_info *ni = dev->card_info;
14631446 int io = ni->io_type[nr];
14641447
1465
- tasklet_init(&chan->demux_tasklet, demux_tasklet, (unsigned long)chan);
1448
+ tasklet_setup(&chan->demux_tasklet, demux_tasklet);
14661449 chan->users = 0;
14671450 chan->type = io;
14681451 chan->mode = chan->type; /* for now only one mode */