Le Thu, 15 Dec 2022 09:30:45 -0800, Lizhi Hou <lizhi.hou@xxxxxxx> a écrit : > +}; > + > +static int of_pci_prop_device_type(struct pci_dev *pdev, > + struct of_changeset *ocs, > + struct device_node *np) > +{ > + return of_changeset_add_prop_string(ocs, np, "device_type", "pci"); > +} > + > +static int of_pci_prop_address_cells(struct pci_dev *pdev, > + struct of_changeset *ocs, > + struct device_node *np) > +{ > + return of_changeset_add_prop_u32(ocs, np, "#address_cells", > + OF_PCI_ADDRESS_CELLS); > +} > + > +static int of_pci_prop_size_cells(struct pci_dev *pdev, > + struct of_changeset *ocs, > + struct device_node *np) > +{ > + return of_changeset_add_prop_u32(ocs, np, "#size_cells", > + OF_PCI_SIZE_CELLS); > +} Hi Lizhi, For all these functions, the "pdev" parameter is actually unused. [snip] > + > +static int of_pci_prop_compatible(struct pci_dev *pdev, > + struct of_changeset *ocs, > + struct device_node *np) > +{ > + const char *compat_strs[PROP_COMPAT_NUM] = { 0 }; > + int i, ret; > + > + compat_strs[PROP_COMPAT_PCI_VVVV_DDDD] = > + kasprintf(GFP_KERNEL, "pci%x,%x", pdev->vendor, pdev->device); Maybe it should be better to use "pci%04x,%04x" to keep the existing naming. -- Clément Léger, Embedded Linux and Kernel engineer at Bootlin https://bootlin.com