• Furquan Shaikh's avatar
    pinctrl: amd: Honor IRQ trigger type requested by the caller · 5f4962dd
    Furquan Shaikh authored
    This change drops the override in `amd_gpio_irq_set_type()` that
    ignores the IRQ trigger type settings from the caller. The device
    driver (caller) is in a better position to identify the right trigger
    type for the device based on the usage as well as the information
    exposed by the BIOS. There are instances where the device driver might
    want to configure the trigger type differently in different modes. An
    example of this is gpio-keys driver which configures IRQ type as
    trigger on both edges (to identify assert and deassert events) when in
    S0 and reconfigures the trigger type using the information provided by
    the BIOS when going into suspend to ensure that the wake happens on
    the required edge.
    
    This override in `amd_gpio_irq_set_type()` prevents the caller from
    being able to reconfigure trigger type once it is set either based on
    ACPI information or the type used by the first caller for IRQ on a
    given GPIO line.
    
    Without this change, pen-insert gpio key (used by garaged stylus on a
    Chromebook) works fine in S0 (i.e. insert and eject events are
    correctly identified), however, BIOS configuration for wake on only
    pen eject i.e. only-rising edge or only-falling edge is not honored.
    
    With this change, it was verified that pen-insert gpio key behavior is
    correct in both S0 and for wakeup from S3.
    Signed-off-by: default avatarFurquan Shaikh <furquan@google.com>
    Signed-off-by: Shyam Sundar S K<Shyam-sundar.S-k@amd.com>
    Link: https://lore.kernel.org/r/20200626211026.513520-1-furquan@google.comSigned-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    5f4962dd
pinctrl-amd.c 25.7 KB