On Mon, Jan 23, 2023 at 05:31:21PM +0100, Greg Kroah-Hartman wrote: > On Mon, Jan 23, 2023 at 03:32:55PM +0000, Lee Jones wrote: > > On Mon, 23 Jan 2023, Vincent Whitchurch wrote: > > > > > Add a PCI driver which registers all child nodes specified in the > > > devicetree. It will allow platform devices to be used on virtual > > > systems which already support PCI and devicetree, such as UML with > > > virt-pci. > > > > > > The driver has no id_table by default; user space needs to provide one > > > using the new_id mechanism in sysfs. > > > > This feels wrong for several reasons. > > > > Firstly, I think Greg (Cc:ed) will have something to say about this. > > Yes, this isn't ok. Please write a real driver for the hardware under > control here, and that would NOT be a MFD driver (hint, if you want to > split up a PCI device into different drivers, use the aux bus code, that > is what it is there for.) I hope it's clear from my other replies in this thread that the entire purpose of this driver is to allow arbitrary platform devices to be used via a PCI device in virtual environments like User Mode Linux in order to test existing platform drivers using mocked hardware. Given this "hardware", it's not clear what a "real driver" would do differently. The auxiliary bus cannot be used since it naturally does not support platform devices. A hard coded list of sub-devices cannot be used since arbitrary platform devices with arbitrary devicetree properties need to be supported. I could move this driver to drivers/bus/ and pitch it as a "PCI<->platform bridge for testing in virtual environments", if that makes more sense.