From bdbd0f47530beecb01bfd49733a43a6405dfe514 Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Sun, 4 Dec 2016 22:39:29 +0900 Subject: [PATCH] e cpufreq - dont emit message for min/max/cur freq if they didnt change saves some cpu when idile and polling cpu fre and finding nothing changed. @optimize --- src/modules/cpufreq/e_mod_main.c | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/modules/cpufreq/e_mod_main.c b/src/modules/cpufreq/e_mod_main.c index 685b85e61..24a9003f6 100644 --- a/src/modules/cpufreq/e_mod_main.c +++ b/src/modules/cpufreq/e_mod_main.c @@ -1300,6 +1300,7 @@ _cpufreq_cb_frequency_check_notify(void *data EINA_UNUSED, Eina_List *l; int active; static Eina_Bool init_set = EINA_FALSE; + Eina_Bool freq_changed = EINA_FALSE; if (!cpufreq_config) { @@ -1307,12 +1308,25 @@ _cpufreq_cb_frequency_check_notify(void *data EINA_UNUSED, return; } active = cpufreq_config->status->active; + if ((cpufreq_config->status) && (status) && + ( +#ifdef __OpenBSD__ + (status->cur_percent != cpufreq_config->status->cur_percent ) || +#endif + (status->cur_frequency != cpufreq_config->status->cur_frequency ) || + (status->cur_min_frequency != cpufreq_config->status->cur_min_frequency) || + (status->cur_max_frequency != cpufreq_config->status->cur_max_frequency) || + (status->can_set_frequency != cpufreq_config->status->can_set_frequency))) + freq_changed = EINA_TRUE; _cpufreq_status_free(cpufreq_config->status); cpufreq_config->status = status; - for (l = cpufreq_config->instances; l; l = l->next) + if (freq_changed) { - inst = l->data; - _cpufreq_face_update_current(inst); + for (l = cpufreq_config->instances; l; l = l->next) + { + inst = l->data; + _cpufreq_face_update_current(inst); + } } if (active != cpufreq_config->status->active) {