xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Vikram Garhwal <vikram.garhwal@amd.com>
To: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
Cc: michal.orzel@amd.com, sstabellini@kernel.org, jbeulich@suse.com,
	Luca.Fancellu@arm.com, Henry.Wang@arm.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: Tue, 6 Jun 2023 13:29:21 -0700	[thread overview]
Message-ID: <007122c9-1ab2-dd5e-bed4-64333113e55a@amd.com> (raw)
In-Reply-To: <d6a40e00-e2e3-81d9-b596-45dcfb2becd6@xen.org>

Hi,

On 6/5/23 12:12 PM, Julien Grall wrote:
> 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()"?
Thank you for the suggestion. This name was added in v3 as Luca Fancellu 
suggested to rename this function to "device_tree_find_node_by_path". I 
am okay with renaming it to dt_find_node_by_path_from().

Luca, Michal and Henry: Does the dt_find_node_by_path_from() name works 
for you?

Regards,
Vikram
>
>> 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.
Will fix the indention.
>
>>   +/**
>> + * 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,
>



  reply	other threads:[~2023-06-06 20:29 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
2023-06-06 20:29     ` Vikram Garhwal [this message]
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=007122c9-1ab2-dd5e-bed4-64333113e55a@amd.com \
    --to=vikram.garhwal@amd.com \
    --cc=Henry.Wang@arm.com \
    --cc=Luca.Fancellu@arm.com \
    --cc=jbeulich@suse.com \
    --cc=julien@xen.org \
    --cc=michal.orzel@amd.com \
    --cc=sstabellini@kernel.org \
    --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).