On Wed, Jan 17, 2024 at 05:07:43PM +0100, Bartosz Golaszewski wrote: > From: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxx> > > In order to introduce PCI power-sequencing, we need to create platform > devices for child nodes of the port node. Ick, why a platform device? What is the parent of this device, a PCI device? If so, then this can't be a platform device, as that's not what it is, it's something else so make it a device of that type,. > They will get matched against > the pwrseq drivers (if one exists) and then the actual PCI device will > reuse the node once it's detected on the bus. Reuse it how? > Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxx> > --- > drivers/pci/bus.c | 9 ++++++++- > drivers/pci/remove.c | 3 ++- > 2 files changed, 10 insertions(+), 2 deletions(-) > > diff --git a/drivers/pci/bus.c b/drivers/pci/bus.c > index 9c2137dae429..8ab07f711834 100644 > --- a/drivers/pci/bus.c > +++ b/drivers/pci/bus.c > @@ -12,6 +12,7 @@ > #include <linux/errno.h> > #include <linux/ioport.h> > #include <linux/of.h> > +#include <linux/of_platform.h> > #include <linux/proc_fs.h> > #include <linux/slab.h> > > @@ -342,8 +343,14 @@ void pci_bus_add_device(struct pci_dev *dev) > */ > pcibios_bus_add_device(dev); > pci_fixup_device(pci_fixup_final, dev); > - if (pci_is_bridge(dev)) > + if (pci_is_bridge(dev)) { > of_pci_make_dev_node(dev); > + retval = of_platform_populate(dev->dev.of_node, NULL, NULL, > + &dev->dev); So this is a pci bridge device, not a platform device, please don't do this, make it a real device of a new type. thanks, greg k-h