[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
On Wed, 22 Sep 2021, Rahul Singh wrote: > Based on tag Linux v5.14.2 commit bbdd3de144fc142f2f4b9834c9241cc4e7f3d3fc Please use an upstream commit id > 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 > + * 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 |