[PATCH v3 3/6] ASoC: WM8903: Pass pdata to wm8903_init_gpio

Stephen Warren swarren at nvidia.com
Fri Dec 2 11:48:11 EST 2011


Mark Brown wrote at Thursday, December 01, 2011 5:28 PM:
> On Thu, Dec 01, 2011 at 01:49:21PM -0700, Stephen Warren wrote:
> 
> > -	if (pdata && pdata->gpio_base)
> > -		wm8903->gpio_chip.base = pdata->gpio_base;
> > -	else
> > -		wm8903->gpio_chip.base = -1;
> > +	wm8903->gpio_chip.base = pdata->gpio_base;
> 
> This will break existing users in counjuntion with the previous patch.
> Previously if the user provided platform data but left gpio_base as zero
> we'd use -1 and let gpiolib pick for us.  Now instead the driver will
> take that zero and pass it on to gpiolib, probably failing as the SoC
> will have taken the low numbered GPIOs.

Yes, I suppose that's true. However, I don't see it as a problem.

Surely if the user provided pdata, it's their responsibility to fill
it in correctly and completely. It seems a little random to take the
pdata, and try to guess whether 0 means 0 or "I didn't set the value,
so use the default". I think the same comment applies w.r.t to your
comment on patch 2 (gpio_cfg); 0 is a perfectly legitimate value for
the register; why should the driver double-guess that value and assume
0 means "don't touch the pin"?

-- 
nvpublic



More information about the devicetree-discuss mailing list