[PATCH] powerpc/gpio: Fix the wrong GPIO input data on MPC8572/MPC8536
Liu Gang
Gang.Liu at freescale.com
Fri Nov 22 15:47:36 EST 2013
On Wed, 2013-11-20 at 18:32 -0600, Scott Wood wrote:
> For userspace value setting, it looks like gpiolib blocks the write if
> the pin if FLAG_IS_OUT is set. This suggests that this is an error
> condition for other uses as well. Though, I notice that
> mpc8xxx_gpio_dir_out() calls gpio_set() before actually changing the
> direction. So it may be useful to avoid races where the wrong value is
> output briefly after the direction is changed (especially in open drain
> situations, where the signal could have a meaningful default even before
> we begin outputting). But that raises the question of how you'd do that
> from userspace, and it also renders the to-be-output value as write-only
> data (until the direction is actually changed), since a readback would
> get the input value instead.
>
> > So maybe it's better to eliminate the effects of the ->data to the
> > input pins when reading the status, regardless of the possible changes
> > of the pins and the data.
> > Do you think so?
>
> Perhaps, but that doesn't require you to modify ->data in the get()
> function.
>
> -Scott
>
I think you considered about this more comprehensive.
I'll update the code without the modification of ->data in the get()
function, and also with the comments from Anatolij.
Best Regards,
Liu Gang
More information about the Linuxppc-dev
mailing list