On Mon, Sep 27, 2021 at 11:40:37AM -0700, David E. Box wrote: > On Mon, 2021-09-27 at 19:36 +0200, Greg KH wrote: > > On Wed, Sep 22, 2021 at 02:30:04PM -0700, David E. Box wrote: > > > Intel Platform Monitoring Technology (PMT) support is indicated by presence > > > of an Intel defined PCIe DVSEC structure with a PMT ID. However DVSEC > > > structures may also be used by Intel to indicate support for other > > > capabilities unrelated to PMT. OOBMSM is a device that can have both PMT > > > and non-PMT capabilities. In order to support these capabilities it is > > > necessary to modify the intel_pmt driver to handle the creation of platform > > > devices more generically. > > > > I said this on your other driver submission, but why are you turning a > > PCIe device into a set of platform devices and craming it into the MFD > > subsystem? > > > > PCIe devices are NOT platform devices. > > But they *are* used to create platform devices when the PCIe device is multi-functional, which is > what intel_pmt is. That is an abuse of platform devices, as that is not what they are for. > > Why not use the auxiliary bus for this thing if you have individual > > drivers that need to "bind" to the different attributes that this single > > PCIe device is exporting. > > It wasn't clear in the beginning how this would evolve. MFD made sense for the PMT (platform > monitoring technology) driver. PMT has 3 related but individually enumerable devices on the same IP, > like lpss. But the same IP is now being used for other features too like SDSi. We could work on > converting this to the auxiliary bus and then covert the cell drivers. Please do so. > > Or why not just fix the hardware to report individual PCIe devices, like > > a sane system would do? > > We have some systems with 1000+ PCIe devices. Each PCIe device adds cost to HW. So increasingly > VSEC/DVSEC is used to expose features which are handled by the same micro-controller in the HW. A PCIe device is a virtual thing, what HW cost do they have? Anyway, a platform device should NOT ever be a child of a PCI device, that is not ok and should be fixed here please. A platform device is just that, something that the platform provides on a non-discoverable bus. A PCIe device is NOT that type of device at all and never has been. thanks, greg k-h