[PATCH v4] GPIO PL061: Adding Clk framework support

Russell King - ARM Linux linux at arm.linux.org.uk
Fri Jul 30 03:09:43 EDT 2010


On Fri, Jul 30, 2010 at 01:22:58AM +0200, Kevin Wells wrote:
> >  /*
> >   * 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?

This is exactly what happens here.



More information about the linux-arm-kernel mailing list