lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20200117132807.GL15507@dell>
Date:   Fri, 17 Jan 2020 13:28:07 +0000
From:   Lee Jones <lee.jones@...aro.org>
To:     Orson Zhai <orson.zhai@...soc.com>
Cc:     Arnd Bergmann <arnd@...db.de>, linux-kernel@...r.kernel.org,
        baolin.wang@...soc.com, chunyan.zhang@...soc.com
Subject: Re: [PATCH v3] mfd: syscon: Add arguments support for syscon
 reference

On Fri, 17 Jan 2020, Orson Zhai wrote:

> There are a lot of similar global registers being used across multiple SoCs
> from Unisoc. But most of these registers are assigned with different offset
> for different SoCs. It is hard to handle all of them in an all-in-one
> kernel image.
> 
> Add a helper function to get regmap with arguments where we could put some
> extra information such as the offset value.
> 
> Signed-off-by: Orson Zhai <orson.zhai@...soc.com>
> Tested-by: Baolin Wang <baolin.wang@...soc.com>
> Reviewed-by: Arnd Bergmann <arnd@...db.de>
> Acked-by: Lee Jones <lee.jones@...aro.org>
> ---
> 
> V3 Change:
>  Rebase on latest kernel v5.5-rc6 for Lee.

Still not applying.

I think it's a problem with the patch itself.

It looks like all of the tabs have been replaced with spaces also.

How are you sending the patch?

Arnd,

  Are you able to apply this?

>  drivers/mfd/syscon.c       | 29 +++++++++++++++++++++++++++++
>  include/linux/mfd/syscon.h | 14 ++++++++++++++
>  2 files changed, 43 insertions(+)
> 
> diff --git a/drivers/mfd/syscon.c b/drivers/mfd/syscon.c
> index e22197c..2918b05 100644
> --- a/drivers/mfd/syscon.c
> +++ b/drivers/mfd/syscon.c
> @@ -224,6 +224,35 @@ struct regmap *syscon_regmap_lookup_by_phandle(struct device_node *np,
>  }
>  EXPORT_SYMBOL_GPL(syscon_regmap_lookup_by_phandle);
> 
> +struct regmap *syscon_regmap_lookup_by_phandle_args(struct device_node *np,
> +                                       const char *property,
> +                                       int arg_count,
> +                                       unsigned int *out_args)
> +{
> +       struct device_node *syscon_np;
> +       struct of_phandle_args args;
> +       struct regmap *regmap;
> +       unsigned int index;
> +       int rc;
> +
> +       rc = of_parse_phandle_with_fixed_args(np, property, arg_count,
> +                       0, &args);
> +       if (rc)
> +               return ERR_PTR(rc);
> +
> +       syscon_np = args.np;
> +       if (!syscon_np)
> +               return ERR_PTR(-ENODEV);
> +
> +       regmap = syscon_node_to_regmap(syscon_np);
> +       for (index = 0; index < arg_count; index++)
> +               out_args[index] = args.args[index];
> +       of_node_put(syscon_np);
> +
> +       return regmap;
> +}
> +EXPORT_SYMBOL_GPL(syscon_regmap_lookup_by_phandle_args);
> +
>  static int syscon_probe(struct platform_device *pdev)
>  {
>         struct device *dev = &pdev->dev;
> diff --git a/include/linux/mfd/syscon.h b/include/linux/mfd/syscon.h
> index 112dc66..714cab1 100644
> --- a/include/linux/mfd/syscon.h
> +++ b/include/linux/mfd/syscon.h
> @@ -23,6 +23,11 @@ extern struct regmap *syscon_regmap_lookup_by_compatible(const char *s);
>  extern struct regmap *syscon_regmap_lookup_by_phandle(
>                                         struct device_node *np,
>                                         const char *property);
> +extern struct regmap *syscon_regmap_lookup_by_phandle_args(
> +                                       struct device_node *np,
> +                                       const char *property,
> +                                       int arg_count,
> +                                       unsigned int *out_args);
>  #else
>  static inline struct regmap *device_node_to_regmap(struct device_node *np)
>  {
> @@ -45,6 +50,15 @@ static inline struct regmap *syscon_regmap_lookup_by_phandle(
>  {
>         return ERR_PTR(-ENOTSUPP);
>  }
> +
> +static struct regmap *syscon_regmap_lookup_by_phandle_args(
> +                                       struct device_node *np,
> +                                       const char *property,
> +                                       int arg_count,
> +                                       unsigned int *out_args)
> +{
> +       return ERR_PTR(-ENOTSUPP);
> +}
>  #endif
> 
>  #endif /* __LINUX_MFD_SYSCON_H__ */

-- 
Lee Jones [李琼斯]
Linaro Services Technical Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ