Lines Matching refs:bcm

486 static int qcom_icc_bcm_init(struct qcom_icc_bcm *bcm, struct device *dev)  in qcom_icc_bcm_init()  argument
493 bcm->addr = cmd_db_read_addr(bcm->name); in qcom_icc_bcm_init()
494 if (!bcm->addr) { in qcom_icc_bcm_init()
496 bcm->name); in qcom_icc_bcm_init()
500 data = cmd_db_read_aux_data(bcm->name, &data_count); in qcom_icc_bcm_init()
503 bcm->name, PTR_ERR(data)); in qcom_icc_bcm_init()
508 bcm->name); in qcom_icc_bcm_init()
512 bcm->aux_data.unit = le32_to_cpu(data->unit); in qcom_icc_bcm_init()
513 bcm->aux_data.width = le16_to_cpu(data->width); in qcom_icc_bcm_init()
514 bcm->aux_data.vcd = data->vcd; in qcom_icc_bcm_init()
515 bcm->aux_data.reserved = data->reserved; in qcom_icc_bcm_init()
520 for (i = 0; i < bcm->num_nodes; i++) { in qcom_icc_bcm_init()
521 qn = bcm->nodes[i]; in qcom_icc_bcm_init()
522 qn->bcms[qn->num_bcms] = bcm; in qcom_icc_bcm_init()
561 struct qcom_icc_bcm *bcm; in tcs_list_gen() local
567 list_for_each_entry(bcm, bcm_list, list) { in tcs_list_gen()
570 if ((list_is_last(&bcm->list, bcm_list)) || in tcs_list_gen()
571 bcm->aux_data.vcd != list_next_entry(bcm, list)->aux_data.vcd) { in tcs_list_gen()
575 tcs_cmd_gen(&tcs_list[idx], bcm->vote_x[bucket], in tcs_list_gen()
576 bcm->vote_y[bucket], bcm->addr, commit); in tcs_list_gen()
595 static void bcm_aggregate(struct qcom_icc_bcm *bcm) in bcm_aggregate() argument
603 for (i = 0; i < bcm->num_nodes; i++) { in bcm_aggregate()
604 temp = bcm->nodes[i]->sum_avg[bucket] * bcm->aux_data.width; in bcm_aggregate()
605 do_div(temp, bcm->nodes[i]->buswidth * bcm->nodes[i]->channels); in bcm_aggregate()
608 temp = bcm->nodes[i]->max_peak[bucket] * bcm->aux_data.width; in bcm_aggregate()
609 do_div(temp, bcm->nodes[i]->buswidth); in bcm_aggregate()
614 do_div(temp, bcm->aux_data.unit); in bcm_aggregate()
615 bcm->vote_x[bucket] = temp; in bcm_aggregate()
618 do_div(temp, bcm->aux_data.unit); in bcm_aggregate()
619 bcm->vote_y[bucket] = temp; in bcm_aggregate()
622 if (bcm->keepalive && bcm->vote_x[QCOM_ICC_BUCKET_AMC] == 0 && in bcm_aggregate()
623 bcm->vote_y[QCOM_ICC_BUCKET_AMC] == 0) { in bcm_aggregate()
624 bcm->vote_x[QCOM_ICC_BUCKET_AMC] = 1; in bcm_aggregate()
625 bcm->vote_x[QCOM_ICC_BUCKET_WAKE] = 1; in bcm_aggregate()
626 bcm->vote_y[QCOM_ICC_BUCKET_AMC] = 1; in bcm_aggregate()
627 bcm->vote_y[QCOM_ICC_BUCKET_WAKE] = 1; in bcm_aggregate()
630 bcm->dirty = false; in bcm_aggregate()