Skip to content
  1. Jan 04, 2021
  2. Jan 02, 2021
    • Geert Uytterhoeven's avatar
      Input: st1232 - wait until device is ready before reading resolution · f605be6a
      Geert Uytterhoeven authored
      According to the st1232 datasheet, the host has to wait for the device
      to change into Normal state before accessing registers other than the
      Status Register.
      
      If the reset GPIO is wired, the device is powered on during driver
      probe, just before reading the resolution.  However, the latter may
      happen before the device is ready, leading to a probe failure:
      
          st1232-ts 1-0055: Failed to read resolution: -6
      
      Fix this by waiting until the device is ready, by trying to read the
      Status Register until it indicates so, or until timeout.
      
      On Armadillo 800 EVA, typically the first read fails with an I2C
      transfer error, while the second read indicates the device is ready.
      
      Fixes: 3a54a215
      
       ("Input: st1232 - add support resolution reading")
      Signed-off-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
      Link: https://lore.kernel.org/r/20201229162601.2154566-4-geert+renesas@glider.be
      Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      f605be6a
    • Geert Uytterhoeven's avatar
      Input: st1232 - do not read more bytes than needed · b999dbea
      Geert Uytterhoeven authored
      st1232_ts_read_data() already reads ts->read_buf_len bytes (8 or 20
      bytes) from the touchscreen controller.  This was fine when it was used
      to read touch point coordinates only, but is overkill for reading the
      touchscreen resolution, which just needs 3 bytes.
      
      Optimize transfers by passing the wanted number of bytes.
      
      Fixes: 3a54a215
      
       ("Input: st1232 - add support resolution reading")
      Signed-off-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
      Link: https://lore.kernel.org/r/20201229162601.2154566-3-geert+renesas@glider.be
      Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      b999dbea
    • Geert Uytterhoeven's avatar
      Input: st1232 - fix off-by-one error in resolution handling · 928eedf0
      Geert Uytterhoeven authored
      Before, the maximum coordinates were fixed to (799, 479) or (319, 479),
      depending on touchscreen controller type.  The driver was changed to
      read the actual values from the touchscreen controller, but did not take
      into account the returned values are not the maximum coordinates, but
      the touchscreen resolution (e.g. 800 and 480).
      
      Fix this by subtracting 1.
      
      Fixes: 3a54a215
      
       ("Input: st1232 - add support resolution reading")
      Signed-off-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
      Link: https://lore.kernel.org/r/20201229162601.2154566-2-geert+renesas@glider.be
      Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      928eedf0
  3. Dec 15, 2020
  4. Dec 12, 2020
  5. Dec 11, 2020
  6. Dec 10, 2020
  7. Dec 07, 2020
    • Hans de Goede's avatar
      Input: soc_button_array - add Lenovo Yoga Tablet2 1051L to the dmi_use_low_level_irq list · 223f61b8
      Hans de Goede authored
      
      
      Add the Lenovo Yoga Tablet2 1051L to the list of devices where the
      ACPI AML code is poking the GPIO config register directly changing
      the IRQ type to a low_level_irq, which we need to work around.
      
      This fixes the home button on the Lenovo Yoga Tablet2 1051L not
      working.
      
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      Link: https://lore.kernel.org/r/20201206161245.24798-1-hdegoede@redhat.com
      Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      223f61b8
    • Furquan Shaikh's avatar
      Input: raydium_ts_i2c - do not split tx transactions · 3b384bd6
      Furquan Shaikh authored
      
      
      Raydium device does not like splitting of tx transactions into multiple
      messages - one for the register address and one for the actual data. This
      results in incorrect behavior on the device side.
      
      This change updates raydium_i2c_read and raydium_i2c_write to create
      i2c_msg arrays separately and passes those arrays into raydium_i2c_xfer
      which decides based on the address whether the bank switch command should
      be sent. The bank switch header is still added by raydium_i2c_read and
      raydium_i2c_write to ensure that all these operations are performed as part
      of a single I2C transfer. It guarantees that no other transactions are
      initiated to any other device on the same bus after the bank switch command
      is sent.
      
      Signed-off-by: default avatarFurquan Shaikh <furquan@google.com>
      Link: https://lore.kernel.org/r/20201205005941.1427643-1-furquan@google.com
      Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      3b384bd6