Loading arch/arm/plat-omap/omap_device.c +19 −31 Original line number Diff line number Diff line Loading @@ -102,21 +102,6 @@ /* Private functions */ /** * _read_32ksynct - read the OMAP 32K sync timer * * Returns the current value of the 32KiHz synchronization counter. * XXX this should be generalized to simply read the system clocksource. * XXX this should be moved to a separate synctimer32k.c file */ static u32 _read_32ksynct(void) { if (!cpu_class_is_omap2()) BUG(); return __raw_readl(OMAP2_IO_ADDRESS(OMAP_32KSYNCT_BASE + 0x010)); } /** * _omap_device_activate - increase device readiness * @od: struct omap_device * Loading @@ -133,13 +118,13 @@ static u32 _read_32ksynct(void) */ static int _omap_device_activate(struct omap_device *od, u8 ignore_lat) { u32 a, b; struct timespec a, b, c; pr_debug("omap_device: %s: activating\n", od->pdev.name); while (od->pm_lat_level > 0) { struct omap_device_pm_latency *odpl; int act_lat = 0; unsigned long long act_lat = 0; od->pm_lat_level--; Loading @@ -149,20 +134,22 @@ static int _omap_device_activate(struct omap_device *od, u8 ignore_lat) (od->dev_wakeup_lat <= od->_dev_wakeup_lat_limit)) break; a = _read_32ksynct(); getnstimeofday(&a); /* XXX check return code */ odpl->activate_func(od); b = _read_32ksynct(); getnstimeofday(&b); act_lat = (b - a) >> 15; /* 32KiHz cycles to microseconds */ c = timespec_sub(b, a); act_lat = timespec_to_ns(&c) * NSEC_PER_USEC; pr_debug("omap_device: %s: pm_lat %d: activate: elapsed time " "%d usec\n", od->pdev.name, od->pm_lat_level, act_lat); "%llu usec\n", od->pdev.name, od->pm_lat_level, act_lat); WARN(act_lat > odpl->activate_lat, "omap_device: %s.%d: " "activate step %d took longer than expected (%d > %d)\n", "activate step %d took longer than expected (%llu > %d)\n", od->pdev.name, od->pdev.id, od->pm_lat_level, act_lat, odpl->activate_lat); Loading @@ -188,13 +175,13 @@ static int _omap_device_activate(struct omap_device *od, u8 ignore_lat) */ static int _omap_device_deactivate(struct omap_device *od, u8 ignore_lat) { u32 a, b; struct timespec a, b, c; pr_debug("omap_device: %s: deactivating\n", od->pdev.name); while (od->pm_lat_level < od->pm_lats_cnt) { struct omap_device_pm_latency *odpl; int deact_lat = 0; unsigned long long deact_lat = 0; odpl = od->pm_lats + od->pm_lat_level; Loading @@ -203,23 +190,24 @@ static int _omap_device_deactivate(struct omap_device *od, u8 ignore_lat) od->_dev_wakeup_lat_limit)) break; a = _read_32ksynct(); getnstimeofday(&a); /* XXX check return code */ odpl->deactivate_func(od); b = _read_32ksynct(); getnstimeofday(&b); deact_lat = (b - a) >> 15; /* 32KiHz cycles to microseconds */ c = timespec_sub(b, a); deact_lat = timespec_to_ns(&c) * NSEC_PER_USEC; pr_debug("omap_device: %s: pm_lat %d: deactivate: elapsed time " "%d usec\n", od->pdev.name, od->pm_lat_level, "%llu usec\n", od->pdev.name, od->pm_lat_level, deact_lat); WARN(deact_lat > odpl->deactivate_lat, "omap_device: %s.%d: " "deactivate step %d took longer than expected (%d > %d)\n", od->pdev.name, od->pdev.id, od->pm_lat_level, deact_lat, odpl->deactivate_lat); "deactivate step %d took longer than expected " "(%llu > %d)\n", od->pdev.name, od->pdev.id, od->pm_lat_level, deact_lat, odpl->deactivate_lat); od->dev_wakeup_lat += odpl->activate_lat; Loading Loading
arch/arm/plat-omap/omap_device.c +19 −31 Original line number Diff line number Diff line Loading @@ -102,21 +102,6 @@ /* Private functions */ /** * _read_32ksynct - read the OMAP 32K sync timer * * Returns the current value of the 32KiHz synchronization counter. * XXX this should be generalized to simply read the system clocksource. * XXX this should be moved to a separate synctimer32k.c file */ static u32 _read_32ksynct(void) { if (!cpu_class_is_omap2()) BUG(); return __raw_readl(OMAP2_IO_ADDRESS(OMAP_32KSYNCT_BASE + 0x010)); } /** * _omap_device_activate - increase device readiness * @od: struct omap_device * Loading @@ -133,13 +118,13 @@ static u32 _read_32ksynct(void) */ static int _omap_device_activate(struct omap_device *od, u8 ignore_lat) { u32 a, b; struct timespec a, b, c; pr_debug("omap_device: %s: activating\n", od->pdev.name); while (od->pm_lat_level > 0) { struct omap_device_pm_latency *odpl; int act_lat = 0; unsigned long long act_lat = 0; od->pm_lat_level--; Loading @@ -149,20 +134,22 @@ static int _omap_device_activate(struct omap_device *od, u8 ignore_lat) (od->dev_wakeup_lat <= od->_dev_wakeup_lat_limit)) break; a = _read_32ksynct(); getnstimeofday(&a); /* XXX check return code */ odpl->activate_func(od); b = _read_32ksynct(); getnstimeofday(&b); act_lat = (b - a) >> 15; /* 32KiHz cycles to microseconds */ c = timespec_sub(b, a); act_lat = timespec_to_ns(&c) * NSEC_PER_USEC; pr_debug("omap_device: %s: pm_lat %d: activate: elapsed time " "%d usec\n", od->pdev.name, od->pm_lat_level, act_lat); "%llu usec\n", od->pdev.name, od->pm_lat_level, act_lat); WARN(act_lat > odpl->activate_lat, "omap_device: %s.%d: " "activate step %d took longer than expected (%d > %d)\n", "activate step %d took longer than expected (%llu > %d)\n", od->pdev.name, od->pdev.id, od->pm_lat_level, act_lat, odpl->activate_lat); Loading @@ -188,13 +175,13 @@ static int _omap_device_activate(struct omap_device *od, u8 ignore_lat) */ static int _omap_device_deactivate(struct omap_device *od, u8 ignore_lat) { u32 a, b; struct timespec a, b, c; pr_debug("omap_device: %s: deactivating\n", od->pdev.name); while (od->pm_lat_level < od->pm_lats_cnt) { struct omap_device_pm_latency *odpl; int deact_lat = 0; unsigned long long deact_lat = 0; odpl = od->pm_lats + od->pm_lat_level; Loading @@ -203,23 +190,24 @@ static int _omap_device_deactivate(struct omap_device *od, u8 ignore_lat) od->_dev_wakeup_lat_limit)) break; a = _read_32ksynct(); getnstimeofday(&a); /* XXX check return code */ odpl->deactivate_func(od); b = _read_32ksynct(); getnstimeofday(&b); deact_lat = (b - a) >> 15; /* 32KiHz cycles to microseconds */ c = timespec_sub(b, a); deact_lat = timespec_to_ns(&c) * NSEC_PER_USEC; pr_debug("omap_device: %s: pm_lat %d: deactivate: elapsed time " "%d usec\n", od->pdev.name, od->pm_lat_level, "%llu usec\n", od->pdev.name, od->pm_lat_level, deact_lat); WARN(deact_lat > odpl->deactivate_lat, "omap_device: %s.%d: " "deactivate step %d took longer than expected (%d > %d)\n", od->pdev.name, od->pdev.id, od->pm_lat_level, deact_lat, odpl->deactivate_lat); "deactivate step %d took longer than expected " "(%llu > %d)\n", od->pdev.name, od->pdev.id, od->pm_lat_level, deact_lat, odpl->deactivate_lat); od->dev_wakeup_lat += odpl->activate_lat; Loading