u16 ui_dbase_freq2pos(u32 lnbtype, u32 freq1, u32 freq2, u8 p_is_unicable, u8 p_unicable_type) { u16 pos; { switch(lnbtype) { case 0: // standard // MT_ASSERT(freq1 == freq2); pos = get_freq_index(freq1); break; case 1: // user // MT_ASSERT(freq1 != freq2); pos = freq1 < freq2 ? FREQ_VAL_CNT : FREQ_VAL_CNT + 1; break; case 2: // universal pos = FREQ_VAL_CNT + 2; break; default: MT_ASSERT(0); pos = 0; } } return pos; }
int single_freq_init (actuator_t *act) { int err; struct cpufreq_policy *policy; struct cpufreq_available_frequencies *freq_list; freq_scaler_data_t *data; unsigned long freq_min, freq_max; act->data = data = malloc(sizeof(freq_scaler_data_t)); fail_if(!data, "cannot allocate freq data block"); err = cpufreq_get_hardware_limits(act->core, &freq_min, &freq_max); fail_if(err, "cannot get cpufreq hardware limits"); act->min = freq_min; act->max = freq_max; policy = cpufreq_get_policy(act->core); fail_if(!policy, "cannot get cpufreq policy"); if (strcmp(policy->governor, "userspace") != 0) { err = cpufreq_modify_policy_governor(act->core, "userspace"); policy = cpufreq_get_policy(act->core); fail_if (strcmp(policy->governor, "userspace") != 0, "cannot set cpufreq policy to userspace"); } freq_list = cpufreq_get_available_frequencies(act->core); data->freq_count = create_freq_array(freq_list, &data->freq_array); fail_if(data->freq_count < 1, "cannot get frequency list"); act->value = act->set_value = cpufreq_get_freq_kernel(act->core); data->cur_index = get_freq_index(data, act->value); return 0; fail: return -1; }