Lines Matching refs:pd

17 #define domain_to_rpmpd(domain) container_of(domain, struct rpmpd, pd)
43 .pd = { .name = #_name, }, \
50 .pd = { .name = #_active, }, \
60 .pd = { .name = #_name, }, \
68 .pd = { .name = #_name, }, \
76 .pd = { .name = #_name, }, \
84 .pd = { .name = #_name, }, \
97 struct generic_pm_domain pd; member
207 static int rpmpd_send_enable(struct rpmpd *pd, bool enable) in rpmpd_send_enable() argument
215 return qcom_rpm_smd_write(pd->rpm, QCOM_SMD_RPM_ACTIVE_STATE, in rpmpd_send_enable()
216 pd->res_type, pd->res_id, &req, sizeof(req)); in rpmpd_send_enable()
219 static int rpmpd_send_corner(struct rpmpd *pd, int state, unsigned int corner) in rpmpd_send_corner() argument
222 .key = pd->key, in rpmpd_send_corner()
227 return qcom_rpm_smd_write(pd->rpm, state, pd->res_type, pd->res_id, in rpmpd_send_corner()
231 static void to_active_sleep(struct rpmpd *pd, unsigned int corner, in to_active_sleep() argument
236 if (pd->active_only) in to_active_sleep()
242 static int rpmpd_aggregate_corner(struct rpmpd *pd) in rpmpd_aggregate_corner() argument
245 struct rpmpd *peer = pd->peer; in rpmpd_aggregate_corner()
250 to_active_sleep(pd, pd->corner, &this_active_corner, &this_sleep_corner); in rpmpd_aggregate_corner()
258 ret = rpmpd_send_corner(pd, QCOM_SMD_RPM_ACTIVE_STATE, active_corner); in rpmpd_aggregate_corner()
264 return rpmpd_send_corner(pd, QCOM_SMD_RPM_SLEEP_STATE, sleep_corner); in rpmpd_aggregate_corner()
270 struct rpmpd *pd = domain_to_rpmpd(domain); in rpmpd_power_on() local
274 ret = rpmpd_send_enable(pd, true); in rpmpd_power_on()
278 pd->enabled = true; in rpmpd_power_on()
280 if (pd->corner) in rpmpd_power_on()
281 ret = rpmpd_aggregate_corner(pd); in rpmpd_power_on()
292 struct rpmpd *pd = domain_to_rpmpd(domain); in rpmpd_power_off() local
296 ret = rpmpd_send_enable(pd, false); in rpmpd_power_off()
298 pd->enabled = false; in rpmpd_power_off()
309 struct rpmpd *pd = domain_to_rpmpd(domain); in rpmpd_set_performance() local
311 if (state > pd->max_state) in rpmpd_set_performance()
312 state = pd->max_state; in rpmpd_set_performance()
316 pd->corner = state; in rpmpd_set_performance()
319 if (!pd->enabled && pd->key != KEY_FLOOR_CORNER && in rpmpd_set_performance()
320 pd->key != KEY_FLOOR_LEVEL) in rpmpd_set_performance()
323 ret = rpmpd_aggregate_corner(pd); in rpmpd_set_performance()
376 rpmpds[i]->pd.power_off = rpmpd_power_off; in rpmpd_probe()
377 rpmpds[i]->pd.power_on = rpmpd_power_on; in rpmpd_probe()
378 rpmpds[i]->pd.set_performance_state = rpmpd_set_performance; in rpmpd_probe()
379 rpmpds[i]->pd.opp_to_performance_state = rpmpd_get_performance; in rpmpd_probe()
380 pm_genpd_init(&rpmpds[i]->pd, NULL, true); in rpmpd_probe()
382 data->domains[i] = &rpmpds[i]->pd; in rpmpd_probe()