Lines Matching refs:pcc_ss_data
237 struct cppc_pcc_data *pcc_ss_data = pcc_data[pcc_ss_id]; in check_pcc_chan() local
239 pcc_ss_data->pcc_channel->shmem; in check_pcc_chan()
241 if (!pcc_ss_data->platform_owns_pcc) in check_pcc_chan()
250 pcc_ss_data->deadline_us); in check_pcc_chan()
253 pcc_ss_data->platform_owns_pcc = false; in check_pcc_chan()
272 struct cppc_pcc_data *pcc_ss_data = pcc_data[pcc_ss_id]; in send_pcc_cmd() local
274 pcc_ss_data->pcc_channel->shmem; in send_pcc_cmd()
287 if (pcc_ss_data->pending_pcc_write_cmd) in send_pcc_cmd()
294 pcc_ss_data->pending_pcc_write_cmd = FALSE; in send_pcc_cmd()
301 if (pcc_ss_data->pcc_mrtt) { in send_pcc_cmd()
303 pcc_ss_data->last_cmd_cmpl_time); in send_pcc_cmd()
304 if (pcc_ss_data->pcc_mrtt > time_delta) in send_pcc_cmd()
305 udelay(pcc_ss_data->pcc_mrtt - time_delta); in send_pcc_cmd()
319 if (pcc_ss_data->pcc_mpar) { in send_pcc_cmd()
320 if (pcc_ss_data->mpar_count == 0) { in send_pcc_cmd()
322 pcc_ss_data->last_mpar_reset); in send_pcc_cmd()
323 if ((time_delta < 60 * MSEC_PER_SEC) && pcc_ss_data->last_mpar_reset) { in send_pcc_cmd()
329 pcc_ss_data->last_mpar_reset = ktime_get(); in send_pcc_cmd()
330 pcc_ss_data->mpar_count = pcc_ss_data->pcc_mpar; in send_pcc_cmd()
332 pcc_ss_data->mpar_count--; in send_pcc_cmd()
341 pcc_ss_data->platform_owns_pcc = true; in send_pcc_cmd()
344 ret = mbox_send_message(pcc_ss_data->pcc_channel->mchan, &cmd); in send_pcc_cmd()
354 if (pcc_ss_data->pcc_mrtt) in send_pcc_cmd()
355 pcc_ss_data->last_cmd_cmpl_time = ktime_get(); in send_pcc_cmd()
357 if (pcc_ss_data->pcc_channel->mchan->mbox->txdone_irq) in send_pcc_cmd()
358 mbox_chan_txdone(pcc_ss_data->pcc_channel->mchan, ret); in send_pcc_cmd()
360 mbox_client_txdone(pcc_ss_data->pcc_channel->mchan, ret); in send_pcc_cmd()
371 if (desc->write_cmd_id == pcc_ss_data->pcc_write_cnt) in send_pcc_cmd()
375 pcc_ss_data->pcc_write_cnt++; in send_pcc_cmd()
376 wake_up_all(&pcc_ss_data->pcc_write_wait_q); in send_pcc_cmd()
1184 struct cppc_pcc_data *pcc_ss_data = NULL; in cppc_get_reg_val_in_pcc() local
1192 pcc_ss_data = pcc_data[pcc_ss_id]; in cppc_get_reg_val_in_pcc()
1194 down_write(&pcc_ss_data->pcc_lock); in cppc_get_reg_val_in_pcc()
1201 up_write(&pcc_ss_data->pcc_lock); in cppc_get_reg_val_in_pcc()
1237 struct cppc_pcc_data *pcc_ss_data = NULL; in cppc_set_reg_val_in_pcc() local
1249 pcc_ss_data = pcc_data[pcc_ss_id]; in cppc_set_reg_val_in_pcc()
1251 down_write(&pcc_ss_data->pcc_lock); in cppc_set_reg_val_in_pcc()
1254 up_write(&pcc_ss_data->pcc_lock); in cppc_set_reg_val_in_pcc()
1349 struct cppc_pcc_data *pcc_ss_data = NULL; in cppc_get_perf_caps() local
1374 pcc_ss_data = pcc_data[pcc_ss_id]; in cppc_get_perf_caps()
1376 down_write(&pcc_ss_data->pcc_lock); in cppc_get_perf_caps()
1420 up_write(&pcc_ss_data->pcc_lock); in cppc_get_perf_caps()
1486 struct cppc_pcc_data *pcc_ss_data = NULL; in cppc_get_perf_ctrs() local
1514 pcc_ss_data = pcc_data[pcc_ss_id]; in cppc_get_perf_ctrs()
1515 down_write(&pcc_ss_data->pcc_lock); in cppc_get_perf_ctrs()
1548 up_write(&pcc_ss_data->pcc_lock); in cppc_get_perf_ctrs()
1563 struct cppc_pcc_data *pcc_ss_data = NULL; in cppc_set_epp_perf() local
1592 pcc_ss_data = pcc_data[pcc_ss_id]; in cppc_set_epp_perf()
1594 down_write(&pcc_ss_data->pcc_lock); in cppc_set_epp_perf()
1597 up_write(&pcc_ss_data->pcc_lock); in cppc_set_epp_perf()
1753 struct cppc_pcc_data *pcc_ss_data = NULL; in cppc_set_perf() local
1777 pcc_ss_data = pcc_data[pcc_ss_id]; in cppc_set_perf()
1778 down_read(&pcc_ss_data->pcc_lock); /* BEGIN Phase-I */ in cppc_set_perf()
1779 if (pcc_ss_data->platform_owns_pcc) { in cppc_set_perf()
1782 up_read(&pcc_ss_data->pcc_lock); in cppc_set_perf()
1790 pcc_ss_data->pending_pcc_write_cmd = true; in cppc_set_perf()
1791 cpc_desc->write_cmd_id = pcc_ss_data->pcc_write_cnt; in cppc_set_perf()
1808 up_read(&pcc_ss_data->pcc_lock); /* END Phase-I */ in cppc_set_perf()
1856 if (down_write_trylock(&pcc_ss_data->pcc_lock)) {/* BEGIN Phase-II */ in cppc_set_perf()
1858 if (pcc_ss_data->pending_pcc_write_cmd) in cppc_set_perf()
1860 up_write(&pcc_ss_data->pcc_lock); /* END Phase-II */ in cppc_set_perf()
1863 wait_event(pcc_ss_data->pcc_write_wait_q, in cppc_set_perf()
1864 cpc_desc->write_cmd_id != pcc_ss_data->pcc_write_cnt); in cppc_set_perf()
1901 struct cppc_pcc_data *pcc_ss_data; in cppc_get_transition_latency() local
1915 pcc_ss_data = pcc_data[pcc_ss_id]; in cppc_get_transition_latency()
1916 if (pcc_ss_data->pcc_mpar) in cppc_get_transition_latency()
1917 latency_ns = 60 * (1000 * 1000 * 1000 / pcc_ss_data->pcc_mpar); in cppc_get_transition_latency()
1919 latency_ns = max_t(int, latency_ns, pcc_ss_data->pcc_nominal * 1000); in cppc_get_transition_latency()
1920 latency_ns = max_t(int, latency_ns, pcc_ss_data->pcc_mrtt * 1000); in cppc_get_transition_latency()