diff mbox series

[v2,2/2] remoteproc: qcom: pas: Add SC8180X adsp, cdsp and mpss

Message ID 20210608174944.2045215-2-bjorn.andersson@linaro.org
State Accepted
Commit aef6a521e5bf61b3be4567f6c88776956a6d8b32
Headers show
Series [v2,1/2] dt-bindings: remoteproc: qcom: pas: Add SC8180X adsp, cdsp and mpss | expand

Commit Message

Bjorn Andersson June 8, 2021, 5:49 p.m. UTC
The Qualcomm SC8180X has the typical ADSP, CDSP and MPSS remote
processors operated using the PAS interface, add support for these.

Attempts to configuring mss.lvl is failing, so a new adsp_data is
provided that skips this resource, for now.

Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>

---

Changes since v1:
- None

 drivers/remoteproc/qcom_q6v5_pas.c | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

-- 
2.29.2

Comments

Manivannan Sadhasivam June 25, 2021, 4:47 a.m. UTC | #1
On Tue, Jun 08, 2021 at 10:49:44AM -0700, Bjorn Andersson wrote:
> The Qualcomm SC8180X has the typical ADSP, CDSP and MPSS remote

> processors operated using the PAS interface, add support for these.

> 

> Attempts to configuring mss.lvl is failing, so a new adsp_data is

> provided that skips this resource, for now.

> 


What is the impact of this skipped resource? I guess it is enabled by
the bootloader so we can't change it in runtime?

> Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>


Given that adsp remoteproc works without configuring mss power domain,

Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>


Thanks,
Mani

> ---

> 

> Changes since v1:

> - None

> 

>  drivers/remoteproc/qcom_q6v5_pas.c | 22 ++++++++++++++++++++++

>  1 file changed, 22 insertions(+)

> 

> diff --git a/drivers/remoteproc/qcom_q6v5_pas.c b/drivers/remoteproc/qcom_q6v5_pas.c

> index b921fc26cd04..a79bee901e9b 100644

> --- a/drivers/remoteproc/qcom_q6v5_pas.c

> +++ b/drivers/remoteproc/qcom_q6v5_pas.c

> @@ -689,6 +689,25 @@ static const struct adsp_data mpss_resource_init = {

>  	.ssctl_id = 0x12,

>  };

>  

> +static const struct adsp_data sc8180x_mpss_resource = {

> +	.crash_reason_smem = 421,

> +	.firmware_name = "modem.mdt",

> +	.pas_id = 4,

> +	.has_aggre2_clk = false,

> +	.auto_boot = false,

> +	.active_pd_names = (char*[]){

> +		"load_state",

> +		NULL

> +	},

> +	.proxy_pd_names = (char*[]){

> +		"cx",

> +		NULL

> +	},

> +	.ssr_name = "mpss",

> +	.sysmon_name = "modem",

> +	.ssctl_id = 0x12,

> +};

> +

>  static const struct adsp_data slpi_resource_init = {

>  		.crash_reason_smem = 424,

>  		.firmware_name = "slpi.mdt",

> @@ -811,6 +830,9 @@ static const struct of_device_id adsp_of_match[] = {

>  	{ .compatible = "qcom,qcs404-cdsp-pas", .data = &cdsp_resource_init },

>  	{ .compatible = "qcom,qcs404-wcss-pas", .data = &wcss_resource_init },

>  	{ .compatible = "qcom,sc7180-mpss-pas", .data = &mpss_resource_init},

> +	{ .compatible = "qcom,sc8180x-adsp-pas", .data = &sm8150_adsp_resource},

> +	{ .compatible = "qcom,sc8180x-cdsp-pas", .data = &sm8150_cdsp_resource},

> +	{ .compatible = "qcom,sc8180x-mpss-pas", .data = &sc8180x_mpss_resource},

>  	{ .compatible = "qcom,sdm845-adsp-pas", .data = &adsp_resource_init},

>  	{ .compatible = "qcom,sdm845-cdsp-pas", .data = &cdsp_resource_init},

>  	{ .compatible = "qcom,sdx55-mpss-pas", .data = &sdx55_mpss_resource},

> -- 

> 2.29.2

>
Bjorn Andersson June 25, 2021, 10:42 p.m. UTC | #2
On Thu 24 Jun 23:47 CDT 2021, Manivannan Sadhasivam wrote:

> On Tue, Jun 08, 2021 at 10:49:44AM -0700, Bjorn Andersson wrote:

> > The Qualcomm SC8180X has the typical ADSP, CDSP and MPSS remote

> > processors operated using the PAS interface, add support for these.

> > 

> > Attempts to configuring mss.lvl is failing, so a new adsp_data is

> > provided that skips this resource, for now.

> > 

> 

> What is the impact of this skipped resource? I guess it is enabled by

> the bootloader so we can't change it in runtime?

> 


The reason for voting for the "proxy" resources is such that if apss
power collapses we might cut the power before the firmware has had a
chance to tell the RPMh to keep the power on.

So, there is a chance that an unfortunately timed power collapse might
cause the modem to loose power, but given that I can't poke mss.lvl I
would expect that this is handled in some other way - if necessary...

> > Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>

> 

> Given that adsp remoteproc works without configuring mss power domain,

> 

> Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>

> 


Thank you!

Regards,
Bjorn

> Thanks,

> Mani

> 

> > ---

> > 

> > Changes since v1:

> > - None

> > 

> >  drivers/remoteproc/qcom_q6v5_pas.c | 22 ++++++++++++++++++++++

> >  1 file changed, 22 insertions(+)

> > 

> > diff --git a/drivers/remoteproc/qcom_q6v5_pas.c b/drivers/remoteproc/qcom_q6v5_pas.c

> > index b921fc26cd04..a79bee901e9b 100644

> > --- a/drivers/remoteproc/qcom_q6v5_pas.c

> > +++ b/drivers/remoteproc/qcom_q6v5_pas.c

> > @@ -689,6 +689,25 @@ static const struct adsp_data mpss_resource_init = {

> >  	.ssctl_id = 0x12,

> >  };

> >  

> > +static const struct adsp_data sc8180x_mpss_resource = {

> > +	.crash_reason_smem = 421,

> > +	.firmware_name = "modem.mdt",

> > +	.pas_id = 4,

> > +	.has_aggre2_clk = false,

> > +	.auto_boot = false,

> > +	.active_pd_names = (char*[]){

> > +		"load_state",

> > +		NULL

> > +	},

> > +	.proxy_pd_names = (char*[]){

> > +		"cx",

> > +		NULL

> > +	},

> > +	.ssr_name = "mpss",

> > +	.sysmon_name = "modem",

> > +	.ssctl_id = 0x12,

> > +};

> > +

> >  static const struct adsp_data slpi_resource_init = {

> >  		.crash_reason_smem = 424,

> >  		.firmware_name = "slpi.mdt",

> > @@ -811,6 +830,9 @@ static const struct of_device_id adsp_of_match[] = {

> >  	{ .compatible = "qcom,qcs404-cdsp-pas", .data = &cdsp_resource_init },

> >  	{ .compatible = "qcom,qcs404-wcss-pas", .data = &wcss_resource_init },

> >  	{ .compatible = "qcom,sc7180-mpss-pas", .data = &mpss_resource_init},

> > +	{ .compatible = "qcom,sc8180x-adsp-pas", .data = &sm8150_adsp_resource},

> > +	{ .compatible = "qcom,sc8180x-cdsp-pas", .data = &sm8150_cdsp_resource},

> > +	{ .compatible = "qcom,sc8180x-mpss-pas", .data = &sc8180x_mpss_resource},

> >  	{ .compatible = "qcom,sdm845-adsp-pas", .data = &adsp_resource_init},

> >  	{ .compatible = "qcom,sdm845-cdsp-pas", .data = &cdsp_resource_init},

> >  	{ .compatible = "qcom,sdx55-mpss-pas", .data = &sdx55_mpss_resource},

> > -- 

> > 2.29.2

> >
diff mbox series

Patch

diff --git a/drivers/remoteproc/qcom_q6v5_pas.c b/drivers/remoteproc/qcom_q6v5_pas.c
index b921fc26cd04..a79bee901e9b 100644
--- a/drivers/remoteproc/qcom_q6v5_pas.c
+++ b/drivers/remoteproc/qcom_q6v5_pas.c
@@ -689,6 +689,25 @@  static const struct adsp_data mpss_resource_init = {
 	.ssctl_id = 0x12,
 };
 
+static const struct adsp_data sc8180x_mpss_resource = {
+	.crash_reason_smem = 421,
+	.firmware_name = "modem.mdt",
+	.pas_id = 4,
+	.has_aggre2_clk = false,
+	.auto_boot = false,
+	.active_pd_names = (char*[]){
+		"load_state",
+		NULL
+	},
+	.proxy_pd_names = (char*[]){
+		"cx",
+		NULL
+	},
+	.ssr_name = "mpss",
+	.sysmon_name = "modem",
+	.ssctl_id = 0x12,
+};
+
 static const struct adsp_data slpi_resource_init = {
 		.crash_reason_smem = 424,
 		.firmware_name = "slpi.mdt",
@@ -811,6 +830,9 @@  static const struct of_device_id adsp_of_match[] = {
 	{ .compatible = "qcom,qcs404-cdsp-pas", .data = &cdsp_resource_init },
 	{ .compatible = "qcom,qcs404-wcss-pas", .data = &wcss_resource_init },
 	{ .compatible = "qcom,sc7180-mpss-pas", .data = &mpss_resource_init},
+	{ .compatible = "qcom,sc8180x-adsp-pas", .data = &sm8150_adsp_resource},
+	{ .compatible = "qcom,sc8180x-cdsp-pas", .data = &sm8150_cdsp_resource},
+	{ .compatible = "qcom,sc8180x-mpss-pas", .data = &sc8180x_mpss_resource},
 	{ .compatible = "qcom,sdm845-adsp-pas", .data = &adsp_resource_init},
 	{ .compatible = "qcom,sdm845-cdsp-pas", .data = &cdsp_resource_init},
 	{ .compatible = "qcom,sdx55-mpss-pas", .data = &sdx55_mpss_resource},