OMAP: omap_device: use read_persistent_clock() instead of getnstimeofday()
authorKevin Hilman <khilman@deeprootsystems.com>
Tue, 8 Dec 2009 23:34:23 +0000 (16:34 -0700)
committerpaul <paul@twilight.(none)>
Sat, 12 Dec 2009 00:00:44 +0000 (17:00 -0700)
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 <khilman@deeprootsystems.com>
Signed-off-by: Paul Walmsley <paul@pwsan.com>
arch/arm/plat-omap/omap_device.c

index 54fe0a2..9a502af 100644 (file)
@@ -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;