Re: [PATCH v3 1/5] mfd: intel_ehl_pse_gpio: Introduce Intel Elkhart Lake PSE GPIO and TIO

From: Raag Jadav
Date: Fri Mar 14 2025 - 14:02:34 EST


On Fri, Mar 14, 2025 at 04:20:35PM +0200, Andy Shevchenko wrote:
> On Fri, Mar 14, 2025 at 01:57:35PM +0000, Lee Jones wrote:
> > On Fri, 14 Mar 2025, Andy Shevchenko wrote:
> > > On Fri, Mar 14, 2025 at 12:44:50PM +0000, Lee Jones wrote:
> > > > On Fri, 07 Mar 2025, Raag Jadav wrote:
>
> ...
>
> > > > > + ret = pci_alloc_irq_vectors(pci, 2, 2, PCI_IRQ_ALL_TYPES);
> > > > > + if (ret < 0)
> > > > > + return ret;
> > > > > +
> > > > > + ret = mfd_add_devices(&pci->dev, PLATFORM_DEVID_AUTO, ehl_pse_gpio_devs,
> > > >
> > > > dev_*?
> > >
> > > devm_* ?
> >
> > Yes, typo.
> >
> > > > > + ARRAY_SIZE(ehl_pse_gpio_devs), pci_resource_n(pci, 0),
> > > > > + pci_irq_vector(pci, 0), NULL);
> > > > > + if (ret)
> > > > > + pci_free_irq_vectors(pci);
> > >
> > > Anyway, the choice as far as I understood it is motivated by usage of
> > > pci_*_irq_vector() APIs, which are officially not manageable (however
> > > in practice they are).

Are you referring to pcim_setup_msi_release()? I saw it but wasn't confident
it is in the call path, so went with manual release instead.

Now that you mentioned it, will update.

> > > > > + return ret;
> > > > > +}
> > > > > +
> > > > > +static void ehl_pse_gpio_remove(struct pci_dev *pdev)
> > > > > +{
> > > > > + mfd_remove_devices(&pdev->dev);
> > > > > + pci_free_irq_vectors(pdev);
> > > > > +}
> > >
> > > Same here.
> >
> > Also, Greg has been quite vocal about converting PCI devices to Platform
> > ones in the past. We may wish to run this past him before continuing.
>
> What do you refer to? Any links to read?

Could be about faux_device, but I could be wrong since here we do use
platform resources.

Raag