interconnect: qcom: lahaina: Configure QoS during probe

Configure QoS settings during probe for all nodes instead of for each
node individually upon first client request.

Change-Id: I80a1b95080b22392948428f341d1f5bab82acfd9
Signed-off-by: Mike Tipton <mdtipton@codeaurora.org>
This commit is contained in:
Mike Tipton 2021-02-09 13:38:06 -08:00 • committed by Gerrit - the friendly Code Review server
commit 6ac8145c0a

View file

@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-2.0-only
/*
* Copyright (c) 2019-2020, The Linux Foundation. All rights reserved.
* Copyright (c) 2019-2021, The Linux Foundation. All rights reserved.
*
*/
@ -2742,6 +2742,12 @@ static int qnoc_probe(struct platform_device *pdev)
if (qp->num_clks < 0)
return qp->num_clks;
ret = clk_bulk_prepare_enable(qp->num_clks, qp->clks);
if (ret) {
dev_err(&pdev->dev, "failed to enable clocks\n");
return ret;
}
for (i = 0; i < num_nodes; i++) {
size_t j;
@ -2756,6 +2762,11 @@ static int qnoc_probe(struct platform_device *pdev)
goto err;
}
if (qnodes[i]->qosbox) {
qnodes[i]->noc_ops->set_qos(qnodes[i]);
qnodes[i]->qosbox->initialized = true;
}
node->name = qnodes[i]->name;
node->data = qnodes[i];
icc_node_add(node, provider);
@ -2771,6 +2782,8 @@ static int qnoc_probe(struct platform_device *pdev)
}
data->num_nodes = num_nodes;
clk_bulk_disable_unprepare(qp->num_clks, qp->clks);
for (i = 0; i < qp->num_bcms; i++)
qcom_icc_bcm_init(qp->bcms[i], &pdev->dev);
@ -2789,6 +2802,7 @@ err:
icc_node_destroy(node->id);
}
clk_bulk_disable_unprepare(qp->num_clks, qp->clks);
clk_bulk_put_all(qp->num_clks, qp->clks);
icc_provider_del(provider);