diff mbox series

xen/arm: Make use of DT_MATCH_TIMER in make_timer_node

Message ID 20220414095843.102305-1-michal.orzel@arm.com (mailing list archive)
State New, archived
Headers show
Series xen/arm: Make use of DT_MATCH_TIMER in make_timer_node | expand

Commit Message

Michal Orzel April 14, 2022, 9:58 a.m. UTC
DT_MATCH_TIMER stores the compatible timer ids and as such should be
used in all the places where we need to refer to them. make_timer_node
explicitly lists the same ids as the ones defined in DT_MATCH_TIMER so
make use of this macro instead.

Signed-off-by: Michal Orzel <michal.orzel@arm.com>
---
 xen/arch/arm/domain_build.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

Comments

Stefano Stabellini April 15, 2022, 11:10 p.m. UTC | #1
On Thu, 14 Apr 2022, Michal Orzel wrote:
> DT_MATCH_TIMER stores the compatible timer ids and as such should be
> used in all the places where we need to refer to them. make_timer_node
> explicitly lists the same ids as the ones defined in DT_MATCH_TIMER so
> make use of this macro instead.
> 
> Signed-off-by: Michal Orzel <michal.orzel@arm.com>

This is a good cleanup, thanks! time.h is not currently included by
domain_build.c, I think we should add:

#include <asm/time.h>

to domain_build.c 


> ---
>  xen/arch/arm/domain_build.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index 8be01678de..1472ca4972 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -1672,8 +1672,7 @@ static int __init make_timer_node(const struct kernel_info *kinfo)
>      void *fdt = kinfo->fdt;
>      static const struct dt_device_match timer_ids[] __initconst =
>      {
> -        DT_MATCH_COMPATIBLE("arm,armv7-timer"),
> -        DT_MATCH_COMPATIBLE("arm,armv8-timer"),
> +        DT_MATCH_TIMER,
>          { /* sentinel */ },
>      };
>      struct dt_device_node *dev;
> -- 
> 2.25.1
>
Michal Orzel April 19, 2022, 6:28 a.m. UTC | #2
Hi Stefano,

On 16.04.2022 01:10, Stefano Stabellini wrote:
> On Thu, 14 Apr 2022, Michal Orzel wrote:
>> DT_MATCH_TIMER stores the compatible timer ids and as such should be
>> used in all the places where we need to refer to them. make_timer_node
>> explicitly lists the same ids as the ones defined in DT_MATCH_TIMER so
>> make use of this macro instead.
>>
>> Signed-off-by: Michal Orzel <michal.orzel@arm.com>
> 
> This is a good cleanup, thanks! time.h is not currently included by
> domain_build.c, I think we should add:
> 
> #include <asm/time.h>
> 
> to domain_build.c 
> 
asm/time.h is included by xen/time.h which is included by xen/irq.h.
That is why there is no build failure and the patch itself is correct.

Furthermore DT_MATCH_TIMER is already used in domain_build.c (handle_node)
together with other constructs like TIMER_PHYS_SECURE_PPI defined in asm/time.h.

Cheers,
Michal
Stefano Stabellini April 20, 2022, 12:34 a.m. UTC | #3
On Tue, 19 Apr 2022, Michal Orzel wrote:
> Hi Stefano,
> 
> On 16.04.2022 01:10, Stefano Stabellini wrote:
> > On Thu, 14 Apr 2022, Michal Orzel wrote:
> >> DT_MATCH_TIMER stores the compatible timer ids and as such should be
> >> used in all the places where we need to refer to them. make_timer_node
> >> explicitly lists the same ids as the ones defined in DT_MATCH_TIMER so
> >> make use of this macro instead.
> >>
> >> Signed-off-by: Michal Orzel <michal.orzel@arm.com>
> > 
> > This is a good cleanup, thanks! time.h is not currently included by
> > domain_build.c, I think we should add:
> > 
> > #include <asm/time.h>
> > 
> > to domain_build.c 
> > 
> asm/time.h is included by xen/time.h which is included by xen/irq.h.
> That is why there is no build failure and the patch itself is correct.
> 
> Furthermore DT_MATCH_TIMER is already used in domain_build.c (handle_node)
> together with other constructs like TIMER_PHYS_SECURE_PPI defined in asm/time.h.

OK, fair point. We should disentangle the headers at some point but
given that this patch is not making anything worse:

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

and committed
diff mbox series

Patch

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 8be01678de..1472ca4972 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -1672,8 +1672,7 @@  static int __init make_timer_node(const struct kernel_info *kinfo)
     void *fdt = kinfo->fdt;
     static const struct dt_device_match timer_ids[] __initconst =
     {
-        DT_MATCH_COMPATIBLE("arm,armv7-timer"),
-        DT_MATCH_COMPATIBLE("arm,armv8-timer"),
+        DT_MATCH_TIMER,
         { /* sentinel */ },
     };
     struct dt_device_node *dev;