Re: [PATCH] EDAC, altera: wrap edac pm with a CONFIG_PM

From: atull
Date: Sun Jun 07 2015 - 21:04:48 EST


On Sat, 6 Jun 2015, Borislav Petkov wrote:

> On Fri, Jun 05, 2015 at 04:40:29PM -0500, Thor Thayer wrote:
> > Yes, in our case, it is a hardware issue but I'm still gathering
> > information.
> >
> > The IRQ vectors for OCRAM reside on DDR and in Suspend-to-RAM mode we're
> > executing out of OCRAM. If an ECC error occurs, we can't handle it so it was
> > decided to make them mutually exclusive.
>
> Thanks Thor,
>
> that's actually a good-enough explanation for me - I was just making
> sure that it is not some silly EDAC core limitation preventing you guys
> from doing suspend.
>
> Anyway, I've committed the version below, if you still feel you want to
> improve the explanation, no problem - it is the topmost patch on the
> branch and I can amend it easily.
>

Thanks Boris. That looks good.

Regards,
Alan


> ---
> From: Alan Tull <atull@xxxxxxxxxxxxxxxxxxxxx>
> Date: Fri, 5 Jun 2015 08:49:15 -0500
> Subject: [PATCH] EDAC, altera: Do not allow suspend when EDAC is enabled
>
> Suspend-to-RAM and EDAC support are mutually exclusive on SOCFPGA. If
> EDAC is enabled, it will prevent the platform from going into suspend.
>
> The reason is that the IRQ vectors for OCRAM reside on DDR and in
> Suspend-to-RAM mode we're executing out of OCRAM. If an ECC error
> occurs, we can't handle it so it was decided to make them mutually
> exclusive.
>
> Signed-off-by: Alan Tull <atull@xxxxxxxxxxxxxxxxxxxxx>
> Signed-off-by: Dinh Nguyen <dinguyen@xxxxxxxxxxxxxxxxxxxxx>
> Cc: dinh.linux@xxxxxxxxx
> Cc: dougthompson@xxxxxxxxxxxx
> Cc: linux-edac <linux-edac@xxxxxxxxxxxxxxx>
> Cc: mchehab@xxxxxxxxxxxxxxx
> Cc: tthayer@xxxxxxxxxxxxxxxxxxxxx
> Link: http://lkml.kernel.org/r/1433512155-9906-1-git-send-email-dinguyen@xxxxxxxxxxxxxxxxxxxxx
> Signed-off-by: Borislav Petkov <bp@xxxxxxx>
> ---
> drivers/edac/altera_edac.c | 20 ++++++++++++++++++++
> 1 file changed, 20 insertions(+)
>
> diff --git a/drivers/edac/altera_edac.c b/drivers/edac/altera_edac.c
> index 182c741adf3e..23ef0917483c 100644
> --- a/drivers/edac/altera_edac.c
> +++ b/drivers/edac/altera_edac.c
> @@ -477,11 +477,31 @@ static int altr_sdram_remove(struct platform_device *pdev)
> return 0;
> }
>
> +/*
> + * If you want to suspend, need to disable EDAC by removing it
> + * from the device tree or defconfig.
> + */
> +#ifdef CONFIG_PM
> +static int altr_sdram_prepare(struct device *dev)
> +{
> + pr_err("Suspend not allowed when EDAC is enabled.\n");
> +
> + return -EPERM;
> +}
> +
> +static const struct dev_pm_ops altr_sdram_pm_ops = {
> + .prepare = altr_sdram_prepare,
> +};
> +#endif
> +
> static struct platform_driver altr_sdram_edac_driver = {
> .probe = altr_sdram_probe,
> .remove = altr_sdram_remove,
> .driver = {
> .name = "altr_sdram_edac",
> +#ifdef CONFIG_PM
> + .pm = &altr_sdram_pm_ops,
> +#endif
> .of_match_table = altr_sdram_ctrl_of_match,
> },
> };
> --
> 2.3.5
>
> --
> Regards/Gruss,
> Boris.
>
> ECO tip #101: Trim your mails when you reply.
> --
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/