Re: [PATCH 0/4] MIPS: ralink: pci: driver for Pcie controller in MT7621 SoCs

From: Bjorn Helgaas
Date: Fri Jun 04 2021 - 15:43:32 EST


On Mon, May 31, 2021 at 03:18:45PM +0200, Pali Rohár wrote:
> On Friday 21 May 2021 12:23:38 Thomas Bogendoerfer wrote:
> > On Wed, May 19, 2021 at 11:18:36PM +0200, Sergio Paracuellos wrote:
> > > On Wed, May 19, 2021 at 10:36 PM Bjorn Helgaas <helgaas@xxxxxxxxxx> wrote:
> > > > But most of the similar drivers are in drivers/pci/controller/, where
> > > > I think it's easier to keep them up to date with changes in the PCI
> > > > core. Have you considered putting this one there?
> > >
> > > Most pci drivers in 'arch/mips/pci' are still using PCI_LEGACY stuff.
> > > In contrast mt7621-pci is using current pci generic apis but even most
> > > of the code is generic enough, there is one remaining thing which
> > > depends on mips architecture which is the iocu region configuration
> > > which must be done in the driver itself. This is the only reason to
> > > move this driver into 'arch/mips/pci' instead of
> > > 'drivers/pci/controller/'. So... I am all ears to listen to
> > > suggestions for the proper place for this driver. Thomas, do you have
> > > any thoughts on this?
> >
> > I tried to put a pci-xtalk driver into drivers/pci/controller, but
> > Lorenzo didn't want it there for being MIPS and not DT based. So this
> > one is DT based, but still MIPS. I'm perfectly fine putting this
> > driver into drivers/pci/controller/
>
> In my personal opinion this driver could go into drivers/pci/controller/

I'm not sure exactly what "PCI_LEGACY" above refers to.

I don't see any direct #includes of arch/mips in the driver. I do see
that it uses mips_cps_numiocu(), which is certainly MIPS-specific.

But we do have some things in drivers/pci/controller/ that only build
on certain arches, enforced mostly by Kconfig rules, so I think you
could do that. We try to make so things can at least be *compiled* on
any arch, but I know that's not always possible.

So I think it would be useful to put this in drivers/pci/controller/
somewhere because it will make it easier to see common patterns and
refactoring opportunities.

Bjorn