]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ARM: OMAP: Move omap-pm-noop.c local to mach-omap2
authorTony Lindgren <tony@atomide.com>
Mon, 29 Oct 2012 22:20:45 +0000 (15:20 -0700)
committerTony Lindgren <tony@atomide.com>
Wed, 31 Oct 2012 22:37:13 +0000 (15:37 -0700)
This code should be private to mach-omap2.

The only use for it in for omap1 has been in dmtimer.c
to check for context loss. However, omap1 does not
lose context during idle, so the code is not needed.
Further, omap1 timer has OMAP_TIMER_ALWON set, so omap1
was not hitting omap_pm_get_dev_context_loss_count()
test.

Cc: Jon Hunter <jon-hunter@ti.com>
Cc: Kevin Hilman <khilman@deeprootsystems.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
arch/arm/mach-omap2/Makefile
arch/arm/mach-omap2/omap-pm-noop.c [moved from arch/arm/plat-omap/omap-pm-noop.c with 99% similarity]
arch/arm/mach-omap2/timer.c
arch/arm/plat-omap/Makefile
arch/arm/plat-omap/dmtimer.c
arch/arm/plat-omap/include/plat/dmtimer.h
drivers/media/platform/omap3isp/ispvideo.c

index e3de5d4a57d6678c783c8e0d134870f0179ecdc7..b118ed5f61a9007754fccf3e7772a6acc8174e41 100644 (file)
@@ -70,6 +70,7 @@ obj-$(CONFIG_ARCH_OMAP4)              += pm44xx.o omap-mpuss-lowpower.o
 obj-$(CONFIG_ARCH_OMAP4)               += sleep44xx.o
 obj-$(CONFIG_SOC_OMAP5)                        += omap-mpuss-lowpower.o sleep44xx.o
 obj-$(CONFIG_PM_DEBUG)                 += pm-debug.o
+obj-$(CONFIG_OMAP_PM_NOOP)             += omap-pm-noop.o
 
 obj-$(CONFIG_POWER_AVS_OMAP)           += sr_device.o
 obj-$(CONFIG_POWER_AVS_OMAP_CLASS3)    += smartreflex-class3.o
similarity index 99%
rename from arch/arm/plat-omap/omap-pm-noop.c
rename to arch/arm/mach-omap2/omap-pm-noop.c
index 198685b894b02174c63e70d854fb02090e630819..6a3be2bebddb638ec5b34c0241ee780e1f9e3918 100644 (file)
@@ -22,8 +22,8 @@
 #include <linux/device.h>
 #include <linux/platform_device.h>
 
-#include "../mach-omap2/omap_device.h"
-#include "../mach-omap2/omap-pm.h"
+#include "omap_device.h"
+#include "omap-pm.h"
 
 static bool off_mode_enabled;
 static int dummy_context_loss_counter;
index 565e5755c9bc9f9352a3876341e958c5a39a2074..95e447890cd5c6240cf09452fd3ca701cb3649c6 100644 (file)
@@ -559,6 +559,8 @@ static int __init omap_timer_init(struct omap_hwmod *oh, void *unused)
        if (timer_dev_attr)
                pdata->timer_capability = timer_dev_attr->timer_capability;
 
+       pdata->get_context_loss_count = omap_pm_get_dev_context_loss_count;
+
        pdev = omap_device_build(name, id, oh, pdata, sizeof(*pdata),
                                 NULL, 0, 0);
 
index 4bd0ace20e983d691cf3f76382b47b9dcdc940b3..50da9bf5d95cbcb19427fdf5d97800c366a64efe 100644 (file)
@@ -19,4 +19,3 @@ obj-y += $(i2c-omap-m) $(i2c-omap-y)
 # OMAP mailbox framework
 obj-$(CONFIG_OMAP_MBOX_FWK) += mailbox.o
 
-obj-$(CONFIG_OMAP_PM_NOOP) += omap-pm-noop.o
index 4a0b30a4ebda90fb81a1d4c3518626dd6192a86f..9a0bbc455de719ec297b38f939cd8ede5225796c 100644 (file)
@@ -45,8 +45,6 @@
 
 #include <mach/hardware.h>
 
-#include "../mach-omap2/omap-pm.h"
-
 static u32 omap_reserved_systimers;
 static LIST_HEAD(omap_timer_list);
 static DEFINE_SPINLOCK(dm_timer_lock);
@@ -349,7 +347,8 @@ int omap_dm_timer_start(struct omap_dm_timer *timer)
        omap_dm_timer_enable(timer);
 
        if (!(timer->capability & OMAP_TIMER_ALWON)) {
-               if (omap_pm_get_dev_context_loss_count(&timer->pdev->dev) !=
+               if (timer->get_context_loss_count &&
+                       timer->get_context_loss_count(&timer->pdev->dev) !=
                                timer->ctx_loss_count)
                        omap_timer_restore_context(timer);
        }
@@ -378,9 +377,11 @@ int omap_dm_timer_stop(struct omap_dm_timer *timer)
 
        __omap_dm_timer_stop(timer, timer->posted, rate);
 
-       if (!(timer->capability & OMAP_TIMER_ALWON))
-               timer->ctx_loss_count =
-                       omap_pm_get_dev_context_loss_count(&timer->pdev->dev);
+       if (!(timer->capability & OMAP_TIMER_ALWON)) {
+               if (timer->get_context_loss_count)
+                       timer->ctx_loss_count =
+                               timer->get_context_loss_count(&timer->pdev->dev);
+       }
 
        /*
         * Since the register values are computed and written within
@@ -496,7 +497,8 @@ int omap_dm_timer_set_load_start(struct omap_dm_timer *timer, int autoreload,
        omap_dm_timer_enable(timer);
 
        if (!(timer->capability & OMAP_TIMER_ALWON)) {
-               if (omap_pm_get_dev_context_loss_count(&timer->pdev->dev) !=
+               if (timer->get_context_loss_count &&
+                       timer->get_context_loss_count(&timer->pdev->dev) !=
                                timer->ctx_loss_count)
                        omap_timer_restore_context(timer);
        }
@@ -730,6 +732,7 @@ static int __devinit omap_dm_timer_probe(struct platform_device *pdev)
        timer->reserved = omap_dm_timer_reserved_systimer(timer->id);
        timer->pdev = pdev;
        timer->capability = pdata->timer_capability;
+       timer->get_context_loss_count = pdata->get_context_loss_count;
 
        /* Skip pm_runtime_enable for OMAP1 */
        if (!(timer->capability & OMAP_TIMER_NEEDS_RESET)) {
index 85868e98c11cd4ce4466da49669ee4cafc41c29f..3f5b9cfd9c0b1707fc6740baaa9d15069def05fe 100644 (file)
@@ -94,6 +94,7 @@ struct dmtimer_platform_data {
        /* set_timer_src - Only used for OMAP1 devices */
        int (*set_timer_src)(struct platform_device *pdev, int source);
        u32 timer_capability;
+       int (*get_context_loss_count)(struct device *);
 };
 
 int omap_dm_timer_reserve_systimer(int id);
@@ -263,6 +264,7 @@ struct omap_dm_timer {
        unsigned reserved:1;
        unsigned posted:1;
        struct timer_regs context;
+       int (*get_context_loss_count)(struct device *);
        int ctx_loss_count;
        int revision;
        u32 capability;
index a0b737fecf138e61413fca9ca6c36443b5b452f4..5bd40e6870cc36176ea787208f6a707403d86793 100644 (file)
@@ -36,7 +36,6 @@
 #include <media/v4l2-ioctl.h>
 #include <plat/iommu.h>
 #include <plat/iovmm.h>
-#include <plat/omap-pm.h>
 
 #include "ispvideo.h"
 #include "isp.h"