Re: [PATCH v5 07/12] leds: leds-gpio: Add support for GPIO descriptors

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On Tue, Oct 28, 2014 at 10:56 PM, Rafael J. Wysocki <rjw@xxxxxxxxxxxxx> wrote:
> On Tuesday, October 28, 2014 04:26:25 PM Linus Walleij wrote:
>> On Fri, Oct 17, 2014 at 2:11 PM, Rafael J. Wysocki <rjw@xxxxxxxxxxxxx> wrote:
>>
>> > From: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx>
>> >
>> > GPIO descriptors are the preferred way over legacy GPIO numbers
>> > nowadays. Convert the driver to use GPIO descriptors internally but
>> > still allow passing legacy GPIO numbers from platform data to support
>> > existing platforms.
>> >
>> > Signed-off-by: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx>
>> > Acked-by: Alexandre Courbot <acourbot@xxxxxxxxxx>
>> > Acked-by: Bryan Wu <cooloney@xxxxxxxxx>
>> > Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
>> (...)
>>
>> >         if (led_dat->blinking) {
>> > -               led_dat->platform_gpio_blink_set(led_dat->gpio,
>> > -                                                led_dat->new_level,
>> > -                                                NULL, NULL);
>> > +               int gpio = desc_to_gpio(led_dat->gpiod);
>> > +               int level = led_dat->new_level;
>>
>> So this desc_to_gpio() is done only to call the legacy callback below?
>>
>> > +               if (gpiod_is_active_low(led_dat->gpiod))
>> > +                       level = !level;
>>
>> And that leads to making it necessary to have this helper variable
>> to invert the level since that callback does not pass a descriptor
>> (which would inherently know if it's active low)....
>>
>> > +
>> > +               led_dat->platform_gpio_blink_set(gpio, level, NULL, NULL);
>>
>> Is it *really* impossible to change all the users of this callback?
>
> You said it could be done in a followup patch.  Here:
> http://marc.info/?l=linux-acpi&m=141154536921643&w=4
>
> And Mika said he would add that to his TODO list:
> http://marc.info/?l=linux-acpi&m=141155173924101&w=4
>
> I suppose that is still valid.

Yes, I *can* be done as follow up, and I still *prefer* that it
be fixed now.

Otherwise I wouldn't keep commenting on it.

>> > +               led_dat->gpiod = gpio_to_desc(template->gpio);
>> > +               if (IS_ERR(led_dat->gpiod))
>> > +                       return PTR_ERR(led_dat->gpiod);
>> >         }
>>
>> OK so this is the legacy codepath: point it out in a big fat
>> comment that this is the legacy codepath.
>
> That looks like it could be done in a followup patch too.

That's not so much work that it can't be done now.

The follow-up patch I mean.

> Since the series is in my linux-next branch at this point, I really wouldn't
> like to reshuffle commits in it if that can be avoided.

That's OK if we just get the follow-up stuff now (the comment patch
immediately!), not in 18 months.

Yours,
Linus Walleij
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]
  Powered by Linux