pci_intx() is a hybrid function which can sometimes be managed through
devres. To remove this hybrid nature from pci_intx(), it is necessary to
port users to either an always-managed or a never-managed version.
cardreader/rtsx_pcr.c and tifm_7xx1.c enable their PCI devices with
pci_enable_device(). Thus, they need the never-managed version.
Replace pci_intx() with pci_intx_unmanaged().
Link: https://lore.kernel.org/r/20241209130632.132074-7-pstanner@redhat.com
Signed-off-by: Philipp Stanner <pstanner@redhat.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
}
pcr->irq = pcr->pci->irq;
- pci_intx(pcr->pci, !pcr->msi_en);
+ pci_intx_unmanaged(pcr->pci, !pcr->msi_en);
return 0;
}
goto err_out;
}
- pci_intx(dev, 1);
+ pci_intx_unmanaged(dev, 1);
fm = tifm_alloc_adapter(dev->device == PCI_DEVICE_ID_TI_XX21_XX11_FM
? 4 : 2, &dev->dev);
err_out_free:
tifm_free_adapter(fm);
err_out_int:
- pci_intx(dev, 0);
+ pci_intx_unmanaged(dev, 0);
pci_release_regions(dev);
err_out:
if (!pci_dev_busy)
tifm_7xx1_sock_power_off(tifm_7xx1_sock_addr(fm->addr, cnt));
iounmap(fm->addr);
- pci_intx(dev, 0);
+ pci_intx_unmanaged(dev, 0);
pci_release_regions(dev);
pci_disable_device(dev);