From: Kevin Hilman <khil...@deeprootsystems.com>

During suspend and resume, when omap_device deactivation and
activation is happening, the timekeeping subsystem has likely already
been suspended.  Thus getnstimeofday() will fail and trigger a WARN().

Use read_persistent_clock() instead of getnstimeofday() to avoid this.

Signed-off-by: Kevin Hilman <khil...@deeprootsystems.com>
Signed-off-by: Paul Walmsley <p...@pwsan.com>
---
 arch/arm/plat-omap/omap_device.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/arm/plat-omap/omap_device.c b/arch/arm/plat-omap/omap_device.c
index 54fe0a2..9a502af 100644
--- a/arch/arm/plat-omap/omap_device.c
+++ b/arch/arm/plat-omap/omap_device.c
@@ -134,12 +134,12 @@ static int _omap_device_activate(struct omap_device *od, 
u8 ignore_lat)
                    (od->dev_wakeup_lat <= od->_dev_wakeup_lat_limit))
                        break;
 
-               getnstimeofday(&a);
+               read_persistent_clock(&a);
 
                /* XXX check return code */
                odpl->activate_func(od);
 
-               getnstimeofday(&b);
+               read_persistent_clock(&b);
 
                c = timespec_sub(b, a);
                act_lat = timespec_to_ns(&c) * NSEC_PER_USEC;
@@ -190,12 +190,12 @@ static int _omap_device_deactivate(struct omap_device 
*od, u8 ignore_lat)
                     od->_dev_wakeup_lat_limit))
                        break;
 
-               getnstimeofday(&a);
+               read_persistent_clock(&a);
 
                /* XXX check return code */
                odpl->deactivate_func(od);
 
-               getnstimeofday(&b);
+               read_persistent_clock(&b);
 
                c = timespec_sub(b, a);
                deact_lat = timespec_to_ns(&c) * NSEC_PER_USEC;


--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to