Lines Matching refs:gpstates

218 	struct global_pstate_info *gpstates = policy->driver_data;
220 gpstates->highest_lpstate_idx = 0;
221 gpstates->elapsed_time = 0;
222 gpstates->last_sampled_time = 0;
223 gpstates->last_lpstate_idx = 0;
224 gpstates->last_gpstate_idx = 0;
643 static inline void queue_gpstate_timer(struct global_pstate_info *gpstates)
653 if ((gpstates->elapsed_time + GPSTATE_TIMER_INTERVAL)
655 timer_interval = MAX_RAMP_DOWN_TIME - gpstates->elapsed_time;
659 mod_timer(&gpstates->timer, jiffies + msecs_to_jiffies(timer_interval));
673 struct global_pstate_info *gpstates = from_timer(gpstates, t, timer);
674 struct cpufreq_policy *policy = gpstates->policy;
678 - gpstates->last_sampled_time;
681 if (!spin_trylock(&gpstates->gpstate_lock))
688 gpstates->timer.expires = jiffies + msecs_to_jiffies(1);
689 add_timer_on(&gpstates->timer, cpumask_first(policy->cpus));
690 spin_unlock(&gpstates->gpstate_lock);
704 spin_unlock(&gpstates->gpstate_lock);
708 gpstates->last_sampled_time += time_diff;
709 gpstates->elapsed_time += time_diff;
711 if (gpstates->elapsed_time > MAX_RAMP_DOWN_TIME) {
715 gpstates->highest_lpstate_idx = gpstate_idx;
718 gpstate_idx = calc_global_pstate(gpstates->elapsed_time,
719 gpstates->highest_lpstate_idx,
723 gpstates->last_gpstate_idx = gpstate_idx;
724 gpstates->last_lpstate_idx = lpstate_idx;
729 if (gpstate_idx != gpstates->last_lpstate_idx)
730 queue_gpstate_timer(gpstates);
733 spin_unlock(&gpstates->gpstate_lock);
746 struct global_pstate_info *gpstates = policy->driver_data;
763 if (!gpstates) {
768 spin_lock(&gpstates->gpstate_lock);
770 if (!gpstates->last_sampled_time) {
772 gpstates->highest_lpstate_idx = new_index;
776 if (gpstates->last_gpstate_idx < new_index) {
777 gpstates->elapsed_time += cur_msec -
778 gpstates->last_sampled_time;
785 if (gpstates->elapsed_time > MAX_RAMP_DOWN_TIME) {
787 gpstates->highest_lpstate_idx = new_index;
791 gpstate_idx = calc_global_pstate(gpstates->elapsed_time,
792 gpstates->highest_lpstate_idx,
797 gpstates->highest_lpstate_idx = new_index;
806 queue_gpstate_timer(gpstates);
808 del_timer_sync(&gpstates->timer);
812 gpstates->last_sampled_time = cur_msec;
813 gpstates->last_gpstate_idx = gpstate_idx;
814 gpstates->last_lpstate_idx = new_index;
816 spin_unlock(&gpstates->gpstate_lock);
832 struct global_pstate_info *gpstates;
860 gpstates = kzalloc(sizeof(*gpstates), GFP_KERNEL);
861 if (!gpstates)
864 policy->driver_data = gpstates;
867 gpstates->policy = policy;
868 timer_setup(&gpstates->timer, gpstate_timer_handler,
870 gpstates->timer.expires = jiffies +
872 spin_lock_init(&gpstates->gpstate_lock);
880 struct global_pstate_info *gpstates = policy->driver_data;
885 if (gpstates)
886 del_timer_sync(&gpstates->timer);