1. 04 Feb, 2023 7 commits
  2. 30 Jan, 2023 12 commits
  3. 27 Jan, 2023 18 commits
  4. 20 Jan, 2023 1 commit
  5. 11 Jan, 2023 2 commits
    • Jeff LaBundy's avatar
      Input: iqs269a - do not poll during ATI · b08134eb
      Jeff LaBundy authored
      After initial start-up, the driver triggers ATI (calibration) with
      the newly loaded register configuration in place. Next, the driver
      polls a register field to ensure ATI completed in a timely fashion
      and that the device is ready to sense.
      
      However, communicating with the device over I2C while ATI is under-
      way may induce noise in the device and cause ATI to fail. As such,
      the vendor recommends not to poll the device during ATI.
      
      To solve this problem, let the device naturally signal to the host
      that ATI is complete by way of an interrupt. A completion prevents
      the device from successfully probing until this happens.
      
      As an added benefit, initial switch states are now reported in the
      interrupt handler at the same time ATI status is checked. As such,
      duplicate code that reports initial switch states has been removed
      from iqs269_input_init().
      
      The former logic that scaled ATI timeout and filter settling delay
      is not carried forward with the new implementation, as it produces
      overly conservative delays at the lower clock rate.
      
      Rather, a single timeout that covers both clock rates is used. The
      filter settling delay does not happen to be necessary and has been
      removed as well.
      
      Fixes: 04e49867 ("Input: add support for Azoteq IQS269A")
      Signed-off-by: default avatarJeff LaBundy <jeff@labundy.com>
      Reviewed-by: default avatarMattijs Korpershoek <mkorpershoek@baylibre.com>
      Link: https://lore.kernel.org/r/Y7RtB2T7AF9rYMjK@nixie71Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      b08134eb
    • Jeff LaBundy's avatar
      Input: iqs269a - do not poll during suspend or resume · 18ab69c8
      Jeff LaBundy authored
      Polling the device while it transitions from automatic to manual
      power mode switching may keep the device from actually finishing
      the transition. The process appears to time out depending on the
      polling rate and the device's core clock frequency.
      
      This is ultimately unnecessary in the first place; instead it is
      sufficient to write the desired mode during initialization, then
      disable automatic switching at suspend. This eliminates the need
      to ensure the device is prepared for a manual change and removes
      the 'suspend_mode' variable.
      
      Similarly, polling the device while it transitions from one mode
      to another under manual control may time out as well. This added
      step does not appear to be necessary either, so drop it.
      
      Fixes: 04e49867 ("Input: add support for Azoteq IQS269A")
      Signed-off-by: default avatarJeff LaBundy <jeff@labundy.com>
      Reviewed-by: default avatarMattijs Korpershoek <mkorpershoek@baylibre.com>
      Link: https://lore.kernel.org/r/Y7Rs+eEXlRw4Vq57@nixie71Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      18ab69c8