diff mbox series

remoteproc: qcom: q6v5-pil: add SCM probe dependency

Message ID 20181009020805.143982-1-briannorris@chromium.org (mailing list archive)
State New, archived
Headers show
Series remoteproc: qcom: q6v5-pil: add SCM probe dependency | expand

Commit Message

Brian Norris Oct. 9, 2018, 2:08 a.m. UTC
Similar to qcom_q6v5_pas and qcom_wcnss drivers, probe will fail if SCM
is not up.

Signed-off-by: Brian Norris <briannorris@chromium.org>
---
 drivers/remoteproc/qcom_q6v5_mss.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Bjorn Andersson Oct. 9, 2018, 6:21 a.m. UTC | #1
On Mon 08 Oct 19:08 PDT 2018, Brian Norris wrote:

> Similar to qcom_q6v5_pas and qcom_wcnss drivers, probe will fail if SCM
> is not up.
> 

Thanks Brian, this dependency was introduced with the memory ownership
support.

I applied it with an updated conditional to make it explicit that it
related to need_mem_protection, updated the commit message to describe
actual relationship to the memory protection mechanism and added a
Fixes: tag.


Don't we also need to add the ability to disable need_mem_protection
when we're running ATF?

Regards,
Bjorn

> Signed-off-by: Brian Norris <briannorris@chromium.org>
> ---
>  drivers/remoteproc/qcom_q6v5_mss.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/remoteproc/qcom_q6v5_mss.c b/drivers/remoteproc/qcom_q6v5_mss.c
> index a839b07a58b1..8836ca1bc0c1 100644
> --- a/drivers/remoteproc/qcom_q6v5_mss.c
> +++ b/drivers/remoteproc/qcom_q6v5_mss.c
> @@ -1151,6 +1151,9 @@ static int q6v5_probe(struct platform_device *pdev)
>  	if (!desc)
>  		return -EINVAL;
>  
> +	if (!qcom_scm_is_available())
> +		return -EPROBE_DEFER;
> +
>  	rproc = rproc_alloc(&pdev->dev, pdev->name, &q6v5_ops,
>  			    desc->hexagon_mba_image, sizeof(*qproc));
>  	if (!rproc) {
Brian Norris Oct. 9, 2018, 5:02 p.m. UTC | #2
On Mon, Oct 08, 2018 at 11:21:25PM -0700, Bjorn Andersson wrote:
> On Mon 08 Oct 19:08 PDT 2018, Brian Norris wrote:
> 
> > Similar to qcom_q6v5_pas and qcom_wcnss drivers, probe will fail if SCM
> > is not up.
> > 
> 
> Thanks Brian, this dependency was introduced with the memory ownership
> support.

That's a good point. I'm actually not that familiar with this particular
driver--I was just trying to resolve an OOPS I saw while bringing this
driver up--but that does look correct.

> I applied it with an updated conditional to make it explicit that it
> related to need_mem_protection, updated the commit message to describe
> actual relationship to the memory protection mechanism and added a
> Fixes: tag.

Your version looks good, thanks.

> Don't we also need to add the ability to disable need_mem_protection
> when we're running ATF?

I'm not sure exactly, but FWIW I'm running some form of ATF on SDM845
and I'm running with 'needs_memory_protection' (hence, this patch).

Regards,
Brian
Sibi Sankar Oct. 9, 2018, 5:21 p.m. UTC | #3
On 2018-10-09 22:32, Brian Norris wrote:
> On Mon, Oct 08, 2018 at 11:21:25PM -0700, Bjorn Andersson wrote:
>> On Mon 08 Oct 19:08 PDT 2018, Brian Norris wrote:
>> 
>> > Similar to qcom_q6v5_pas and qcom_wcnss drivers, probe will fail if SCM
>> > is not up.
>> >
>> 
>> Thanks Brian, this dependency was introduced with the memory ownership
>> support.
> 
> That's a good point. I'm actually not that familiar with this 
> particular
> driver--I was just trying to resolve an OOPS I saw while bringing this
> driver up--but that does look correct.
> 
>> I applied it with an updated conditional to make it explicit that it
>> related to need_mem_protection, updated the commit message to describe
>> actual relationship to the memory protection mechanism and added a
>> Fixes: tag.
> 
> Your version looks good, thanks.
> 
>> Don't we also need to add the ability to disable need_mem_protection
>> when we're running ATF?
> 
> I'm not sure exactly, but FWIW I'm running some form of ATF on SDM845
> and I'm running with 'needs_memory_protection' (hence, this patch).
> 

AFAIK ATF will eventually support the hyp assign calls even though they
are just stubs as of now.

> Regards,
> Brian
diff mbox series

Patch

diff --git a/drivers/remoteproc/qcom_q6v5_mss.c b/drivers/remoteproc/qcom_q6v5_mss.c
index a839b07a58b1..8836ca1bc0c1 100644
--- a/drivers/remoteproc/qcom_q6v5_mss.c
+++ b/drivers/remoteproc/qcom_q6v5_mss.c
@@ -1151,6 +1151,9 @@  static int q6v5_probe(struct platform_device *pdev)
 	if (!desc)
 		return -EINVAL;
 
+	if (!qcom_scm_is_available())
+		return -EPROBE_DEFER;
+
 	rproc = rproc_alloc(&pdev->dev, pdev->name, &q6v5_ops,
 			    desc->hexagon_mba_image, sizeof(*qproc));
 	if (!rproc) {