On Tue, Apr 29, 2014 at 9:27 PM, Robert ABEL <rabel@xxxxxxxxxxxxxxxxxxxxxxx> wrote: > gpiod_direction_output initial value was used as raw value instead of > logical value. Convert value from logical to raw. Nope, the very point of gpiod_direction_output_raw() is that we don't want to alter the signal according to the active_low property. What your change effectively does is changing gpiod_direction_output_raw() into gpiod_direction_output() (look at the latter). > > Signed-off-by: Robert ABEL <rabel@xxxxxxxxxxxxxxxxxxxxxxx> > --- > drivers/gpio/gpiolib.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c > index f48817d..2309322 100644 > --- a/drivers/gpio/gpiolib.c > +++ b/drivers/gpio/gpiolib.c > @@ -2032,6 +2032,10 @@ static int _gpiod_direction_output_raw(struct gpio_desc *desc, int value) > return -EIO; > } > > + /* convert logical value to raw value */ > + if (test_bit(FLAG_ACTIVE_LOW, &desc->flags)) > + value = !value; > + > /* Open drain pin should not be driven to 1 */ > if (value && test_bit(FLAG_OPEN_DRAIN, &desc->flags)) > return gpiod_direction_input(desc); > -- > 1.9.2 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-gpio" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html