1. 09 Jan, 2020 2 commits
    • Hans de Goede's avatar
      pinctrl: baytrail: Replace WARN with dev_info_once when setting direct-irq pin to output · e2b74419
      Hans de Goede authored
      Suspending Goodix touchscreens requires changing the interrupt pin to
      output before sending them a power-down command. Followed by wiggling
      the interrupt pin to wake the device up, after which it is put back
      in input mode.
      
      On Cherry Trail device the interrupt pin is listed as a GpioInt ACPI
      resource so we can do this without problems as long as we release the
      IRQ before changing the pin to output mode.
      
      On Bay Trail devices with a Goodix touchscreen direct-irq mode is used
      in combination with listing the pin as a normal GpioIo resource. This
      works fine, but this triggers the WARN in byt_gpio_set_direction-s output
      path because direct-irq support is enabled on the pin.
      
      This commit replaces the WARN call with a dev_info_once call, fixing a
      bunch of WARN splats in dmesg on each suspend/resume cycle.
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      Acked-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
      Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      e2b74419
    • Hans de Goede's avatar
      pinctrl: baytrail: Do not clear IRQ flags on direct-irq enabled pins · a2368059
      Hans de Goede authored
      Suspending Goodix touchscreens requires changing the interrupt pin to
      output before sending them a power-down command. Followed by wiggling
      the interrupt pin to wake the device up, after which it is put back
      in input mode.
      
      On Bay Trail devices with a Goodix touchscreen direct-irq mode is used
      in combination with listing the pin as a normal GpioIo resource.
      
      This works fine, until the goodix driver gets rmmod-ed and then insmod-ed
      again. In this case byt_gpio_disable_free() calls
      byt_gpio_clear_triggering() which clears the IRQ flags and after that the
      (direct) IRQ no longer triggers.
      
      This commit fixes this by adding a check for the BYT_DIRECT_IRQ_EN flag
      to byt_gpio_clear_triggering().
      
      Note that byt_gpio_clear_triggering() only gets called from
      byt_gpio_disable_free() for direct-irq enabled pins, as these are excluded
      from the irq_valid mask by byt_init_irq_valid_mask().
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      Acked-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
      Reviewed-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      a2368059
  2. 08 Jan, 2020 1 commit
  3. 13 Dec, 2019 32 commits
  4. 09 Dec, 2019 5 commits