On Wed, Oct 09, 2024 at 10:35:08AM +0200, Philipp Stanner wrote: > 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. > > hda_intel enables its PCI-Device with pcim_enable_device(). Thus, it needs > the always-managed version. > > Replace pci_intx() with pcim_intx(). ... > bus->irq = chip->pci->irq; > chip->card->sync_irq = bus->irq; > - pci_intx(chip->pci, !chip->msi); > + pcim_intx(chip->pci, !chip->msi); > return 0; I believe each driver needs an individual approach. Looking at the above I would first to understand why this one is being used and why we can't switch to pci{m}_alloc_irq_vectors(). (Yeah, managed pci_alloc_irq_vectors() is probably still missing, I don't remember if you introduced it or not. -- With Best Regards, Andy Shevchenko