OMAP: omap_device: use read_persistent_clock() instead of getnstimeofday()
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>
This commit is contained in:
@@ -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))
|
(od->dev_wakeup_lat <= od->_dev_wakeup_lat_limit))
|
||||||
break;
|
break;
|
||||||
|
|
||||||
getnstimeofday(&a);
|
read_persistent_clock(&a);
|
||||||
|
|
||||||
/* XXX check return code */
|
/* XXX check return code */
|
||||||
odpl->activate_func(od);
|
odpl->activate_func(od);
|
||||||
|
|
||||||
getnstimeofday(&b);
|
read_persistent_clock(&b);
|
||||||
|
|
||||||
c = timespec_sub(b, a);
|
c = timespec_sub(b, a);
|
||||||
act_lat = timespec_to_ns(&c) * NSEC_PER_USEC;
|
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))
|
od->_dev_wakeup_lat_limit))
|
||||||
break;
|
break;
|
||||||
|
|
||||||
getnstimeofday(&a);
|
read_persistent_clock(&a);
|
||||||
|
|
||||||
/* XXX check return code */
|
/* XXX check return code */
|
||||||
odpl->deactivate_func(od);
|
odpl->deactivate_func(od);
|
||||||
|
|
||||||
getnstimeofday(&b);
|
read_persistent_clock(&b);
|
||||||
|
|
||||||
c = timespec_sub(b, a);
|
c = timespec_sub(b, a);
|
||||||
deact_lat = timespec_to_ns(&c) * NSEC_PER_USEC;
|
deact_lat = timespec_to_ns(&c) * NSEC_PER_USEC;
|
||||||
|
Reference in New Issue
Block a user