* [PATCH v4 1/3] arm: gpmc: Converts GPMC driver to pm_runtime capable
2013-06-12 11:00 [PATCH v4 0/3] suspend/resume support for OMAP nand driver Pekon Gupta
@ 2013-06-12 11:00 ` Pekon Gupta
2013-06-12 11:00 ` [PATCH v4 2/3] arm: gpmc: Low power transition support Pekon Gupta
2013-06-12 11:00 ` [PATCH v4 3/3] mtd: devices: elm: " Pekon Gupta
2 siblings, 0 replies; 6+ messages in thread
From: Pekon Gupta @ 2013-06-12 11:00 UTC (permalink / raw)
To: linux-mtd, linux-omap, tony; +Cc: avinash philip, Pekon Gupta
From: avinash philip <avinashphilip@ti.com>
Support for pm_runtime add to GPMC driver.
Signed-off-by: Philip Avinash <avinashphilip@ti.com>
Signed-off-by: Pekon Gupta <pekon@ti.com>
---
arch/arm/mach-omap2/gpmc.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/arch/arm/mach-omap2/gpmc.c b/arch/arm/mach-omap2/gpmc.c
index fb6f241..1380cee 100644
--- a/arch/arm/mach-omap2/gpmc.c
+++ b/arch/arm/mach-omap2/gpmc.c
@@ -30,6 +30,7 @@
#include <linux/of_mtd.h>
#include <linux/of_device.h>
#include <linux/mtd/nand.h>
+#include <linux/pm_runtime.h>
#include <linux/platform_data/mtd-nand-omap2.h>
@@ -1594,7 +1595,8 @@ static int gpmc_probe(struct platform_device *pdev)
return PTR_ERR(gpmc_l3_clk);
}
- clk_prepare_enable(gpmc_l3_clk);
+ pm_runtime_enable(&pdev->dev);
+ pm_runtime_get_sync(&pdev->dev);
gpmc_dev = &pdev->dev;
@@ -1634,7 +1636,7 @@ static int gpmc_probe(struct platform_device *pdev)
rc = gpmc_probe_dt(pdev);
if (rc < 0) {
- clk_disable_unprepare(gpmc_l3_clk);
+ pm_runtime_put_sync(&pdev->dev);
clk_put(gpmc_l3_clk);
dev_err(gpmc_dev, "failed to probe DT parameters\n");
return rc;
@@ -1647,6 +1649,8 @@ static int gpmc_remove(struct platform_device *pdev)
{
gpmc_free_irq();
gpmc_mem_exit();
+ pm_runtime_put_sync(&pdev->dev);
+ pm_runtime_disable(&pdev->dev);
gpmc_dev = NULL;
return 0;
}
--
1.8.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v4 2/3] arm: gpmc: Low power transition support
2013-06-12 11:00 [PATCH v4 0/3] suspend/resume support for OMAP nand driver Pekon Gupta
2013-06-12 11:00 ` [PATCH v4 1/3] arm: gpmc: Converts GPMC driver to pm_runtime capable Pekon Gupta
@ 2013-06-12 11:00 ` Pekon Gupta
2013-06-12 17:01 ` Tony Lindgren
2013-06-12 11:00 ` [PATCH v4 3/3] mtd: devices: elm: " Pekon Gupta
2 siblings, 1 reply; 6+ messages in thread
From: Pekon Gupta @ 2013-06-12 11:00 UTC (permalink / raw)
To: linux-mtd, linux-omap, tony; +Cc: avinash philip, Pekon Gupta
From: avinash philip <avinashphilip@ti.com>
With GPMC converted to platform driver recently, adds low power
transition support in driver itself.
Signed-off-by: Philip Avinash <avinashphilip@ti.com>
Signed-off-by: Pekon Gupta <pekon@ti.com>
---
arch/arm/mach-omap2/gpmc.c | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/arch/arm/mach-omap2/gpmc.c b/arch/arm/mach-omap2/gpmc.c
index 1380cee..b5c4752 100644
--- a/arch/arm/mach-omap2/gpmc.c
+++ b/arch/arm/mach-omap2/gpmc.c
@@ -1655,6 +1655,24 @@ static int gpmc_remove(struct platform_device *pdev)
return 0;
}
+#ifdef CONFIG_PM_SLEEP
+static int gpmc_suspend(struct device *dev)
+{
+ omap3_gpmc_save_context();
+ pm_runtime_put_sync(dev);
+ return 0;
+}
+
+static int gpmc_resume(struct device *dev)
+{
+ pm_runtime_get_sync(dev);
+ omap3_gpmc_restore_context();
+ return 0;
+}
+#endif
+
+static SIMPLE_DEV_PM_OPS(gpmc_pm_ops, gpmc_suspend, gpmc_resume);
+
static struct platform_driver gpmc_driver = {
.probe = gpmc_probe,
.remove = gpmc_remove,
@@ -1662,6 +1680,7 @@ static struct platform_driver gpmc_driver = {
.name = DEVICE_NAME,
.owner = THIS_MODULE,
.of_match_table = of_match_ptr(gpmc_dt_ids),
+ .pm = &gpmc_pm_ops,
},
};
--
1.8.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v4 2/3] arm: gpmc: Low power transition support
2013-06-12 11:00 ` [PATCH v4 2/3] arm: gpmc: Low power transition support Pekon Gupta
@ 2013-06-12 17:01 ` Tony Lindgren
2013-06-12 17:38 ` Tony Lindgren
0 siblings, 1 reply; 6+ messages in thread
From: Tony Lindgren @ 2013-06-12 17:01 UTC (permalink / raw)
To: Pekon Gupta; +Cc: linux-mtd, linux-omap, avinash philip
* Pekon Gupta <pekon@ti.com> [130612 04:07]:
> From: avinash philip <avinashphilip@ti.com>
>
> With GPMC converted to platform driver recently, adds low power
> transition support in driver itself.
Applying the first two patches of this series into omap-for-v3.11/gpmc.
Not taking the MTD patch, if it has dependencies to the first two
patches please let me know and also get an ack from Artem if you
want me to take it.
Regards,
Tony
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v4 2/3] arm: gpmc: Low power transition support
2013-06-12 17:01 ` Tony Lindgren
@ 2013-06-12 17:38 ` Tony Lindgren
0 siblings, 0 replies; 6+ messages in thread
From: Tony Lindgren @ 2013-06-12 17:38 UTC (permalink / raw)
To: Pekon Gupta; +Cc: linux-mtd, linux-omap, avinash philip
* Tony Lindgren <tony@atomide.com> [130612 10:08]:
> * Pekon Gupta <pekon@ti.com> [130612 04:07]:
> > From: avinash philip <avinashphilip@ti.com>
> >
> > With GPMC converted to platform driver recently, adds low power
> > transition support in driver itself.
>
> Applying the first two patches of this series into omap-for-v3.11/gpmc.
> Not taking the MTD patch, if it has dependencies to the first two
> patches please let me know and also get an ack from Artem if you
> want me to take it.
Oops, dropping the second patch in this series as it causes the
following if only omap4 is selected for example:
arch/arm/mach-omap2/built-in.o: In function `gpmc_resume':
dss-common.c:(.text+0x9a8): undefined reference to `omap3_gpmc_restore_context'
arch/arm/mach-omap2/built-in.o: In function `gpmc_suspend':
dss-common.c:(.text+0x9c8): undefined reference to `omap3_gpmc_save_context'
Can you please take a lok and fix that?
Regards,
Tony
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v4 3/3] mtd: devices: elm: Low power transition support
2013-06-12 11:00 [PATCH v4 0/3] suspend/resume support for OMAP nand driver Pekon Gupta
2013-06-12 11:00 ` [PATCH v4 1/3] arm: gpmc: Converts GPMC driver to pm_runtime capable Pekon Gupta
2013-06-12 11:00 ` [PATCH v4 2/3] arm: gpmc: Low power transition support Pekon Gupta
@ 2013-06-12 11:00 ` Pekon Gupta
2 siblings, 0 replies; 6+ messages in thread
From: Pekon Gupta @ 2013-06-12 11:00 UTC (permalink / raw)
To: linux-mtd, linux-omap, tony; +Cc: avinash philip, Pekon Gupta
From: avinash philip <avinashphilip@ti.com>
In low power modes of AM335X platforms, peripherals power is cut off.
This patch supports low power sleep transition support for ELM driver.
Signed-off-by: Philip Avinash <avinashphilip@ti.com>
Signed-off-by: Pekon Gupta <pekon@ti.com>
---
drivers/mtd/devices/elm.c | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/drivers/mtd/devices/elm.c b/drivers/mtd/devices/elm.c
index dccef9f..171efcd 100644
--- a/drivers/mtd/devices/elm.c
+++ b/drivers/mtd/devices/elm.c
@@ -20,6 +20,7 @@
#include <linux/interrupt.h>
#include <linux/io.h>
#include <linux/of.h>
+#include <linux/sched.h>
#include <linux/pm_runtime.h>
#include <linux/platform_data/elm.h>
@@ -385,6 +386,23 @@ static int elm_remove(struct platform_device *pdev)
return 0;
}
+static int elm_suspend(struct device *dev)
+{
+ pm_runtime_put_sync(dev);
+ return 0;
+}
+
+static int elm_resume(struct device *dev)
+{
+ struct elm_info *info = dev_get_drvdata(dev);
+
+ pm_runtime_get_sync(dev);
+ elm_config(dev, info->bch_type);
+ return 0;
+}
+
+static SIMPLE_DEV_PM_OPS(elm_pm_ops, elm_suspend, elm_resume);
+
#ifdef CONFIG_OF
static const struct of_device_id elm_of_match[] = {
{ .compatible = "ti,am3352-elm" },
@@ -398,6 +416,7 @@ static struct platform_driver elm_driver = {
.name = "elm",
.owner = THIS_MODULE,
.of_match_table = of_match_ptr(elm_of_match),
+ .pm = &elm_pm_ops,
},
.probe = elm_probe,
.remove = elm_remove,
--
1.8.1
^ permalink raw reply related [flat|nested] 6+ messages in thread