[PATCH v6 6/7] lib: sbi: Remove 0/1 probe implementations

Anup Patel anup at brainfault.org
Sun May 21 08:31:59 PDT 2023


On Mon, May 15, 2023 at 4:42 PM Andrew Jones <ajones at ventanamicro.com> wrote:
>
> When a probe implementation just returns zero for not available and
> one for available then we don't need it, as the extension won't be
> registered at all if it would return zero and the Base extension
> probe function will already set out_val to 1 if not probe function
> is implemented. Currently all probe functions only return zero or
> one, so remove them all.
>
> Signed-off-by: Andrew Jones <ajones at ventanamicro.com>
> Reviewed-by: Anup Patel <anup at brainfault.org>

Applied this patch to the riscv/opensbi repo.

Thanks,
Anup

> ---
>  lib/sbi/sbi_ecall_cppc.c |  7 -------
>  lib/sbi/sbi_ecall_dbcn.c |  7 -------
>  lib/sbi/sbi_ecall_srst.c | 18 +++++-------------
>  lib/sbi/sbi_ecall_susp.c | 17 +++++------------
>  4 files changed, 10 insertions(+), 39 deletions(-)
>
> diff --git a/lib/sbi/sbi_ecall_cppc.c b/lib/sbi/sbi_ecall_cppc.c
> index a6398ac78226..b54d54ec684c 100644
> --- a/lib/sbi/sbi_ecall_cppc.c
> +++ b/lib/sbi/sbi_ecall_cppc.c
> @@ -49,12 +49,6 @@ static int sbi_ecall_cppc_handler(unsigned long extid, unsigned long funcid,
>         return ret;
>  }
>
> -static int sbi_ecall_cppc_probe(unsigned long extid, unsigned long *out_val)
> -{
> -       *out_val = sbi_cppc_get_device() ? 1 : 0;
> -       return 0;
> -}
> -
>  struct sbi_ecall_extension ecall_cppc;
>
>  static int sbi_ecall_cppc_register_extensions(void)
> @@ -69,6 +63,5 @@ struct sbi_ecall_extension ecall_cppc = {
>         .extid_start            = SBI_EXT_CPPC,
>         .extid_end              = SBI_EXT_CPPC,
>         .register_extensions    = sbi_ecall_cppc_register_extensions,
> -       .probe                  = sbi_ecall_cppc_probe,
>         .handle                 = sbi_ecall_cppc_handler,
>  };
> diff --git a/lib/sbi/sbi_ecall_dbcn.c b/lib/sbi/sbi_ecall_dbcn.c
> index cbb2e802e615..e0b892c2ed6b 100644
> --- a/lib/sbi/sbi_ecall_dbcn.c
> +++ b/lib/sbi/sbi_ecall_dbcn.c
> @@ -58,12 +58,6 @@ static int sbi_ecall_dbcn_handler(unsigned long extid, unsigned long funcid,
>         return SBI_ENOTSUPP;
>  }
>
> -static int sbi_ecall_dbcn_probe(unsigned long extid, unsigned long *out_val)
> -{
> -       *out_val = sbi_console_get_device() ? 1 : 0;
> -       return 0;
> -}
> -
>  struct sbi_ecall_extension ecall_dbcn;
>
>  static int sbi_ecall_dbcn_register_extensions(void)
> @@ -78,6 +72,5 @@ struct sbi_ecall_extension ecall_dbcn = {
>         .extid_start            = SBI_EXT_DBCN,
>         .extid_end              = SBI_EXT_DBCN,
>         .register_extensions    = sbi_ecall_dbcn_register_extensions,
> -       .probe                  = sbi_ecall_dbcn_probe,
>         .handle                 = sbi_ecall_dbcn_handler,
>  };
> diff --git a/lib/sbi/sbi_ecall_srst.c b/lib/sbi/sbi_ecall_srst.c
> index fd2dc0d251f3..dcd560d22f9d 100644
> --- a/lib/sbi/sbi_ecall_srst.c
> +++ b/lib/sbi/sbi_ecall_srst.c
> @@ -48,7 +48,7 @@ static int sbi_ecall_srst_handler(unsigned long extid, unsigned long funcid,
>         return SBI_ENOTSUPP;
>  }
>
> -static int sbi_ecall_srst_probe(unsigned long extid, unsigned long *out_val)
> +static bool srst_available(void)
>  {
>         u32 type;
>
> @@ -56,27 +56,20 @@ static int sbi_ecall_srst_probe(unsigned long extid, unsigned long *out_val)
>          * At least one standard reset types should be supported by
>          * the platform for SBI SRST extension to be usable.
>          */
> -
>         for (type = 0; type <= SBI_SRST_RESET_TYPE_LAST; type++) {
>                 if (sbi_system_reset_supported(type,
> -                                       SBI_SRST_RESET_REASON_NONE)) {
> -                       *out_val = 1;
> -                       return 0;
> -               }
> +                                       SBI_SRST_RESET_REASON_NONE))
> +                       return true;
>         }
>
> -       *out_val = 0;
> -       return 0;
> +       return false;
>  }
>
>  struct sbi_ecall_extension ecall_srst;
>
>  static int sbi_ecall_srst_register_extensions(void)
>  {
> -       unsigned long out_val;
> -
> -       sbi_ecall_srst_probe(SBI_EXT_SRST, &out_val);
> -       if (!out_val)
> +       if (!srst_available())
>                 return 0;
>
>         return sbi_ecall_register_extension(&ecall_srst);
> @@ -86,6 +79,5 @@ struct sbi_ecall_extension ecall_srst = {
>         .extid_start            = SBI_EXT_SRST,
>         .extid_end              = SBI_EXT_SRST,
>         .register_extensions    = sbi_ecall_srst_register_extensions,
> -       .probe                  = sbi_ecall_srst_probe,
>         .handle                 = sbi_ecall_srst_handler,
>  };
> diff --git a/lib/sbi/sbi_ecall_susp.c b/lib/sbi/sbi_ecall_susp.c
> index 716a6d585af7..2bfd99ae8720 100644
> --- a/lib/sbi/sbi_ecall_susp.c
> +++ b/lib/sbi/sbi_ecall_susp.c
> @@ -23,7 +23,7 @@ static int sbi_ecall_susp_handler(unsigned long extid, unsigned long funcid,
>         return ret;
>  }
>
> -static int sbi_ecall_susp_probe(unsigned long extid, unsigned long *out_val)
> +static bool susp_available(void)
>  {
>         u32 type;
>
> @@ -32,24 +32,18 @@ static int sbi_ecall_susp_probe(unsigned long extid, unsigned long *out_val)
>          * platform for the SBI SUSP extension to be usable.
>          */
>         for (type = 0; type <= SBI_SUSP_SLEEP_TYPE_LAST; type++) {
> -               if (sbi_system_suspend_supported(type)) {
> -                       *out_val = 1;
> -                       return 0;
> -               }
> +               if (sbi_system_suspend_supported(type))
> +                       return true;
>         }
>
> -       *out_val = 0;
> -       return 0;
> +       return false;
>  }
>
>  struct sbi_ecall_extension ecall_susp;
>
>  static int sbi_ecall_susp_register_extensions(void)
>  {
> -       unsigned long out_val;
> -
> -       sbi_ecall_susp_probe(SBI_EXT_SUSP, &out_val);
> -       if (!out_val)
> +       if (!susp_available())
>                 return 0;
>
>         return sbi_ecall_register_extension(&ecall_susp);
> @@ -59,6 +53,5 @@ struct sbi_ecall_extension ecall_susp = {
>         .extid_start            = SBI_EXT_SUSP,
>         .extid_end              = SBI_EXT_SUSP,
>         .register_extensions    = sbi_ecall_susp_register_extensions,
> -       .probe                  = sbi_ecall_susp_probe,
>         .handle                 = sbi_ecall_susp_handler,
>  };
> --
> 2.40.0
>



More information about the opensbi mailing list