[PATCH v4] GPIO PL061: Adding Clk framework support

Kevin Wells kevin.wells at nxp.com
Thu Jul 29 19:22:58 EDT 2010


>  /*
>   * These are the device model conversion veneers; they convert the
>   * device model structures to our more specific structures.
> @@ -130,17 +155,33 @@ static int amba_probe(struct device *dev)
>  {
>  	struct amba_device *pcdev = to_amba_device(dev);
>  	struct amba_driver *pcdrv = to_amba_driver(dev->driver);
> -	struct amba_id *id;
> +	struct amba_id *id = amba_lookup(pcdrv->id_table, pcdev);
> +	int ret;
> 
> -	id = amba_lookup(pcdrv->id_table, pcdev);
> +	do {
> +		ret = amba_get_enable_pclk(pcdev);
> +		if (ret)
> +			break;
> +
> +		ret = pcdrv->probe(pcdev, id);
> +		if (ret == 0)
> +			break;
> 
> -	return pcdrv->probe(pcdev, id);
> +		amba_put_disable_pclk(pcdev);

Should the AMBA clock be disabled if the probe() fails?

> +	} while (0);
> +
> +	return ret;
>  }
> 




More information about the linux-arm-kernel mailing list