From 2a88d220e41d96974510e0a0e444da56d3d5a841 Mon Sep 17 00:00:00 2001 From: internal Date: Sat, 4 Jun 2022 10:42:22 +0200 Subject: [PATCH 1/4] allow MCI commands for SDR cards. --- ddbridge/ddbridge-modulator.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ddbridge/ddbridge-modulator.c b/ddbridge/ddbridge-modulator.c index 04745df..7127675 100644 --- a/ddbridge/ddbridge-modulator.c +++ b/ddbridge/ddbridge-modulator.c @@ -1787,7 +1787,8 @@ int ddbridge_mod_do_ioctl(struct file *file, unsigned int cmd, void *parg) (struct dtv_properties __user *) parg; int i, ret = 0; - if (dev->link[0].info->version >= 16 && cmd != FE_SET_PROPERTY) + if (dev->link[0].info->version >= 16 && + (cmd != FE_SET_PROPERTY && cmd != IOCTL_DDB_MCI_CMD)) return -EINVAL; mutex_lock(&dev->ioctl_mutex); switch (cmd) { From 871821d6a0be147313bb52570591ce3853b3d370 Mon Sep 17 00:00:00 2001 From: internal Date: Tue, 7 Jun 2022 16:12:19 +0200 Subject: [PATCH 2/4] pci_*_dma_mask no longer exists in 5.18 --- ddbridge/ddbridge-main.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/ddbridge/ddbridge-main.c b/ddbridge/ddbridge-main.c index 14f94e2..09bc6dc 100644 --- a/ddbridge/ddbridge-main.c +++ b/ddbridge/ddbridge-main.c @@ -283,11 +283,17 @@ static int __devinit ddb_probe(struct pci_dev *pdev, pci_set_master(pdev); +#if (KERNEL_VERSION(5, 18, 0) <= LINUX_VERSION_CODE) + if (dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64))) + if (dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32))) +#else if (!pci_set_dma_mask(pdev, DMA_BIT_MASK(64))) { pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64)); } else if (!pci_set_dma_mask(pdev, DMA_BIT_MASK(32))) { pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32)); - } else return -ENODEV; + } else +#endif + return -ENODEV; dev = vzalloc(sizeof(*dev)); if (!dev) From 002f39787afc21cb3e2184705264ff241fd45898 Mon Sep 17 00:00:00 2001 From: internal Date: Tue, 7 Jun 2022 16:15:10 +0200 Subject: [PATCH 3/4] This line somehow got lost when adapting to mainline kernel version. Signed-off-by: internal --- dvb-core/dmxdev.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/dvb-core/dmxdev.c b/dvb-core/dmxdev.c index 4740b0e..36a2fe2 100644 --- a/dvb-core/dmxdev.c +++ b/dvb-core/dmxdev.c @@ -479,6 +479,9 @@ static int dvb_dmxdev_ts_callback(const u8 *buffer1, size_t buffer1_len, u32 *buffer_flags) { struct dmxdev_filter *dmxdevfilter = feed->priv; +#ifdef CONFIG_DVB_MMAP + struct dvb_vb2_ctx *ctx; +#endif struct dvb_ringbuffer *buffer; int ret; From c8c1ee1835c6e70f2056bdf1eef9ed25a590abda Mon Sep 17 00:00:00 2001 From: internal Date: Tue, 7 Jun 2022 16:37:10 +0200 Subject: [PATCH 4/4] style fixes --- ddbridge/ddbridge-main.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/ddbridge/ddbridge-main.c b/ddbridge/ddbridge-main.c index 09bc6dc..fd483c2 100644 --- a/ddbridge/ddbridge-main.c +++ b/ddbridge/ddbridge-main.c @@ -339,7 +339,7 @@ static int __devinit ddb_probe(struct pci_dev *pdev, u32 min = dev->link[0].info->hw_min; dev_err(dev->dev, "Update firmware to at least version %u.%u to ensure full functionality!\n", - (min & 0xff0000) >> 16, min & 0xffff); + (min & 0xff0000) >> 16, min & 0xffff); } if (dev->link[0].info->ns_num) { @@ -350,14 +350,14 @@ static int __devinit ddb_probe(struct pci_dev *pdev, if (dev->link[0].info->type != DDB_MOD) ddbwritel(dev, 0, DMA_BASE_WRITE); - if (dev->link[0].info->type == DDB_MOD - && dev->link[0].info->version <= 1) { + if (dev->link[0].info->type == DDB_MOD && + dev->link[0].info->version <= 1) { if (ddbreadl(dev, 0x1c) == 4) dev->link[0].info = get_ddb_info(0xdd01, 0x0201, 0xdd01, 0x0004); } - if (dev->link[0].info->type == DDB_MOD - && dev->link[0].info->version == 2) { + if (dev->link[0].info->type == DDB_MOD && + dev->link[0].info->version == 2) { u32 lic = ddbreadl(dev, 0x1c) & 7; if (dev->link[0].ids.revision == 1) @@ -458,7 +458,6 @@ static const struct pci_device_id ddb_id_table[] __devinitconst = { }; MODULE_DEVICE_TABLE(pci, ddb_id_table); - static pci_ers_result_t ddb_pci_slot_reset(struct pci_dev *dev) { pr_info("pci_slot_reset\n"); @@ -498,7 +497,6 @@ static const struct pci_error_handlers ddb_error = { .resume = ddb_pci_resume, }; - static struct pci_driver ddb_pci_driver = { .name = "ddbridge", .id_table = ddb_id_table,