Re: [PATCH 11/15] soc: octeontx2: Add Marvell OcteonTX2 CGX driver

From: Arnd Bergmann
Date: Tue Aug 28 2018 - 08:49:06 EST


On Tue, Aug 28, 2018 at 2:30 PM Sunil Kovvuri <sunil.kovvuri@xxxxxxxxx> wrote:
>
> On Tue, Aug 28, 2018 at 5:40 PM Arnd Bergmann <arnd@xxxxxxxx> wrote:
> >
> > On Tue, Aug 28, 2018 at 12:58 PM <sunil.kovvuri@xxxxxxxxx> wrote:
> > >
> > > From: Sunil Goutham <sgoutham@xxxxxxxxxxx>
> > >
> > > This patch adds basic template for Marvell OcteonTX2's
> > > CGX ethernet interface driver. Just the probe.
> > > RVU AF driver will use APIs exported by this driver
> > > for various things like PF to physical interface mapping,
> > > loopback mode, interface stats etc.
> > >
> > > Signed-off-by: Sunil Goutham <sgoutham@xxxxxxxxxxx>
> > > ---
> > > drivers/soc/marvell/Kconfig | 10 +++
> > > drivers/soc/marvell/octeontx2/Makefile | 2 +
> > > drivers/soc/marvell/octeontx2/cgx.c | 117 +++++++++++++++++++++++++++++++++
> > > drivers/soc/marvell/octeontx2/cgx.h | 20 ++++++
> >
> > If this is a regular PCI ethernet driver, why do you put it into driver/soc
> > rather than drivers/net/ethernet/ ?
>
> No, this is not a ethernet driver, as mentioned in the cover letter
> this driver and AF driver doesn't
> handle any IO. There will be a separate ethernet driver (will submit
> that as well in future) which will
> communicate with these drivers for configuring hardware.
>
> The driver in question here is for a serdes controller which handles
> physical ethernet interfaces.
> Admin function driver gathers info w.r.t current state of physical
> ethernet interfaces from this driver
> and notifies actual ethernet driver about changes, if any.

Ok. Can you describe the structure that the PCI devices appear
in? It might help to be make the connection between the differnet
patches to understand how things fit together. In the final
picture, how many different pci_driver instances do you have,
and what part are they for?

Is the idea that an ethernet device driver always attaches to a
virtual function that gets created by the main driver, and that
the two drivers share no interfaces on the kernel side, or do
you have multiple drivers linking to each other?

Arnd