On Wed, Sep 27, 2023 at 10:38 AM Hans de Goede <hdegoede@xxxxxxxxxx> wrote: > > Hi Bartosz, > > On 9/26/23 16:59, Bartosz Golaszewski wrote: > > From: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxx> > > > > gpiod_toggle_active_low() is a badly designed API that should have never > > been used elsewhere then in the MMC code. And even there we should find > > a better solution. > > > > Replace the uses of it in the int3472 driver with the good old temporary > > lookup table trick. This is not very pretty either but it's the lesser > > evil. > > I saw your previous proposal which added a new api to directly set > the active_low flag, rather then toggle it. > > I intended to reply to that thread to say that I liked that approach, > but I don't remember if I actually did reply. > > I wonder what made you abandon the new function to directly set > the active-low flag on a gpio_desc? > > For the int3472 code that would work pretty well and it would > be much cleaner then the temp gpio-lookup approach. > You did reply, yes. Under one of the other patches Linus W stated that first: adding the ability for consumers to toggle the polarity was added to handle the MMC slot quirk, then it was used unknowingly to GPIO maintainers in other places (including this driver). I then acknowledged the fact that it should have never existed in the first place as this is HW description and should be defined in ACPI, DT or lookup flags. I'm not sure why this information needs to be hard-coded in the driver in int3472_get_func_and_polarity() but maybe it could be pulled into gpiolib-acpi.c with other quirks? Bart