On Fri, Dec 02, 2011 at 03:08:37PM -0700, Stephen Warren wrote: > wm8903_platform_data.gpio_cfg[] was intended to be interpreted as follows: > 0: Don't touch this GPIO's configuration register > 1..7fff: Write that value to the GPIO's configuration register > 8000: Write zero to the GPIO's configuration register > other: Undefined (invalid) > > The rationale is that platform data is usually global data, and a value of > zero means that the field wasn't explicitly set to anything (e.g. because > the field was new to the pdata type, and existing users weren't update to > initialize it) and hence the value zero should be ignored. 0x8000 is an > explicit way to get 0 in the register. > > The code worked this way until commit 7cfe561 "ASoC: wm8903: Expose GPIOs > through gpiolib", where the behaviour was changed due to my lack of > awareness of the above rationale. > > This patch reverts to the intended behaviour, and updates all in-tree users > to use the correct scheme. This also makes WM8903 consistent with other > devices that use a similar scheme. > > WM8903_GPIO_NO_CONFIG is also renamed to WM8903_GPIO_CONFIG_ZERO so that > its name accurately reflects its purpose. > > Signed-off-by: Stephen Warren <swarren@xxxxxxxxxx> > Cc: Olof Johansson <olof@xxxxxxxxx> > Cc: Colin Cross <ccross@xxxxxxxxxxx> > --- > Olof, Colin, could you please ack this so that Mark can apply it to the > ASoC tree even though it touches Tegra code? Thanks. Mark, since Stephen is a tegra maintainer, there's no real need to have an explicit ack from one of the others, IMHO. But here you have it. :) Acked-by: Olof Johansson <olof@xxxxxxxxx> -Olof -- To unsubscribe from this list: send the line "unsubscribe linux-tegra" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html