diff mbox series

[15/16] soc: imx: gpcv2: support reset defer probe

Message ID 20210429073050.21039-16-peng.fan@oss.nxp.com
State New
Headers show
Series soc: imx: gpcv2: support i.MX8MM | expand

Commit Message

Peng Fan (OSS) April 29, 2021, 7:30 a.m. UTC
From: Peng Fan <peng.fan@nxp.com>


When gpcv2 probe, the reset controller might not be ready, so we need
defer probe

Signed-off-by: Peng Fan <peng.fan@nxp.com>

---
 drivers/soc/imx/gpcv2.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

-- 
2.30.0

Comments

Ahmad Fatoum April 29, 2021, 8:39 a.m. UTC | #1
Hi,

On 29.04.21 09:30, Peng Fan (OSS) wrote:
> From: Peng Fan <peng.fan@nxp.com>

> 

> When gpcv2 probe, the reset controller might not be ready, so we need

> defer probe

> 

> Signed-off-by: Peng Fan <peng.fan@nxp.com>

> ---

>  drivers/soc/imx/gpcv2.c | 5 ++++-

>  1 file changed, 4 insertions(+), 1 deletion(-)

> 

> diff --git a/drivers/soc/imx/gpcv2.c b/drivers/soc/imx/gpcv2.c

> index 072f519462a5..49dd137f6b94 100644

> --- a/drivers/soc/imx/gpcv2.c

> +++ b/drivers/soc/imx/gpcv2.c

> @@ -784,9 +784,12 @@ static int imx_pgc_domain_probe(struct platform_device *pdev)

>  				     "Failed to get domain's clocks\n");

>  

>  	domain->reset = devm_reset_control_array_get_optional_exclusive(domain->dev);

> -	if (IS_ERR(domain->reset))

> +	if (IS_ERR(domain->reset)) {

> +		if (PTR_ERR(domain->reset) == -EPROBE_DEFER)

> +			return -EPROBE_DEFER;

>  		return dev_err_probe(domain->dev, PTR_ERR(domain->reset),

>  				     "Failed to get domain's resets\n");


dev_err_probe already propagates the error code in its second argument.
Seems to me this patch's only effect is to disable deferred probe reason tracking?

> +	}

>  

>  	pm_runtime_enable(domain->dev);

>  

> 


-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |
Lucas Stach April 29, 2021, 2:30 p.m. UTC | #2
Am Donnerstag, dem 29.04.2021 um 15:30 +0800 schrieb Peng Fan (OSS):
> From: Peng Fan <peng.fan@nxp.com>

> 

> When gpcv2 probe, the reset controller might not be ready, so we need

> defer probe


I agree with Ahmad. dev_err_probe properly propagates the PROBE_DEFER
return, so this patch should be dropped.

Regards,
Lucas

> Signed-off-by: Peng Fan <peng.fan@nxp.com>

> ---

>  drivers/soc/imx/gpcv2.c | 5 ++++-

>  1 file changed, 4 insertions(+), 1 deletion(-)

> 

> diff --git a/drivers/soc/imx/gpcv2.c b/drivers/soc/imx/gpcv2.c

> index 072f519462a5..49dd137f6b94 100644

> --- a/drivers/soc/imx/gpcv2.c

> +++ b/drivers/soc/imx/gpcv2.c

> @@ -784,9 +784,12 @@ static int imx_pgc_domain_probe(struct platform_device *pdev)

>  				     "Failed to get domain's clocks\n");

>  

> 

> 

> 

>  	domain->reset = devm_reset_control_array_get_optional_exclusive(domain->dev);

> -	if (IS_ERR(domain->reset))

> +	if (IS_ERR(domain->reset)) {

> +		if (PTR_ERR(domain->reset) == -EPROBE_DEFER)

> +			return -EPROBE_DEFER;

>  		return dev_err_probe(domain->dev, PTR_ERR(domain->reset),

>  				     "Failed to get domain's resets\n");

> +	}

>  

> 

> 

> 

>  	pm_runtime_enable(domain->dev);

>  

> 

> 

>
Peng Fan (OSS) April 30, 2021, 4:51 a.m. UTC | #3
On 2021/4/29 22:30, Lucas Stach wrote:
> Am Donnerstag, dem 29.04.2021 um 15:30 +0800 schrieb Peng Fan (OSS):

>> From: Peng Fan <peng.fan@nxp.com>

>>

>> When gpcv2 probe, the reset controller might not be ready, so we need

>> defer probe

> 

> I agree with Ahmad. dev_err_probe properly propagates the PROBE_DEFER

> return, so this patch should be dropped.


Sure. Drop in V2.

Thanks,
Peng.

> 

> Regards,

> Lucas

> 

>> Signed-off-by: Peng Fan <peng.fan@nxp.com>

>> ---

>>   drivers/soc/imx/gpcv2.c | 5 ++++-

>>   1 file changed, 4 insertions(+), 1 deletion(-)

>>

>> diff --git a/drivers/soc/imx/gpcv2.c b/drivers/soc/imx/gpcv2.c

>> index 072f519462a5..49dd137f6b94 100644

>> --- a/drivers/soc/imx/gpcv2.c

>> +++ b/drivers/soc/imx/gpcv2.c

>> @@ -784,9 +784,12 @@ static int imx_pgc_domain_probe(struct platform_device *pdev)

>>   				     "Failed to get domain's clocks\n");

>>   

>>

>>

>>

>>   	domain->reset = devm_reset_control_array_get_optional_exclusive(domain->dev);

>> -	if (IS_ERR(domain->reset))

>> +	if (IS_ERR(domain->reset)) {

>> +		if (PTR_ERR(domain->reset) == -EPROBE_DEFER)

>> +			return -EPROBE_DEFER;

>>   		return dev_err_probe(domain->dev, PTR_ERR(domain->reset),

>>   				     "Failed to get domain's resets\n");

>> +	}

>>   

>>

>>

>>

>>   	pm_runtime_enable(domain->dev);

>>   

>>

>>

>>

> 

>
diff mbox series

Patch

diff --git a/drivers/soc/imx/gpcv2.c b/drivers/soc/imx/gpcv2.c
index 072f519462a5..49dd137f6b94 100644
--- a/drivers/soc/imx/gpcv2.c
+++ b/drivers/soc/imx/gpcv2.c
@@ -784,9 +784,12 @@  static int imx_pgc_domain_probe(struct platform_device *pdev)
 				     "Failed to get domain's clocks\n");
 
 	domain->reset = devm_reset_control_array_get_optional_exclusive(domain->dev);
-	if (IS_ERR(domain->reset))
+	if (IS_ERR(domain->reset)) {
+		if (PTR_ERR(domain->reset) == -EPROBE_DEFER)
+			return -EPROBE_DEFER;
 		return dev_err_probe(domain->dev, PTR_ERR(domain->reset),
 				     "Failed to get domain's resets\n");
+	}
 
 	pm_runtime_enable(domain->dev);