From: Julien Grall <julien@xen.org>
To: Vikram Garhwal <vikram.garhwal@amd.com>, xen-devel@lists.xenproject.org
Cc: michal.orzel@amd.com, sstabellini@kernel.org, jbeulich@suse.com
Subject: Re: [XEN][PATCH v7 08/19] xen/device-tree: Add device_tree_find_node_by_path() to find nodes in device tree
Date: Mon, 5 Jun 2023 20:12:31 +0100 [thread overview]
Message-ID: <d6a40e00-e2e3-81d9-b596-45dcfb2becd6@xen.org> (raw)
In-Reply-To: <20230602004824.20731-9-vikram.garhwal@amd.com>
Hi,
On 02/06/2023 01:48, Vikram Garhwal wrote:
> Add device_tree_find_node_by_path() to find a matching node with path for a
AFAICT, the only difference in name between the new function and the
existing one is "device_tree" vs "dt". The latter is just a shorthand of
"device tree", so it feels to me the name are a bit too similar.
From my understanding, the main difference between the two functions
are that the current one is starting from root whereas the current one
is starting from a given node. So how about "dt_find_node_by_path_from()"?
> dt_device_node.
>
> Reason behind this function:
> Each time overlay nodes are added using .dtbo, a new fdt(memcpy of
> device_tree_flattened) is created and updated with overlay nodes. This
> updated fdt is further unflattened to a dt_host_new. Next, we need to find
> the overlay nodes in dt_host_new, find the overlay node's parent in dt_host
> and add the nodes as child under their parent in the dt_host. Thus we need
> this function to search for node in different unflattened device trees.
>
> Also, make dt_find_node_by_path() static inline.
>
> Signed-off-by: Vikram Garhwal <vikram.garhwal@amd.com>
>
> ---
> Changes from v6:
> Rename "dt_node" to "from"
> ---
> xen/common/device_tree.c | 6 ++++--
> xen/include/xen/device_tree.h | 18 ++++++++++++++++--
> 2 files changed, 20 insertions(+), 4 deletions(-)
>
> diff --git a/xen/common/device_tree.c b/xen/common/device_tree.c
> index 16b4b4e946..c5250a1644 100644
> --- a/xen/common/device_tree.c
> +++ b/xen/common/device_tree.c
> @@ -358,11 +358,13 @@ struct dt_device_node *dt_find_node_by_type(struct dt_device_node *from,
> return np;
> }
>
> -struct dt_device_node *dt_find_node_by_path(const char *path)
> +struct dt_device_node *
> + device_tree_find_node_by_path(struct dt_device_node *from,
> + const char *path)
> {
> struct dt_device_node *np;
>
> - dt_for_each_device_node(dt_host, np)
> + dt_for_each_device_node(from, np)
> if ( np->full_name && (dt_node_cmp(np->full_name, path) == 0) )
> break;
>
> diff --git a/xen/include/xen/device_tree.h b/xen/include/xen/device_tree.h
> index 2c35c0d391..e239f7de26 100644
> --- a/xen/include/xen/device_tree.h
> +++ b/xen/include/xen/device_tree.h
> @@ -561,13 +561,27 @@ struct dt_device_node *dt_find_node_by_type(struct dt_device_node *from,
> struct dt_device_node *dt_find_node_by_alias(const char *alias);
>
> /**
> - * dt_find_node_by_path - Find a node matching a full DT path
> + * device_tree_find_node_by_path - Generic function to find a node matching the
> + * full DT path for any given unflatten device tree
> + * @from: The device tree node to start searching from
> * @path: The full path to match
> *
> * Returns a node pointer.
> */
> -struct dt_device_node *dt_find_node_by_path(const char *path);
> +struct dt_device_node *
> + device_tree_find_node_by_path(struct dt_device_node *from,
> + const char *path);
The indentation looks slightly odd. In general, if the return type is on
its own line, then the function name is not indented on the new line.
>
> +/**
> + * dt_find_node_by_path - Find a node matching a full DT path in dt_host
> + * @path: The full path to match
> + *
> + * Returns a node pointer.
> + */
> +static inline struct dt_device_node *dt_find_node_by_path(const char *path)
> +{
> + return device_tree_find_node_by_path(dt_host, path);
> +}
>
> /**
> * dt_find_node_by_gpath - Same as dt_find_node_by_path but retrieve the
Cheers,
--
Julien Grall
next prev parent reply other threads:[~2023-06-05 19:12 UTC|newest]
Thread overview: 68+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-02 0:48 [XEN][PATCH v7 00/19] dynamic node programming using overlay dtbo Vikram Garhwal
2023-06-02 0:48 ` [XEN][PATCH v7 01/19] common/device_tree: handle memory allocation failure in __unflatten_device_tree() Vikram Garhwal
2023-06-02 7:09 ` Michal Orzel
2023-06-05 18:54 ` Julien Grall
2023-06-02 0:48 ` [XEN][PATCH v7 02/19] common/device_tree.c: unflatten_device_tree() propagate errors Vikram Garhwal
2023-06-02 7:14 ` Michal Orzel
2023-06-06 19:08 ` Vikram Garhwal
2023-06-02 0:48 ` [XEN][PATCH v7 03/19] xen/arm/device: Remove __init from function type Vikram Garhwal
2023-06-02 0:48 ` [XEN][PATCH v7 04/19] common/device_tree: change __unflatten_device_tree() type Vikram Garhwal
2023-06-02 7:15 ` Michal Orzel
2023-06-05 19:04 ` Julien Grall
2023-06-06 19:09 ` Vikram Garhwal
2023-08-16 23:49 ` Vikram Garhwal
2023-08-17 7:59 ` Julien Grall
2023-06-02 0:48 ` [XEN][PATCH v7 05/19] xen/arm: Add CONFIG_OVERLAY_DTB Vikram Garhwal
2023-06-02 1:43 ` Henry Wang
2023-06-02 7:16 ` Michal Orzel
2023-06-02 9:06 ` Jan Beulich
2023-06-02 9:22 ` Henry Wang
2023-06-06 19:11 ` Vikram Garhwal
2023-06-02 0:48 ` [XEN][PATCH v7 06/19] libfdt: Keep fdt functions after init for CONFIG_OVERLAY_DTB Vikram Garhwal
2023-06-02 9:09 ` Jan Beulich
2023-06-02 0:48 ` [XEN][PATCH v7 07/19] libfdt: overlay: change overlay_get_target() Vikram Garhwal
2023-06-05 19:05 ` Julien Grall
2023-06-02 0:48 ` [XEN][PATCH v7 08/19] xen/device-tree: Add device_tree_find_node_by_path() to find nodes in device tree Vikram Garhwal
2023-06-02 1:52 ` Henry Wang
2023-06-02 7:24 ` Michal Orzel
2023-06-05 19:12 ` Julien Grall [this message]
2023-06-06 20:29 ` Vikram Garhwal
2023-06-07 6:22 ` Michal Orzel
2023-06-07 6:27 ` Henry Wang
2023-06-07 8:30 ` Luca Fancellu
2023-06-02 0:48 ` [XEN][PATCH v7 09/19] xen/iommu: Move spin_lock from iommu_dt_device_is_assigned to caller Vikram Garhwal
2023-06-02 7:45 ` Michal Orzel
2023-06-05 19:22 ` Julien Grall
2023-06-06 20:33 ` Vikram Garhwal
2023-06-02 9:19 ` Jan Beulich
2023-06-02 9:26 ` Jan Beulich
2023-06-05 19:19 ` Julien Grall
2023-08-16 23:55 ` Vikram Garhwal
2023-06-02 0:48 ` [XEN][PATCH v7 10/19] xen/iommu: protect iommu_add_dt_device() with dtdevs_lock Vikram Garhwal
2023-06-02 9:21 ` Jan Beulich
2023-06-05 19:25 ` Julien Grall
2023-06-02 0:48 ` [XEN][PATCH v7 11/19] xen/iommu: Introduce iommu_remove_dt_device() Vikram Garhwal
2023-06-02 9:22 ` Jan Beulich
2023-06-05 19:37 ` Julien Grall
2023-08-16 23:58 ` Vikram Garhwal
2023-06-02 0:48 ` [XEN][PATCH v7 12/19] xen/smmu: Add remove_device callback for smmu_iommu ops Vikram Garhwal
2023-06-02 7:47 ` Michal Orzel
2023-06-02 0:48 ` [XEN][PATCH v7 13/19] asm/smp.h: Fix circular dependency for device_tree.h and rwlock.h Vikram Garhwal
2023-06-05 19:46 ` Julien Grall
2023-06-02 0:48 ` [XEN][PATCH v7 14/19] common/device_tree: Add rwlock for dt_host Vikram Garhwal
2023-06-02 1:58 ` Henry Wang
2023-06-05 7:10 ` Michal Orzel
2023-06-05 19:52 ` Julien Grall
2023-08-16 23:59 ` Vikram Garhwal
2023-06-02 0:48 ` [XEN][PATCH v7 15/19] xen/arm: Implement device tree node removal functionalities Vikram Garhwal
2023-06-02 9:31 ` Jan Beulich
2023-06-05 7:52 ` Michal Orzel
2023-06-05 21:07 ` Julien Grall
2023-08-17 0:31 ` Vikram Garhwal
2023-08-17 8:14 ` Julien Grall
2023-06-02 0:48 ` [XEN][PATCH v7 16/19] xen/arm: Implement device tree node addition functionalities Vikram Garhwal
2023-06-05 8:35 ` Michal Orzel
2023-06-02 0:48 ` [XEN][PATCH v7 17/19] tools/libs/ctrl: Implement new xc interfaces for dt overlay Vikram Garhwal
2023-06-12 11:17 ` Anthony PERARD
2023-06-02 0:48 ` [XEN][PATCH v7 18/19] tools/libs/light: Implement new libxl functions for device tree overlay ops Vikram Garhwal
2023-06-02 0:48 ` [XEN][PATCH v7 19/19] tools/xl: Add new xl command overlay for device tree overlay support Vikram Garhwal
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=d6a40e00-e2e3-81d9-b596-45dcfb2becd6@xen.org \
--to=julien@xen.org \
--cc=jbeulich@suse.com \
--cc=michal.orzel@amd.com \
--cc=sstabellini@kernel.org \
--cc=vikram.garhwal@amd.com \
--cc=xen-devel@lists.xenproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).