* [PATCH] EDAC, altera: wrap edac pm with a CONFIG_PM
@ 2015-06-05 13:49 dinguyen
2015-06-05 15:15 ` Borislav Petkov
0 siblings, 1 reply; 5+ messages in thread
From: dinguyen @ 2015-06-05 13:49 UTC (permalink / raw)
To: bp
Cc: dinh.linux, tthayer, atull, dougthompson, mchehab, linux-edac,
linux-kernel, Dinh Nguyen
From: Alan Tull <atull@opensource.altera.com>
Suspend-to-RAM and EDAC support are mutually exclusive on
SOCFPGA. If the EDAC is enabled, it will prevent the
platform from going into suspend.
Signed-off-by: Alan Tull <atull@opensource.altera.com>
Signed-off-by: Dinh Nguyen <dinguyen@opensource.altera.com>
Acked-by: Borislav Petkov <bp@suse.de>
---
Hi Boris,
Please apply this patch to your for-next? This was part of Alan Tull's
suspend-to-ram patch that I was going to take through arm-soc. But if
I left the patch as it was, it would have caused a merge conflict for
v4.2.
Thanks,
Dinh
---
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 182c741..23ef091 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.2.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] EDAC, altera: wrap edac pm with a CONFIG_PM
2015-06-05 13:49 [PATCH] EDAC, altera: wrap edac pm with a CONFIG_PM dinguyen
@ 2015-06-05 15:15 ` Borislav Petkov
2015-06-05 21:40 ` Thor Thayer
0 siblings, 1 reply; 5+ messages in thread
From: Borislav Petkov @ 2015-06-05 15:15 UTC (permalink / raw)
To: dinguyen
Cc: dinh.linux, tthayer, atull, dougthompson, mchehab, linux-edac,
linux-kernel
On Fri, Jun 05, 2015 at 08:49:15AM -0500, dinguyen@opensource.altera.com wrote:
> From: Alan Tull <atull@opensource.altera.com>
>
> Suspend-to-RAM and EDAC support are mutually exclusive on
> SOCFPGA. If the EDAC is enabled, it will prevent the
> platform from going into suspend.
Btw, what is exactly the problem with EDAC being enabled and not being
able to suspend? Is it a hardware issue?
Because if it is sw one, we probably could change the EDAC core to
accomodate power management. On x86 we don't need to do anything special
to EDAC wrt PM though - we simply suspend.
Thanks.
--
Regards/Gruss,
Boris.
ECO tip #101: Trim your mails when you reply.
--
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] EDAC, altera: wrap edac pm with a CONFIG_PM
2015-06-05 15:15 ` Borislav Petkov
@ 2015-06-05 21:40 ` Thor Thayer
2015-06-06 8:01 ` Borislav Petkov
0 siblings, 1 reply; 5+ messages in thread
From: Thor Thayer @ 2015-06-05 21:40 UTC (permalink / raw)
To: Borislav Petkov, dinguyen
Cc: dinh.linux, atull, dougthompson, mchehab, linux-edac,
linux-kernel
Hi Boris,
On 06/05/2015 10:15 AM, Borislav Petkov wrote:
> On Fri, Jun 05, 2015 at 08:49:15AM -0500, dinguyen@opensource.altera.com wrote:
>> From: Alan Tull <atull@opensource.altera.com>
>>
>> Suspend-to-RAM and EDAC support are mutually exclusive on
>> SOCFPGA. If the EDAC is enabled, it will prevent the
>> platform from going into suspend.
>
> Btw, what is exactly the problem with EDAC being enabled and not being
> able to suspend? Is it a hardware issue?
>
> Because if it is sw one, we probably could change the EDAC core to
> accomodate power management. On x86 we don't need to do anything special
> to EDAC wrt PM though - we simply suspend.
>
> Thanks.
>
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.
Thor
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] EDAC, altera: wrap edac pm with a CONFIG_PM
2015-06-05 21:40 ` Thor Thayer
@ 2015-06-06 8:01 ` Borislav Petkov
2015-06-08 0:46 ` atull
0 siblings, 1 reply; 5+ messages in thread
From: Borislav Petkov @ 2015-06-06 8:01 UTC (permalink / raw)
To: Thor Thayer
Cc: dinguyen, dinh.linux, atull, dougthompson, mchehab, linux-edac,
linux-kernel
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.
---
From: Alan Tull <atull@opensource.altera.com>
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@opensource.altera.com>
Signed-off-by: Dinh Nguyen <dinguyen@opensource.altera.com>
Cc: dinh.linux@gmail.com
Cc: dougthompson@xmission.com
Cc: linux-edac <linux-edac@vger.kernel.org>
Cc: mchehab@osg.samsung.com
Cc: tthayer@opensource.altera.com
Link: http://lkml.kernel.org/r/1433512155-9906-1-git-send-email-dinguyen@opensource.altera.com
Signed-off-by: Borislav Petkov <bp@suse.de>
---
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.
--
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] EDAC, altera: wrap edac pm with a CONFIG_PM
2015-06-06 8:01 ` Borislav Petkov
@ 2015-06-08 0:46 ` atull
0 siblings, 0 replies; 5+ messages in thread
From: atull @ 2015-06-08 0:46 UTC (permalink / raw)
To: Borislav Petkov
Cc: Thor Thayer, dinguyen, dinh.linux, dougthompson, mchehab,
linux-edac, linux-kernel
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@opensource.altera.com>
> 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@opensource.altera.com>
> Signed-off-by: Dinh Nguyen <dinguyen@opensource.altera.com>
> Cc: dinh.linux@gmail.com
> Cc: dougthompson@xmission.com
> Cc: linux-edac <linux-edac@vger.kernel.org>
> Cc: mchehab@osg.samsung.com
> Cc: tthayer@opensource.altera.com
> Link: http://lkml.kernel.org/r/1433512155-9906-1-git-send-email-dinguyen@opensource.altera.com
> Signed-off-by: Borislav Petkov <bp@suse.de>
> ---
> 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.
> --
>
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2015-06-08 1:04 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-06-05 13:49 [PATCH] EDAC, altera: wrap edac pm with a CONFIG_PM dinguyen
2015-06-05 15:15 ` Borislav Petkov
2015-06-05 21:40 ` Thor Thayer
2015-06-06 8:01 ` Borislav Petkov
2015-06-08 0:46 ` atull
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox