Forum | Documentation | Website | Blog

Skip to content
Snippets Groups Projects
  1. Mar 17, 2021
    • Maximilian Luz's avatar
      docs: driver-api: Add Surface DTX driver documentation · f614a1e2
      Maximilian Luz authored
      
      Add documentation for the user-space interface of the Surface DTX
      (detachment system) driver, used on Microsoft Surface Book series
      devices.
      
      Signed-off-by: default avatarMaximilian Luz <luzmaximilian@gmail.com>
      Link: https://lore.kernel.org/r/20210308184819.437438-4-luzmaximilian@gmail.com
      
      
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      f614a1e2
    • Maximilian Luz's avatar
      platform/surface: Add DTX driver · 1d609992
      Maximilian Luz authored
      The Microsoft Surface Book series devices consist of a so-called
      clipboard part (containing the CPU, touchscreen, and primary battery)
      and a base part (containing keyboard, secondary battery, and optional
      discrete GPU). These parts can be separated, i.e. the clipboard can be
      detached and used as tablet.
      
      This detachment process is initiated by pressing a button. On the
      Surface Book 2 and 3 (targeted with this commit), the Surface Aggregator
      Module (i.e. the embedded controller on those devices) attempts to send
      a notification to any listening client driver and waits for further
      instructions (i.e. whether the detachment process should continue or be
      aborted). If it does not receive a response in a certain time-frame, the
      detachment process (by default) continues and the clipboard can be
      physically separated. In other words, (by default and) without a driver,
      the detachment process takes about 10 seconds to complete.
      
      This commit introduces a driver for this detachment syste...
      1d609992
  2. Mar 08, 2021
  3. Mar 06, 2021
    • Maximilian Luz's avatar
      platform/surface: Add platform profile driver · b78b4982
      Maximilian Luz authored
      
      Add a driver to provide platform profile support on 5th- and later
      generation Microsoft Surface devices with a Surface System Aggregator
      Module. On those devices, the platform profile can be used to influence
      cooling behavior and power consumption.
      
      For example, the default 'quiet' profile limits fan noise and in turn
      sacrifices performance of the discrete GPU found on Surface Books. Its
      full performance can only be unlocked on the 'performance' profile.
      
      Signed-off-by: default avatarMaximilian Luz <luzmaximilian@gmail.com>
      Reviewed-by: default avatarHans de Goede <hdegoede@redhat.com>
      Link: https://lore.kernel.org/r/20210211201703.658240-5-luzmaximilian@gmail.com
      
      
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      b78b4982
    • Maximilian Luz's avatar
      platform/surface: Set up Surface Aggregator device registry · fc622b3d
      Maximilian Luz authored
      
      The Surface System Aggregator Module (SSAM) subsystem provides various
      functionalities, which are separated by spreading them across multiple
      devices and corresponding drivers. Parts of that functionality / some of
      those devices, however, can (as far as we currently know) not be
      auto-detected by conventional means. While older (specifically 5th- and
      6th-)generation models do advertise most of their functionality via
      standard platform devices in ACPI, newer generations do not.
      
      As we are currently also not aware of any feasible way to query said
      functionalities dynamically, this poses a problem. There is, however, a
      device in ACPI that seems to be used by Windows for identifying
      different Surface models: The Windows Surface Integration Device (WSID).
      This device seems to have a HID corresponding to the overall set of
      functionalities SSAM provides for the associated model.
      
      This commit introduces a registry providing non-detectable device
      information via software nodes. In addition, a SSAM platform hub driver
      is introduced, which takes care of creating and managing the SSAM
      devices specified in this registry. This approach allows for a
      hierarchical setup akin to ACPI and is easily extendable, e.g. via
      firmware node properties.
      
      Note that this commit only provides the basis for the platform hub and
      registry, and does not add any content to it. The registry will be
      expanded in subsequent commits.
      
      Signed-off-by: default avatarMaximilian Luz <luzmaximilian@gmail.com>
      Link: https://lore.kernel.org/r/20210212115439.1525216-2-luzmaximilian@gmail.com
      
      
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      fc622b3d
  4. Feb 26, 2021
  5. Feb 23, 2021
  6. Feb 22, 2021
  7. Feb 21, 2021
    • Masahiro Yamada's avatar
      kbuild: check the minimum linker version in Kconfig · 02aff859
      Masahiro Yamada authored
      Unify the two scripts/ld-version.sh and scripts/lld-version.sh, and
      check the minimum linker version like scripts/cc-version.sh did.
      
      I tested this script for some corner cases reported in the past:
      
       - GNU ld version 2.25-15.fc23
         as reported by commit 8083013f ("ld-version: Fix it on Fedora")
      
       - GNU ld (GNU Binutils) 2.20.1.20100303
         as reported by commit 0d61ed17
      
       ("ld-version: Drop the 4th and
         5th version components")
      
      This script show an error message if the linker is too old:
      
        $ make LD=ld.lld-9
          SYNC    include/config/auto.conf
        ***
        *** Linker is too old.
        ***   Your LLD version:    9.0.1
        ***   Minimum LLD version: 10.0.1
        ***
        scripts/Kconfig.include:50: Sorry, this linker is not supported.
        make[2]: *** [scripts/kconfig/Makefile:71: syncconfig] Error 1
        make[1]: *** [Makefile:600: syncconfig] Error 2
        make: *** [Makefile:708: include/config/auto.conf] Error 2
      
      I also moved the check for gold to this script, so gold is still rejected:
      
        $ make LD=gold
          SYNC    include/config/auto.conf
        gold linker is not supported as it is not capable of linking the kernel proper.
        scripts/Kconfig.include:50: Sorry, this linker is not supported.
        make[2]: *** [scripts/kconfig/Makefile:71: syncconfig] Error 1
        make[1]: *** [Makefile:600: syncconfig] Error 2
        make: *** [Makefile:708: include/config/auto.conf] Error 2
      
      Thanks to David Laight for suggesting shell script improvements.
      
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      Acked-by: default avatarNick Desaulniers <ndesaulniers@google.com>
      Reviewed-by: default avatarNathan Chancellor <nathan@kernel.org>
      Tested-by: default avatarNathan Chancellor <nathan@kernel.org>
      02aff859
  8. Feb 19, 2021
  9. Feb 16, 2021
  10. Feb 15, 2021
  11. Feb 14, 2021
  12. Feb 13, 2021
  13. Feb 12, 2021
  14. Feb 11, 2021
  15. Feb 10, 2021
  16. Feb 09, 2021