Re: [PATCH V5 2/3] PCI: Create device tree node for selected devices

From: Lizhi Hou
Date: Tue Jan 03 2023 - 13:47:58 EST



On 1/2/23 05:56, Clément Léger wrote:
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]
Ok. I will remove unused pdev.

+
+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.

Based on https://www.devicetree.org/open-firmware/bindings/pci/pci2_1.pdf, "pci%x,%x" should be used?

"name" Based on the PCI Class Code register, pick a name from Table 1. If none apply, generate a name of the
form pciVVVV,DDDD as described below under "compatible".

VVVV, DDDD, SSSS, ssss and RR are lower-case ASCII hexadecimal numbers without leading zeroes.


Thanks,

Lizhi