Lines Matching refs:pcc_ss_data
191 struct cppc_pcc_data *pcc_ss_data = pcc_data[pcc_ss_id];
193 pcc_ss_data->pcc_comm_addr;
195 if (!pcc_ss_data->platform_owns_pcc)
204 pcc_ss_data->deadline_us);
207 pcc_ss_data->platform_owns_pcc = false;
226 struct cppc_pcc_data *pcc_ss_data = pcc_data[pcc_ss_id];
228 (struct acpi_pcct_shared_memory *)pcc_ss_data->pcc_comm_addr;
241 if (pcc_ss_data->pending_pcc_write_cmd)
248 pcc_ss_data->pending_pcc_write_cmd = FALSE;
255 if (pcc_ss_data->pcc_mrtt) {
257 pcc_ss_data->last_cmd_cmpl_time);
258 if (pcc_ss_data->pcc_mrtt > time_delta)
259 udelay(pcc_ss_data->pcc_mrtt - time_delta);
273 if (pcc_ss_data->pcc_mpar) {
274 if (pcc_ss_data->mpar_count == 0) {
276 pcc_ss_data->last_mpar_reset);
277 if ((time_delta < 60 * MSEC_PER_SEC) && pcc_ss_data->last_mpar_reset) {
283 pcc_ss_data->last_mpar_reset = ktime_get();
284 pcc_ss_data->mpar_count = pcc_ss_data->pcc_mpar;
286 pcc_ss_data->mpar_count--;
295 pcc_ss_data->platform_owns_pcc = true;
298 ret = mbox_send_message(pcc_ss_data->pcc_channel, &cmd);
308 if (pcc_ss_data->pcc_mrtt)
309 pcc_ss_data->last_cmd_cmpl_time = ktime_get();
311 if (pcc_ss_data->pcc_channel->mbox->txdone_irq)
312 mbox_chan_txdone(pcc_ss_data->pcc_channel, ret);
314 mbox_client_txdone(pcc_ss_data->pcc_channel, ret);
324 if (desc->write_cmd_id == pcc_ss_data->pcc_write_cnt)
328 pcc_ss_data->pcc_write_cnt++;
329 wake_up_all(&pcc_ss_data->pcc_write_wait_q);
1036 struct cppc_pcc_data *pcc_ss_data = NULL;
1046 pcc_ss_data = pcc_data[pcc_ss_id];
1048 down_write(&pcc_ss_data->pcc_lock);
1055 up_write(&pcc_ss_data->pcc_lock);
1081 struct cppc_pcc_data *pcc_ss_data = NULL;
1105 pcc_ss_data = pcc_data[pcc_ss_id];
1107 down_write(&pcc_ss_data->pcc_lock);
1151 up_write(&pcc_ss_data->pcc_lock);
1169 struct cppc_pcc_data *pcc_ss_data = NULL;
1197 pcc_ss_data = pcc_data[pcc_ss_id];
1198 down_write(&pcc_ss_data->pcc_lock);
1231 up_write(&pcc_ss_data->pcc_lock);
1248 struct cppc_pcc_data *pcc_ss_data = NULL;
1270 pcc_ss_data = pcc_data[pcc_ss_id];
1271 down_read(&pcc_ss_data->pcc_lock); /* BEGIN Phase-I */
1272 if (pcc_ss_data->platform_owns_pcc) {
1275 up_read(&pcc_ss_data->pcc_lock);
1283 pcc_ss_data->pending_pcc_write_cmd = true;
1284 cpc_desc->write_cmd_id = pcc_ss_data->pcc_write_cnt;
1295 up_read(&pcc_ss_data->pcc_lock); /* END Phase-I */
1343 if (down_write_trylock(&pcc_ss_data->pcc_lock)) {/* BEGIN Phase-II */
1345 if (pcc_ss_data->pending_pcc_write_cmd)
1347 up_write(&pcc_ss_data->pcc_lock); /* END Phase-II */
1350 wait_event(pcc_ss_data->pcc_write_wait_q,
1351 cpc_desc->write_cmd_id != pcc_ss_data->pcc_write_cnt);
1385 struct cppc_pcc_data *pcc_ss_data;
1398 pcc_ss_data = pcc_data[pcc_ss_id];
1399 if (pcc_ss_data->pcc_mpar)
1400 latency_ns = 60 * (1000 * 1000 * 1000 / pcc_ss_data->pcc_mpar);
1402 latency_ns = max(latency_ns, pcc_ss_data->pcc_nominal * 1000);
1403 latency_ns = max(latency_ns, pcc_ss_data->pcc_mrtt * 1000);