void htc_PM_monitor_work(struct work_struct *work) { struct timespec ts; struct rtc_time tm; if (htc_pm_monitor_wq == NULL) return; getnstimeofday(&ts); rtc_time_to_tm(ts.tv_sec - (sys_tz.tz_minuteswest * 60), &tm); printk(KERN_INFO "[K] [PM] hTC PM Statistic "); printk(KERN_INFO "[K] %02d-%02d %02d:%02d:%02d \n", tm.tm_mon + 1, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec); /* htc_show_interrupts(); */ htc_idle_stat_show(HTC_PM_STATSTIC_DELAY); #if CONFIG_SMD_OFFSET_TCXO_STAT print_sleep_stat(); #endif htc_idle_stat_clear(); htc_timer_stats_OnOff('0'); htc_timer_stats_show(300); htc_timer_stats_OnOff('1'); htc_print_active_wake_locks(WAKE_LOCK_IDLE); htc_print_active_wake_locks(WAKE_LOCK_SUSPEND); queue_delayed_work(htc_pm_monitor_wq, &htc_pm_delayed_work, msecs_to_jiffies(HTC_PM_STATSTIC_DELAY)); htc_kernel_top(); }
void htc_pm_monitor_work(struct work_struct *work) { struct timespec ts; struct rtc_time tm; if (htc_pm_monitor_wq == NULL) return; getnstimeofday(&ts); rtc_time_to_tm(ts.tv_sec - (sys_tz.tz_minuteswest * 60), &tm); printk("[K] [PM] hTC PM Statistic start (%02d-%02d %02d:%02d:%02d) \n", tm.tm_mon + 1, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec); htc_show_interrupts(); htc_xo_block_clks_count_show(); htc_xo_block_clks_count_clear(); msm_xo_print_voters(); htc_idle_stat_show(msm_htc_util_delay_time); htc_idle_stat_clear(); htc_timer_stats_onoff('0'); htc_timer_stats_show(300);/*Show timer events which greater than 300 every 10 sec*/ htc_timer_stats_onoff('1'); htc_print_active_wake_locks(WAKE_LOCK_IDLE); htc_print_active_wake_locks(WAKE_LOCK_SUSPEND); queue_delayed_work(htc_pm_monitor_wq, &htc_pm_delayed_work, msecs_to_jiffies(msm_htc_util_delay_time)); htc_kernel_top(); printk("[K] [PM] hTC PM Statistic done\n"); }
void htc_pm_monitor_work(struct work_struct *work) { struct timespec ts; struct rtc_time tm; if (htc_pm_monitor_wq == NULL){ printk(KERN_INFO "[K] hTc PM statistic is NILL.\n"); return; } getnstimeofday(&ts); rtc_time_to_tm(ts.tv_sec - (sys_tz.tz_minuteswest * 60), &tm); printk(KERN_INFO "[K] [PM] hTC PM Statistic "); printk(KERN_INFO "[K] %02d-%02d %02d:%02d:%02d \n", tm.tm_mon + 1, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec); htc_idle_stat_show(msm_htc_util_delay_time); htc_idle_stat_clear(); htc_timer_stats_OnOff('0'); htc_timer_stats_show(300); htc_timer_stats_OnOff('1'); #if 0 htc_print_active_perf_locks(); #endif htc_print_active_wake_locks(WAKE_LOCK_SUSPEND); queue_delayed_work(htc_pm_monitor_wq, &htc_pm_delayed_work, msecs_to_jiffies(msm_htc_util_delay_time)); htc_kernel_top(); }