interconnect: qcom: icc-rpmh: Add skip-qos node property

Add skip-qos node property to skip qos settings which happens on
each provider probe. Early in presil this property is useful to skip
qos settings as not all needed clocks are voted/set on and device ends
up unclocked access. This property will help to deliver interconnect
earlier without qos settings which can be enabled when things are ready
before bring up.

Change-Id: I9619f651f40f49ec03d9ea0dc7c45b3b13ffae6c
Signed-off-by: Vivek Aknurwar <viveka@codeaurora.org>
Signed-off-by: Mike Tipton <quic_mdtipton@quicinc.com>
This commit is contained in:
Vivek Aknurwar 2021-09-09 18:44:25 -07:00 committed by Mike Tipton
parent 796c5f9e43
commit d9aae10c87
2 changed files with 10 additions and 5 deletions

View File

@ -330,6 +330,7 @@ int qcom_icc_rpmh_probe(struct platform_device *pdev)
return -ENOMEM;
qp->stub = of_property_read_bool(pdev->dev.of_node, "qcom,stub");
qp->skip_qos = of_property_read_bool(pdev->dev.of_node, "qcom,skip-qos");
provider = &qp->provider;
provider->dev = dev;
@ -376,9 +377,11 @@ int qcom_icc_rpmh_probe(struct platform_device *pdev)
for (i = 0; i < qp->num_bcms; i++)
qcom_icc_bcm_init(qp->bcms[i], dev);
ret = enable_qos_deps(qp);
if (ret)
return ret;
if (!qp->skip_qos) {
ret = enable_qos_deps(qp);
if (ret)
return ret;
}
for (i = 0; i < num_nodes; i++) {
qn = qnodes[i];
@ -393,7 +396,7 @@ int qcom_icc_rpmh_probe(struct platform_device *pdev)
goto err;
}
if (qn->qosbox)
if (qn->qosbox && !qp->skip_qos)
qn->noc_ops->set_qos(qn);
node->name = qn->name;
@ -406,7 +409,8 @@ int qcom_icc_rpmh_probe(struct platform_device *pdev)
data->nodes[i] = node;
}
disable_qos_deps(qp);
if (!qp->skip_qos)
disable_qos_deps(qp);
data->num_nodes = num_nodes;
platform_set_drvdata(pdev, qp);

View File

@ -33,6 +33,7 @@ struct qcom_icc_provider {
struct bcm_voter **voters;
size_t num_voters;
bool stub;
bool skip_qos;
};
/**