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]
Date:	Mon, 4 May 2015 09:46:43 +0200
From:	Geert Uytterhoeven <geert@...ux-m68k.org>
To:	S Twiss <stwiss.opensource@...semi.com>
Cc:	Lee Jones <lee.jones@...aro.org>,
	Samuel Ortiz <sameo@...ux.intel.com>,
	DT <devicetree@...r.kernel.org>,
	David Dajun Chen <david.chen@...semi.com>,
	Dmitry Torokhov <dmitry.torokhov@...il.com>,
	INPUT <linux-input@...r.kernel.org>,
	Ian Campbell <ijc+devicetree@...lion.org.uk>,
	Kumar Gala <galak@...eaurora.org>,
	LKML <linux-kernel@...r.kernel.org>,
	Mark Rutland <mark.rutland@....com>,
	Pawel Moll <pawel.moll@....com>,
	Rob Herring <robh+dt@...nel.org>,
	Support Opensource <support.opensource@...semi.com>
Subject: Re: [PATCH V3 3/3] mfd: da9063: MFD support for OnKey driver

Hi Steve,

On Thu, Apr 30, 2015 at 1:26 PM, S Twiss <stwiss.opensource@...semi.com> wrote:
> Add MFD support for the DA9063 OnKey driver

Thanks  for your patch!

> --- a/drivers/mfd/da9063-core.c
> +++ b/drivers/mfd/da9063-core.c
> @@ -60,6 +60,7 @@ static struct resource da9063_rtc_resources[] = {
>
>  static struct resource da9063_onkey_resources[] = {
>         {
> +               .name   = "ONKEY",
>                 .start  = DA9063_IRQ_ONKEY,
>                 .end    = DA9063_IRQ_ONKEY,
>                 .flags  = IORESOURCE_IRQ,
> @@ -97,6 +98,7 @@ static const struct mfd_cell da9063_devs[] = {
>                 .name           = DA9063_DRVNAME_ONKEY,
>                 .num_resources  = ARRAY_SIZE(da9063_onkey_resources),
>                 .resources      = da9063_onkey_resources,
> +               .of_compatible = "dlg,da9063-onkey",
>         },
>         {
>                 .name           = DA9063_DRVNAME_RTC,
> @@ -109,12 +111,64 @@ static const struct mfd_cell da9063_devs[] = {
>         },
>  };
>
> +static int da9063_clear_fault_log(struct da9063 *da9063)
> +{
> +       int ret = 0;
> +       int fault_log = 0;
> +
> +       ret = regmap_read(da9063->regmap, DA9063_REG_FAULT_LOG, &fault_log);
> +       if (ret < 0) {
> +               dev_err(da9063->dev, "Cannot read FAULT_LOG.\n");
> +               return -EIO;
> +       }
> +
> +       if (fault_log) {
> +               if (fault_log & DA9063_TWD_ERROR)
> +                       dev_dbg(da9063->dev,
> +                               "Fault log entry detected: DA9063_TWD_ERROR\n");
> +               if (fault_log & DA9063_POR)
> +                       dev_dbg(da9063->dev,
> +                               "Fault log entry detected: DA9063_POR\n");
> +               if (fault_log & DA9063_VDD_FAULT)
> +                       dev_dbg(da9063->dev,
> +                               "Fault log entry detected: DA9063_VDD_FAULT\n");
> +               if (fault_log & DA9063_VDD_START)
> +                       dev_dbg(da9063->dev,
> +                               "Fault log entry detected: DA9063_VDD_START\n");
> +               if (fault_log & DA9063_TEMP_CRIT)
> +                       dev_dbg(da9063->dev,
> +                               "Fault log entry detected: DA9063_TEMP_CRIT\n");
> +               if (fault_log & DA9063_KEY_RESET)
> +                       dev_dbg(da9063->dev,
> +                               "Fault log entry detected: DA9063_KEY_RESET\n");
> +               if (fault_log & DA9063_NSHUTDOWN)
> +                       dev_dbg(da9063->dev,
> +                               "Fault log entry detected: DA9063_NSHUTDOWN\n");
> +               if (fault_log & DA9063_WAIT_SHUT)
> +                       dev_dbg(da9063->dev,
> +                               "Fault log entry detected: DA9063_WAIT_SHUT\n");
> +       }
> +
> +       ret = regmap_write(da9063->regmap,
> +                          DA9063_REG_FAULT_LOG,
> +                          fault_log);
> +       if (ret < 0)
> +               dev_err(da9063->dev,
> +                       "Cannot reset FAULT_LOG values %d\n", ret);
> +
> +       return ret;
> +}
> +
>  int da9063_device_init(struct da9063 *da9063, unsigned int irq)
>  {
>         struct da9063_pdata *pdata = da9063->dev->platform_data;
>         int model, variant_id, variant_code;
>         int ret;
>
> +       ret = da9063_clear_fault_log(da9063);
> +       if (ret < 0)
> +               dev_err(da9063->dev, "Cannot clear fault log\n");
> +
>         if (pdata) {
>                 da9063->flags = pdata->flags;
>                 da9063->irq_base = pdata->irq_base;

The code above doesn't seem to match the patch description.
Can you please explain why it is needed?

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@...ux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ