aboutsummaryrefslogtreecommitdiffstats
path: root/patches.armadillo800eva/0100-fbdev-sh_mobile_meram-Backup-restore-device-register.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches.armadillo800eva/0100-fbdev-sh_mobile_meram-Backup-restore-device-register.patch')
-rw-r--r--patches.armadillo800eva/0100-fbdev-sh_mobile_meram-Backup-restore-device-register.patch122
1 files changed, 0 insertions, 122 deletions
diff --git a/patches.armadillo800eva/0100-fbdev-sh_mobile_meram-Backup-restore-device-register.patch b/patches.armadillo800eva/0100-fbdev-sh_mobile_meram-Backup-restore-device-register.patch
deleted file mode 100644
index 1c5fe16c2eabfc..00000000000000
--- a/patches.armadillo800eva/0100-fbdev-sh_mobile_meram-Backup-restore-device-register.patch
+++ /dev/null
@@ -1,122 +0,0 @@
-From 07eb0d7f0b84da3bf41c145f3aa555ca6a4ed7b2 Mon Sep 17 00:00:00 2001
-From: Damian Hobson-Garcia <dhobsong@igel.co.jp>
-Date: Wed, 22 Jun 2011 07:49:51 +0200
-Subject: fbdev: sh_mobile_meram: Backup/restore device registers on
- shutdown/resume
-
-Save and reconfigure the MERAM registers when the MERAM is powered down
-and restored
-
-Signed-off-by: Damian Hobson-Garcia <dhobsong@igel.co.jp>
-(cherry picked from commit 0b3bb77c3a07a94d878fd3219302c46209f7d71c)
-
-Signed-off-by: Simon Horman <horms@verge.net.au>
----
- drivers/video/sh_mobile_meram.c | 71 +++++++++++++++++++++++++++++++++++++++
- 1 file changed, 71 insertions(+)
-
-diff --git a/drivers/video/sh_mobile_meram.c b/drivers/video/sh_mobile_meram.c
-index cfa1a78..39f28a1 100644
---- a/drivers/video/sh_mobile_meram.c
-+++ b/drivers/video/sh_mobile_meram.c
-@@ -37,12 +37,31 @@
- #define MEQSEL1 0x40
- #define MEQSEL2 0x44
-
-+static unsigned long common_regs[] = {
-+ MEVCR1,
-+ MEQSEL1,
-+ MEQSEL2,
-+};
-+#define CMN_REGS_SIZE ARRAY_SIZE(common_regs)
-+
-+static unsigned long icb_regs[] = {
-+ MExxCTL,
-+ MExxBSIZE,
-+ MExxMNCF,
-+ MExxSARA,
-+ MExxSARB,
-+ MExxSBSIZE,
-+};
-+#define ICB_REGS_SIZE ARRAY_SIZE(icb_regs)
-+
- struct sh_mobile_meram_priv {
- void __iomem *base;
- struct mutex lock;
- unsigned long used_icb;
- int used_meram_cache_regions;
- unsigned long used_meram_cache[SH_MOBILE_MERAM_ICB_NUM];
-+ unsigned long cmn_saved_regs[CMN_REGS_SIZE];
-+ unsigned long icb_saved_regs[ICB_REGS_SIZE * SH_MOBILE_MERAM_ICB_NUM];
- };
-
- /* settings */
-@@ -469,6 +488,57 @@ static int sh_mobile_meram_update(struct sh_mobile_meram_info *pdata,
- return 0;
- }
-
-+static int sh_mobile_meram_runtime_suspend(struct device *dev)
-+{
-+ struct platform_device *pdev = to_platform_device(dev);
-+ struct sh_mobile_meram_priv *priv = platform_get_drvdata(pdev);
-+ int k, j;
-+
-+ for (k = 0; k < CMN_REGS_SIZE; k++)
-+ priv->cmn_saved_regs[k] = meram_read_reg(priv->base,
-+ common_regs[k]);
-+
-+ for (j = 0; j < 32; j++) {
-+ if (!test_bit(j, &priv->used_icb))
-+ continue;
-+ for (k = 0; k < ICB_REGS_SIZE; k++) {
-+ priv->icb_saved_regs[j * ICB_REGS_SIZE + k] =
-+ meram_read_icb(priv->base, j, icb_regs[k]);
-+ /* Reset ICB on resume */
-+ if (icb_regs[k] == MExxCTL)
-+ priv->icb_saved_regs[j * ICB_REGS_SIZE + k] =
-+ 0x70;
-+ }
-+ }
-+ return 0;
-+}
-+
-+static int sh_mobile_meram_runtime_resume(struct device *dev)
-+{
-+ struct platform_device *pdev = to_platform_device(dev);
-+ struct sh_mobile_meram_priv *priv = platform_get_drvdata(pdev);
-+ int k, j;
-+
-+ for (j = 0; j < 32; j++) {
-+ if (!test_bit(j, &priv->used_icb))
-+ continue;
-+ for (k = 0; k < ICB_REGS_SIZE; k++) {
-+ meram_write_icb(priv->base, j, icb_regs[k],
-+ priv->icb_saved_regs[j * ICB_REGS_SIZE + k]);
-+ }
-+ }
-+
-+ for (k = 0; k < CMN_REGS_SIZE; k++)
-+ meram_write_reg(priv->base, common_regs[k],
-+ priv->cmn_saved_regs[k]);
-+ return 0;
-+}
-+
-+static const struct dev_pm_ops sh_mobile_meram_dev_pm_ops = {
-+ .runtime_suspend = sh_mobile_meram_runtime_suspend,
-+ .runtime_resume = sh_mobile_meram_runtime_resume,
-+};
-+
- static struct sh_mobile_meram_ops sh_mobile_meram_ops = {
- .module = THIS_MODULE,
- .meram_register = sh_mobile_meram_register,
-@@ -557,6 +627,7 @@ static struct platform_driver sh_mobile_meram_driver = {
- .driver = {
- .name = "sh_mobile_meram",
- .owner = THIS_MODULE,
-+ .pm = &sh_mobile_meram_dev_pm_ops,
- },
- .probe = sh_mobile_meram_probe,
- .remove = sh_mobile_meram_remove,
---
-1.7.10
-