]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
media: solo6x10: Use pcim functions
authorRicardo Ribalda <ribalda@chromium.org>
Thu, 11 Apr 2024 21:17:50 +0000 (21:17 +0000)
committerHans Verkuil <hverkuil-cisco@xs4all.nl>
Mon, 15 Apr 2024 11:42:38 +0000 (13:42 +0200)
Instead of handling manually the release of the memory regions let devm
do that for us.

Makes smatch happy:
drivers/media/pci/solo6x10/solo6x10-core.c:631 solo_pci_probe() warn: 'pdev' from pci_request_regions() not released on lines: 631.

Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
drivers/media/pci/solo6x10/solo6x10-core.c

index 6d87fbb0ee04ab929ffad2dd00e4e59111c63a61..abf30b7609e1758af2a2142ea3a776ab13256128 100644 (file)
@@ -145,10 +145,8 @@ static void free_solo_dev(struct solo_dev *solo_dev)
                /* Now cleanup the PCI device */
                solo_irq_off(solo_dev, ~0);
                free_irq(pdev->irq, solo_dev);
-               pci_iounmap(pdev, solo_dev->reg_base);
        }
 
-       pci_release_regions(pdev);
        pci_disable_device(pdev);
        v4l2_device_unregister(&solo_dev->v4l2_dev);
        pci_set_drvdata(pdev, NULL);
@@ -480,15 +478,10 @@ static int solo_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
        pci_write_config_byte(pdev, 0x40, 0x00);
        pci_write_config_byte(pdev, 0x41, 0x00);
 
-       ret = pci_request_regions(pdev, SOLO6X10_NAME);
+       ret = pcim_iomap_regions(pdev, BIT(0), SOLO6X10_NAME);
        if (ret)
                goto fail_probe;
-
-       solo_dev->reg_base = pci_ioremap_bar(pdev, 0);
-       if (solo_dev->reg_base == NULL) {
-               ret = -ENOMEM;
-               goto fail_probe;
-       }
+       solo_dev->reg_base = pcim_iomap_table(pdev)[0];
 
        chip_id = solo_reg_read(solo_dev, SOLO_CHIP_OPTION) &
                                SOLO_CHIP_ID_MASK;