1. 20 Feb, 2024 3 commits
    • Hans de Goede's avatar
      platform/x86: x86-android-tablets: Fix serdev instantiation no longer working · 812a79b5
      Hans de Goede authored
      After commit b286f4e8 ("serial: core: Move tty and serdev to be
      children of serial core port device") x86_instantiate_serdev() no longer
      works due to the serdev-controller-device moving in the device hierarchy
      from (e.g.) /sys/devices/pci0000:00/8086228A:00/serial0 to
      /sys/devices/pci0000:00/8086228A:00/8086228A:00:0/8086228A:00:0.0/serial0
      
      Use the new get_serdev_controller() helper function to fix this.
      
      Fixes: b286f4e8 ("serial: core: Move tty and serdev to be children of serial core port device")
      Cc: Tony Lindgren <tony@atomide.com>
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      Link: https://lore.kernel.org/r/20240216201721.239791-4-hdegoede@redhat.com
      812a79b5
    • Hans de Goede's avatar
      platform/x86: Add new get_serdev_controller() helper · dc5afd72
      Hans de Goede authored
      In some cases UART attached devices which require an in kernel driver,
      e.g. UART attached Bluetooth HCIs are described in the ACPI tables
      by an ACPI device with a broken or missing UartSerialBusV2() resource.
      
      This causes the kernel to create a /dev/ttyS# char-device for the UART
      instead of creating an in kernel serdev-controller + serdev-device pair
      for the in kernel driver.
      
      The quirk handling in acpi_quirk_skip_serdev_enumeration() makes the kernel
      create a serdev-controller device for these UARTs instead of a /dev/ttyS#.
      
      Instantiating the actual serdev-device to bind to is up to pdx86 code,
      so far this was handled by the x86-android-tablets code. But since
      commit b286f4e8 ("serial: core: Move tty and serdev to be children of
      serial core port device") the serdev-controller device has moved in the
      device hierarchy from (e.g.) /sys/devices/pci0000:00/8086228A:00/serial0 to
      /sys/devices/pci0000:00/8086228A:00/8086228A:00:0/8086228A:00:0.0/serial0 .
      
      This makes this a bit trickier to do and another driver is in the works
      which will also need this functionality.
      
      Add a new helper to get the serdev-controller device, so that the new
      code for this can be shared.
      
      Fixes: b286f4e8 ("serial: core: Move tty and serdev to be children of serial core port device")
      Cc: Tony Lindgren <tony@atomide.com>
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      Link: https://lore.kernel.org/r/20240216201721.239791-3-hdegoede@redhat.com
      dc5afd72
    • Hans de Goede's avatar
      platform/x86: x86-android-tablets: Fix keyboard touchscreen on Lenovo Yogabook1 X90 · bd8905d7
      Hans de Goede authored
      After commit 4014ae23 ("platform/x86: x86-android-tablets: Stop using
      gpiolib private APIs") the touchscreen in the keyboard half of
      the Lenovo Yogabook1 X90 stopped working with the following error:
      
       Goodix-TS i2c-goodix_ts: error -EBUSY: Failed to get irq GPIO
      
      The problem is that when getting the IRQ for instantiated i2c_client-s
      from a GPIO (rather then using an IRQ directly from the IOAPIC),
      x86_acpi_irq_helper_get() now properly requests the GPIO, which disallows
      other drivers from requesting it. Normally this is a good thing, but
      the goodix touchscreen also uses the IRQ as an output during reset
      to select which of its 2 possible I2C addresses should be used.
      
      Add a new free_gpio flag to struct x86_acpi_irq_data to deal with this
      and release the GPIO after getting the IRQ in this special case.
      
      Fixes: 4014ae23 ("platform/x86: x86-android-tablets: Stop using gpiolib private APIs")
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      Link: https://lore.kernel.org/r/20240216201721.239791-2-hdegoede@redhat.com
      bd8905d7
  2. 19 Feb, 2024 10 commits
  3. 26 Jan, 2024 5 commits
  4. 22 Jan, 2024 15 commits
  5. 21 Jan, 2024 7 commits