Subject: Re: [RFC 01/20] ice: Initialize and register multi-function device to provide RDMA

From: Jason Gunthorpe <[email-masked]>
Date: Thu, 24 Oct 2019 16:10:37 -0300

On Thu, Oct 24, 2019 at 02:56:59PM -0400, [email-masked] wrote:
> On Wed, Oct 23, 2019 at 03:01:09PM -0300, Jason Gunthorpe wrote:
> > On Wed, Oct 23, 2019 at 05:55:38PM +0000, Ertman, David M wrote:
> > > > Did any resolution happen here? Dave, do you know what to do to get Greg's
> > > > approval?
> > > > 
> > > > Jason
> > > 
> > > This was the last communication that I saw on this topic.  I was taking Greg's silence as
> > > "Oh ok, that works" :)  I hope I was not being too optimistic!
> > > 
> > > If there is any outstanding issue I am not aware of it, but please let me know if I am 
> > > out of the loop!
> > > 
> > > Greg, if you have any other concerns or questions I would be happy to address them! 
> > 
> > I was hoping to hear Greg say that taking a pci_device, feeding it to
> > the multi-function-device stuff to split it to a bunch of
> > platform_device's is OK, or that mfd should be changed somehow..
> 
> Again, platform devices are ONLY for actual platform devices.  A PCI
> device is NOT a platform device, sorry.

To be fair to David, IIRC, you did suggest mfd as the solution here
some months ago, but I think you also said it might need some fixing
:)

> If MFD needs to be changed to handle non-platform devices, fine, but
> maybe what you really need to do here is make your own "bus" of
> individual devices and have drivers for them, as you can't have a
> "normal" PCI driver for these.

It does feel like MFD is the cleaner model here otherwise we'd have
each driver making its own custom buses for its multi-function
capability..

David, do you see some path to fix mfd to not use platform devices?

Maybe it needs a MFD bus type and a 'struct mfd_device' ?

I guess I'll drop these patches until it is sorted.

Jason