* [PATCH] interconnect: qcom: qcs404: Remove gpu and display nodes
@ 2020-11-11 10:07 Georgi Djakov
2020-11-17 23:16 ` Mike Tipton
0 siblings, 1 reply; 3+ messages in thread
From: Georgi Djakov @ 2020-11-11 10:07 UTC (permalink / raw)
To: linux-pm, bjorn.andersson; +Cc: linux-arm-msm, linux-kernel, georgi.djakov
The following errors are noticed during boot on a QCS404 board:
[ 2.926647] qcom_icc_rpm_smd_send mas 6 error -6
[ 2.934573] qcom_icc_rpm_smd_send mas 8 error -6
These errors show when we try to configure the GPU and display nodes,
which are defined in the topology, but these hardware blocks actually
do not exist on QCS404. According to the datasheet, GPU and display
are only present on QCS405 and QCS407.
Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
---
drivers/interconnect/qcom/qcs404.c | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)
diff --git a/drivers/interconnect/qcom/qcs404.c b/drivers/interconnect/qcom/qcs404.c
index 9f992422e92f..2ed544e23ff3 100644
--- a/drivers/interconnect/qcom/qcs404.c
+++ b/drivers/interconnect/qcom/qcs404.c
@@ -20,8 +20,6 @@
enum {
QCS404_MASTER_AMPSS_M0 = 1,
- QCS404_MASTER_GRAPHICS_3D,
- QCS404_MASTER_MDP_PORT0,
QCS404_SNOC_BIMC_1_MAS,
QCS404_MASTER_TCU_0,
QCS404_MASTER_SPDM,
@@ -156,8 +154,6 @@ struct qcom_icc_desc {
}
DEFINE_QNODE(mas_apps_proc, QCS404_MASTER_AMPSS_M0, 8, 0, -1, QCS404_SLAVE_EBI_CH0, QCS404_BIMC_SNOC_SLV);
-DEFINE_QNODE(mas_oxili, QCS404_MASTER_GRAPHICS_3D, 8, 6, -1, QCS404_SLAVE_EBI_CH0, QCS404_BIMC_SNOC_SLV);
-DEFINE_QNODE(mas_mdp, QCS404_MASTER_MDP_PORT0, 8, 8, -1, QCS404_SLAVE_EBI_CH0, QCS404_BIMC_SNOC_SLV);
DEFINE_QNODE(mas_snoc_bimc_1, QCS404_SNOC_BIMC_1_MAS, 8, 76, -1, QCS404_SLAVE_EBI_CH0);
DEFINE_QNODE(mas_tcu_0, QCS404_MASTER_TCU_0, 8, -1, -1, QCS404_SLAVE_EBI_CH0, QCS404_BIMC_SNOC_SLV);
DEFINE_QNODE(mas_spdm, QCS404_MASTER_SPDM, 4, -1, -1, QCS404_PNOC_INT_3);
@@ -231,8 +227,6 @@ DEFINE_QNODE(slv_lpass, QCS404_SLAVE_LPASS, 4, -1, -1, 0);
static struct qcom_icc_node *qcs404_bimc_nodes[] = {
[MASTER_AMPSS_M0] = &mas_apps_proc,
- [MASTER_OXILI] = &mas_oxili,
- [MASTER_MDP_PORT0] = &mas_mdp,
[MASTER_SNOC_BIMC_1] = &mas_snoc_bimc_1,
[MASTER_TCU_0] = &mas_tcu_0,
[SLAVE_EBI_CH0] = &slv_ebi,
@@ -460,6 +454,9 @@ static int qnoc_probe(struct platform_device *pdev)
for (i = 0; i < num_nodes; i++) {
size_t j;
+ if (!qnodes[i])
+ continue;
+
node = icc_node_create(qnodes[i]->id);
if (IS_ERR(node)) {
ret = PTR_ERR(node);
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] interconnect: qcom: qcs404: Remove gpu and display nodes
2020-11-11 10:07 [PATCH] interconnect: qcom: qcs404: Remove gpu and display nodes Georgi Djakov
@ 2020-11-17 23:16 ` Mike Tipton
2020-11-18 4:12 ` Bjorn Andersson
0 siblings, 1 reply; 3+ messages in thread
From: Mike Tipton @ 2020-11-17 23:16 UTC (permalink / raw)
To: Georgi Djakov, linux-pm, bjorn.andersson; +Cc: linux-arm-msm, linux-kernel
On 11/11/2020 2:07 AM, Georgi Djakov wrote:
> The following errors are noticed during boot on a QCS404 board:
> [ 2.926647] qcom_icc_rpm_smd_send mas 6 error -6
> [ 2.934573] qcom_icc_rpm_smd_send mas 8 error -6
>
> These errors show when we try to configure the GPU and display nodes,
> which are defined in the topology, but these hardware blocks actually
> do not exist on QCS404. According to the datasheet, GPU and display
> are only present on QCS405 and QCS407.
Even on QCS405/407 where GPU and display are present, you'd still get
these errors since these particular nodes aren't supported on RPM and
are purely local. Instead of removing these we should just change their
mas_rpm_id to -1. It's harmless to leave them in for QCS404 since
they're only used for path aggregation. The same code can support all
variants of the QCS400 series. We just wouldn't expect anyone to
actually vote these paths on QCS404. Similar to how the gcc-qcs404 clock
provider still registers the GPU and MDP clocks.
>
> Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
> ---
> drivers/interconnect/qcom/qcs404.c | 9 +++------
> 1 file changed, 3 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/interconnect/qcom/qcs404.c b/drivers/interconnect/qcom/qcs404.c
> index 9f992422e92f..2ed544e23ff3 100644
> --- a/drivers/interconnect/qcom/qcs404.c
> +++ b/drivers/interconnect/qcom/qcs404.c
> @@ -20,8 +20,6 @@
>
> enum {
> QCS404_MASTER_AMPSS_M0 = 1,
> - QCS404_MASTER_GRAPHICS_3D,
> - QCS404_MASTER_MDP_PORT0,
> QCS404_SNOC_BIMC_1_MAS,
> QCS404_MASTER_TCU_0,
> QCS404_MASTER_SPDM,
> @@ -156,8 +154,6 @@ struct qcom_icc_desc {
> }
>
> DEFINE_QNODE(mas_apps_proc, QCS404_MASTER_AMPSS_M0, 8, 0, -1, QCS404_SLAVE_EBI_CH0, QCS404_BIMC_SNOC_SLV);
> -DEFINE_QNODE(mas_oxili, QCS404_MASTER_GRAPHICS_3D, 8, 6, -1, QCS404_SLAVE_EBI_CH0, QCS404_BIMC_SNOC_SLV);
> -DEFINE_QNODE(mas_mdp, QCS404_MASTER_MDP_PORT0, 8, 8, -1, QCS404_SLAVE_EBI_CH0, QCS404_BIMC_SNOC_SLV > DEFINE_QNODE(mas_snoc_bimc_1, QCS404_SNOC_BIMC_1_MAS, 8, 76, -1,
QCS404_SLAVE_EBI_CH0);
> DEFINE_QNODE(mas_tcu_0, QCS404_MASTER_TCU_0, 8, -1, -1, QCS404_SLAVE_EBI_CH0, QCS404_BIMC_SNOC_SLV);
> DEFINE_QNODE(mas_spdm, QCS404_MASTER_SPDM, 4, -1, -1, QCS404_PNOC_INT_3);
> @@ -231,8 +227,6 @@ DEFINE_QNODE(slv_lpass, QCS404_SLAVE_LPASS, 4, -1, -1, 0);
>
> static struct qcom_icc_node *qcs404_bimc_nodes[] = {
> [MASTER_AMPSS_M0] = &mas_apps_proc,
> - [MASTER_OXILI] = &mas_oxili,
> - [MASTER_MDP_PORT0] = &mas_mdp,
> [MASTER_SNOC_BIMC_1] = &mas_snoc_bimc_1,
> [MASTER_TCU_0] = &mas_tcu_0,
> [SLAVE_EBI_CH0] = &slv_ebi,
> @@ -460,6 +454,9 @@ static int qnoc_probe(struct platform_device *pdev)
> for (i = 0; i < num_nodes; i++) {
> size_t j;
>
> + if (!qnodes[i])
> + continue;
> +
> node = icc_node_create(qnodes[i]->id);
> if (IS_ERR(node)) {
> ret = PTR_ERR(node);
>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] interconnect: qcom: qcs404: Remove gpu and display nodes
2020-11-17 23:16 ` Mike Tipton
@ 2020-11-18 4:12 ` Bjorn Andersson
0 siblings, 0 replies; 3+ messages in thread
From: Bjorn Andersson @ 2020-11-18 4:12 UTC (permalink / raw)
To: Mike Tipton; +Cc: Georgi Djakov, linux-pm, linux-arm-msm, linux-kernel
On Tue 17 Nov 17:16 CST 2020, Mike Tipton wrote:
> On 11/11/2020 2:07 AM, Georgi Djakov wrote:
> > The following errors are noticed during boot on a QCS404 board:
> > [ 2.926647] qcom_icc_rpm_smd_send mas 6 error -6
> > [ 2.934573] qcom_icc_rpm_smd_send mas 8 error -6
> >
> > These errors show when we try to configure the GPU and display nodes,
> > which are defined in the topology, but these hardware blocks actually
> > do not exist on QCS404. According to the datasheet, GPU and display
> > are only present on QCS405 and QCS407.
>
> Even on QCS405/407 where GPU and display are present, you'd still get these
> errors since these particular nodes aren't supported on RPM and are purely
> local. Instead of removing these we should just change their mas_rpm_id to
> -1. It's harmless to leave them in for QCS404 since they're only used for
> path aggregation. The same code can support all variants of the QCS400
> series. We just wouldn't expect anyone to actually vote these paths on
> QCS404. Similar to how the gcc-qcs404 clock provider still registers the GPU
> and MDP clocks.
>
That would definitely be preferable and would save us from having 4 (?)
copies of qcs40x...
Regards,
Bjorn
> >
> > Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
> > ---
> > drivers/interconnect/qcom/qcs404.c | 9 +++------
> > 1 file changed, 3 insertions(+), 6 deletions(-)
> >
> > diff --git a/drivers/interconnect/qcom/qcs404.c b/drivers/interconnect/qcom/qcs404.c
> > index 9f992422e92f..2ed544e23ff3 100644
> > --- a/drivers/interconnect/qcom/qcs404.c
> > +++ b/drivers/interconnect/qcom/qcs404.c
> > @@ -20,8 +20,6 @@
> > enum {
> > QCS404_MASTER_AMPSS_M0 = 1,
> > - QCS404_MASTER_GRAPHICS_3D,
> > - QCS404_MASTER_MDP_PORT0,
> > QCS404_SNOC_BIMC_1_MAS,
> > QCS404_MASTER_TCU_0,
> > QCS404_MASTER_SPDM,
> > @@ -156,8 +154,6 @@ struct qcom_icc_desc {
> > }
> > DEFINE_QNODE(mas_apps_proc, QCS404_MASTER_AMPSS_M0, 8, 0, -1, QCS404_SLAVE_EBI_CH0, QCS404_BIMC_SNOC_SLV);
> > -DEFINE_QNODE(mas_oxili, QCS404_MASTER_GRAPHICS_3D, 8, 6, -1, QCS404_SLAVE_EBI_CH0, QCS404_BIMC_SNOC_SLV);
> > -DEFINE_QNODE(mas_mdp, QCS404_MASTER_MDP_PORT0, 8, 8, -1,
> > QCS404_SLAVE_EBI_CH0, QCS404_BIMC_SNOC_SLV >
> > DEFINE_QNODE(mas_snoc_bimc_1, QCS404_SNOC_BIMC_1_MAS, 8, 76, -1,
> QCS404_SLAVE_EBI_CH0);
> > DEFINE_QNODE(mas_tcu_0, QCS404_MASTER_TCU_0, 8, -1, -1, QCS404_SLAVE_EBI_CH0, QCS404_BIMC_SNOC_SLV);
> > DEFINE_QNODE(mas_spdm, QCS404_MASTER_SPDM, 4, -1, -1, QCS404_PNOC_INT_3);
> > @@ -231,8 +227,6 @@ DEFINE_QNODE(slv_lpass, QCS404_SLAVE_LPASS, 4, -1, -1, 0);
> > static struct qcom_icc_node *qcs404_bimc_nodes[] = {
> > [MASTER_AMPSS_M0] = &mas_apps_proc,
> > - [MASTER_OXILI] = &mas_oxili,
> > - [MASTER_MDP_PORT0] = &mas_mdp,
> > [MASTER_SNOC_BIMC_1] = &mas_snoc_bimc_1,
> > [MASTER_TCU_0] = &mas_tcu_0,
> > [SLAVE_EBI_CH0] = &slv_ebi,
> > @@ -460,6 +454,9 @@ static int qnoc_probe(struct platform_device *pdev)
> > for (i = 0; i < num_nodes; i++) {
> > size_t j;
> > + if (!qnodes[i])
> > + continue;
> > +
> > node = icc_node_create(qnodes[i]->id);
> > if (IS_ERR(node)) {
> > ret = PTR_ERR(node);
> >
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2020-11-18 4:12 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-11 10:07 [PATCH] interconnect: qcom: qcs404: Remove gpu and display nodes Georgi Djakov
2020-11-17 23:16 ` Mike Tipton
2020-11-18 4:12 ` Bjorn Andersson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).