diff mbox

reset: allow drivers to request probe deferral

Message ID 1374148653-14009-1-git-send-email-p.zabel@pengutronix.de (mailing list archive)
State New, archived
Headers show

Commit Message

Philipp Zabel July 18, 2013, 11:57 a.m. UTC
If the requested reset controller is not yet available, have reset_control_get
and device_reset return -EPROBE_DEFER so the driver can decide to request
probe deferral.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
---
 drivers/reset/core.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Shawn Guo July 18, 2013, 12:04 p.m. UTC | #1
On Thu, Jul 18, 2013 at 01:57:33PM +0200, Philipp Zabel wrote:
> If the requested reset controller is not yet available, have reset_control_get
> and device_reset return -EPROBE_DEFER so the driver can decide to request
> probe deferral.
> 
> Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
> ---
>  drivers/reset/core.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/reset/core.c b/drivers/reset/core.c
> index d1b6089..b3d99a1 100644
> --- a/drivers/reset/core.c
> +++ b/drivers/reset/core.c
> @@ -167,7 +167,7 @@ struct reset_control *reset_control_get(struct device *dev, const char *id)
>  
>  	if (!rcdev) {
>  		mutex_unlock(&reset_controller_list_mutex);
> -		return ERR_PTR(-ENODEV);
> +		return ERR_PTR(-EPROBE_DEFER);

Yeah, with the change the client device driver does not need to
translate error code -ENODEV into -EPROBE_DEFER, but just return
whatever device_reset() returns in error case.  So,

Acked-by: Shawn Guo <shawn.guo@linaro.org>

>  	}
>  
>  	rstc_id = rcdev->of_xlate(rcdev, &args);
> -- 
> 1.8.3.2
>
Stephen Warren July 18, 2013, 5:06 p.m. UTC | #2
On 07/18/2013 05:57 AM, Philipp Zabel wrote:
> If the requested reset controller is not yet available, have reset_control_get
> and device_reset return -EPROBE_DEFER so the driver can decide to request
> probe deferral.

Reviewed-by: Stephen Warren <swarren@nvidia.com>
diff mbox

Patch

diff --git a/drivers/reset/core.c b/drivers/reset/core.c
index d1b6089..b3d99a1 100644
--- a/drivers/reset/core.c
+++ b/drivers/reset/core.c
@@ -167,7 +167,7 @@  struct reset_control *reset_control_get(struct device *dev, const char *id)
 
 	if (!rcdev) {
 		mutex_unlock(&reset_controller_list_mutex);
-		return ERR_PTR(-ENODEV);
+		return ERR_PTR(-EPROBE_DEFER);
 	}
 
 	rstc_id = rcdev->of_xlate(rcdev, &args);