[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v2 08/17] xen/device-tree: Add dt_get_pci_domain_nr helper
Hi Stefano, > On 23 Sep 2021, at 12:50 am, Stefano Stabellini <sstabellini@xxxxxxxxxx> > wrote: > > On Wed, 22 Sep 2021, Rahul Singh wrote: >> Based on tag Linux v5.14.2 commit bbdd3de144fc142f2f4b9834c9241cc4e7f3d3fc > > Please use an upstream commit id Ack. > > >> Import the Linux helper of_get_pci_domain_nr. This function will try to >> obtain the host bridge domain number by finding a property called >> "linux,pci-domain" of the given device node. >> >> Signed-off-by: Rahul Singh <rahul.singh@xxxxxxx> >> --- >> Change in v2: Patch introduced in v2 >> --- >> xen/common/device_tree.c | 12 ++++++++++++ >> xen/include/xen/device_tree.h | 19 +++++++++++++++++++ >> 2 files changed, 31 insertions(+) >> >> diff --git a/xen/common/device_tree.c b/xen/common/device_tree.c >> index 53160d61f8..ea93da1725 100644 >> --- a/xen/common/device_tree.c >> +++ b/xen/common/device_tree.c >> @@ -2183,6 +2183,18 @@ void __init dt_unflatten_host_device_tree(void) >> dt_alias_scan(); >> } >> >> +int dt_get_pci_domain_nr(struct dt_device_node *node) >> +{ >> + u32 domain; >> + int error; >> + >> + error = dt_property_read_u32(node, "linux,pci-domain", &domain); >> + if ( !error ) >> + return -EINVAL; >> + >> + return (u16)domain; >> +} >> + >> /* >> * Local variables: >> * mode: C >> diff --git a/xen/include/xen/device_tree.h b/xen/include/xen/device_tree.h >> index 497144b8a7..9069040ef7 100644 >> --- a/xen/include/xen/device_tree.h >> +++ b/xen/include/xen/device_tree.h >> @@ -831,6 +831,25 @@ int dt_count_phandle_with_args(const struct >> dt_device_node *np, >> const char *list_name, >> const char *cells_name); >> >> +/** >> + * dt_get_pci_domain_nr - Find the host bridge domain number >> + * of the given device node. >> + * @node: Device tree node with the domain information. >> + * >> + * This function will try to obtain the host bridge domain number by finding >> + * a property called "linux,pci-domain" of the given device node. >> + * >> + * Return: >> + * * > 0 - On success, an associated domain number. >> + * * -EINVAL - The property "linux,pci-domain" does not exist. >> + * * -ENODATA - The linux,pci-domain" property does not have value. >> + * * -EOVERFLOW - Invalid "linux,pci-domain" property value. > > This doesn't match reality for us because it can only return EINVAL I will remove in next version. Regards, Rahul > >> + * Returns the associated domain number from DT in the range [0-0xffff], or >> + * a negative value if the required property is not found. >> + */ >> +int dt_get_pci_domain_nr(struct dt_device_node *node); >> + >> #ifdef CONFIG_DEVICE_TREE_DEBUG >> #define dt_dprintk(fmt, args...) \ >> printk(XENLOG_DEBUG fmt, ## args) >> -- >> 2.17.1
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |