From 9370bb92b2d16684ee45cf24e879c93c509162da Mon Sep 17 00:00:00 2001 From: hc <hc@nodka.com> Date: Thu, 19 Dec 2024 01:47:39 +0000 Subject: [PATCH] add wifi6 8852be driver --- kernel/drivers/media/pci/ttpci/av7110.c | 63 ++++++++++++------------------- 1 files changed, 24 insertions(+), 39 deletions(-) diff --git a/kernel/drivers/media/pci/ttpci/av7110.c b/kernel/drivers/media/pci/ttpci/av7110.c index d02b5fd..2f7069e 100644 --- a/kernel/drivers/media/pci/ttpci/av7110.c +++ b/kernel/drivers/media/pci/ttpci/av7110.c @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: GPL-2.0-or-later /* * driver for the SAA7146 based AV110 cards (like the Fujitsu-Siemens DVB) * av7110.c: initialization and demux stuff @@ -7,21 +8,6 @@ * * originally based on code by: * Copyright (C) 1998,1999 Christian Theiss <mistert@rz.fh-augsburg.de> - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * To obtain the license, point your browser to - * http://www.gnu.org/copyleft/gpl.html - * * * the project's page is at https://linuxtv.org */ @@ -232,7 +218,7 @@ restart_feeds(av7110); #if IS_ENABLED(CONFIG_DVB_AV7110_IR) - av7110_check_ir_config(av7110, true); + av7110_set_ir_config(av7110); #endif } @@ -263,10 +249,6 @@ if (!av7110->arm_ready) continue; - -#if IS_ENABLED(CONFIG_DVB_AV7110_IR) - av7110_check_ir_config(av7110, false); -#endif if (mutex_lock_interruptible(&av7110->dcomlock)) break; @@ -375,9 +357,9 @@ irdebi(av7110, DEBISWAB, addr, 0, len); } -static void debiirq(unsigned long cookie) +static void debiirq(struct tasklet_struct *t) { - struct av7110 *av7110 = (struct av7110 *)cookie; + struct av7110 *av7110 = from_tasklet(av7110, t, debi_tasklet); int type = av7110->debitype; int handle = (type >> 8) & 0x1f; unsigned int xfer = 0; @@ -476,9 +458,9 @@ } /* irq from av7110 firmware writing the mailbox register in the DPRAM */ -static void gpioirq(unsigned long cookie) +static void gpioirq(struct tasklet_struct *t) { - struct av7110 *av7110 = (struct av7110 *)cookie; + struct av7110 *av7110 = from_tasklet(av7110, t, gpio_tasklet); u32 rxbuf, txbuf; int len; @@ -655,7 +637,7 @@ iwdebi(av7110, DEBINOSWAP, RX_BUFF, 0, 2); break; } - /* fall through */ + fallthrough; case DATA_TS_RECORD: case DATA_PES_RECORD: @@ -674,9 +656,11 @@ return; case DATA_IRCOMMAND: - if (av7110->ir.ir_handler) - av7110->ir.ir_handler(av7110, - swahw32(irdebi(av7110, DEBINOSWAP, Reserved, 0, 4))); +#if IS_ENABLED(CONFIG_DVB_AV7110_IR) + av7110_ir_handler(av7110, + swahw32(irdebi(av7110, DEBINOSWAP, Reserved, + 0, 4))); +#endif iwdebi(av7110, DEBINOSWAP, RX_BUFF, 0, 2); break; @@ -1246,9 +1230,9 @@ return status; } -static void vpeirq(unsigned long cookie) +static void vpeirq(struct tasklet_struct *t) { - struct av7110 *budget = (struct av7110 *)cookie; + struct av7110 *budget = from_tasklet(budget, t, vpe_tasklet); u8 *mem = (u8 *) (budget->grabbing); u32 olddma = budget->ttbp; u32 newdma = saa7146_read(budget->dev, PCI_VDP3); @@ -2192,7 +2176,7 @@ break; } } - /* fall-thru */ + fallthrough; case 0x0008: // Hauppauge/TT DVB-T // Grundig 29504-401 @@ -2314,7 +2298,7 @@ * (n in defined in the RPS_THRESH1 counter threshold) * I think HS is raised high on the beginning of the n-th line * and remains high until this n-th line that triggered - * it is completely received. When the receiption of n-th line + * it is completely received. When the reception of n-th line * ends, HS is lowered. * * To transmit data over DMA, 7146 needs changing state at @@ -2348,7 +2332,7 @@ * hardware debug note: a working budget card (including budget patch) * with vpeirq() interrupt setup in mode "0x90" (every 64K) will * generate 3 interrupts per 25-Hz DMA frame of 2*188*512 bytes - * and that means 3*25=75 Hz of interrupt freqency, as seen by + * and that means 3*25=75 Hz of interrupt frequency, as seen by * watch cat /proc/interrupts * * If this frequency is 3x lower (and data received in the DMA @@ -2357,7 +2341,7 @@ * this means VSYNC line is not connected in the hardware. * (check soldering pcb and pins) * The same behaviour of missing VSYNC can be duplicated on budget - * cards, by seting DD1_INIT trigger mode 7 in 3rd nibble. + * cards, by setting DD1_INIT trigger mode 7 in 3rd nibble. */ static int av7110_attach(struct saa7146_dev* dev, struct saa7146_pci_extension_data *pci_ext) @@ -2483,7 +2467,8 @@ get recognized before the main driver is fully loaded */ saa7146_write(dev, GPIO_CTRL, 0x500000); - strlcpy(av7110->i2c_adap.name, pci_ext->ext_priv, sizeof(av7110->i2c_adap.name)); + strscpy(av7110->i2c_adap.name, pci_ext->ext_priv, + sizeof(av7110->i2c_adap.name)); saa7146_i2c_adapter_prepare(dev, &av7110->i2c_adap, SAA7146_I2C_BUS_BIT_RATE_120); /* 275 kHz */ @@ -2533,7 +2518,7 @@ saa7146_write(dev, NUM_LINE_BYTE3, (TS_HEIGHT << 16) | TS_WIDTH); saa7146_write(dev, MC2, MASK_04 | MASK_20); - tasklet_init(&av7110->vpe_tasklet, vpeirq, (unsigned long) av7110); + tasklet_setup(&av7110->vpe_tasklet, vpeirq); } else if (budgetpatch) { spin_lock_init(&av7110->feedlock1); @@ -2614,7 +2599,7 @@ saa7146_write(dev, MC1, (MASK_13 | MASK_29)); /* end of budgetpatch register initialization */ - tasklet_init (&av7110->vpe_tasklet, vpeirq, (unsigned long) av7110); + tasklet_setup(&av7110->vpe_tasklet, vpeirq); } else { saa7146_write(dev, PCI_BT_V1, 0x1c00101f); saa7146_write(dev, BCS_CTRL, 0x80400040); @@ -2629,8 +2614,8 @@ saa7146_write(dev, GPIO_CTRL, 0x000000); } - tasklet_init (&av7110->debi_tasklet, debiirq, (unsigned long) av7110); - tasklet_init (&av7110->gpio_tasklet, gpioirq, (unsigned long) av7110); + tasklet_setup(&av7110->debi_tasklet, debiirq); + tasklet_setup(&av7110->gpio_tasklet, gpioirq); mutex_init(&av7110->pid_mutex); -- Gitblit v1.6.2