linux/Documentation/ABI
Linus Torvalds c339f4010d platform-drivers-x86 for v7.4-1
Highlights:
 
 - acer-wmi:
   - Add HWMON support for Aspire A315-58G
   - Add platform profile, HWMON, and fan control support for Nitro
     ANV15-51
   - Add support for mode key on some models (e.g. Nitro AN16-41)
 
 - acer-wmi-battery: Add battery control driver
 
 - ACPI: video: Remove CONFIG_X86 dependency as WMI now supports non-X86
                archs
 
 - alienware-wmi-wmax: Add support for Alienware Area-51 AAT2250
 
 - amd/hsmp: Add support for Family 1Ah client platforms
 
 - amd/pmc:
   - Do not rely on intermediate cycle counting in the wakeup delay logic
   - Make HP Laptop 14-fq1xxxx and Thinkpad L14 Gen3 (21C5) use s2idle
     quirk
   - Make Asus ROG Flow Z13 use spurious_8042 quirk
   - Add support for AMD 1Ah Family DCh SoC
 
 - amd/pmf:
   - Add support for AMDI0112
   - Fix compat ioctl handling
 
 - arm64: asus-glymur-ec: Add support
 
 - arm64: lenovo-yoga-slim7x-gen11-ec: Add support
 
 - arm64: qcom-hamoa-ec: Disable SCI IRQ during suspend
 
 - arm64: thinkpad-t14s-ec: Do not send KEY_KBDILLUMTOGGLE on FN + Space
                            as EC already steps keyboard backlight
 
 - asus-armoury:
   - Add discrete GPU power state attribute
   - Add support for discrete GPU disable on ProArt H7606
   - Support tunables with more models
 
 - asus-nw-wmi: Make ROG Flow X13 GV302X use the tablet-mode switch quirk
 
 - asus-wmi:
   - Make ASUS ProArt PX13 use the tablet-mode switch quirk
   - Add support for mute LED
   - Fix screenpad backlight problems
   - Correct kbd_rgb_state_index description (keyboard -> shutdown)
 
 - ayaneo-ec: Add support for AYANEO 2S
 
 - bitland-mifs-wmi: Correct interpretation of WMI call output
 
 - dell-dw5826e: Add support for _DSM with revision 0 (Slate PTL CS 14,
                 Yukon PTL CSLW 14, Yukon PTL 360 14)
 
 - hp-bioscfg: Many fixes
 
 - hp-wmi:
   - Add change control support for HP Spectre x360 16-aa0xxx
   - Do not show any fan attribute when no fans are available
   - Add support for OMEN 16-am0xxx, OMEN 16-am2xxx, OMEN 17-ck1xxx, OMEN
     MAX 16-ah0xxx, OMEN Slim 16t-an000, OMEN Transcend 14-fb1xxx
   - Add HP Laptop 15-fd1xxx support
   - Add Victus 15-fb3xxx, Victus 16-d1xxx (8A26), Victus 16-e0xxx support
 
 - huawei-wmi: Add support for Honor MagicBook camera privacy toggle key
 
 - ideapad-laptop:
   - Add support for Mode key and Phone Link key found on some Yoga Pro
     7 models
   - Add support for camera switch on some Yoga Pro 7 and Legion Pro 7
     models
 
 - intel/hid: Support 5-button array on HP EliteBook x360 1030 G2
 
 - intel/pmc:
   - Add rugged Panther Lake support
   - Fix Nova Lake PCD-S telemetry constants
 
 - intel/pmt:
   - Block mmap when read_telem() callback is present
   - Fix PCI device to device generalization
 
 - intel/speed-select-if: Always enumerate on recent server CPUs
                          (Family 19, i.e., Diamond Rapids and onwards)
 
 - intel/tpmi: Prepare for enumerating non-PCI devices
 
 - intel-uncore-freq:
   - Restore limits properly also on sparse setups
   - Add rugged Panther Lake support
 
 - intel/vsec:
   - Reset state properly before re-enumeration
   - Fix inverted logic in get features function
 
 - lenovo-wmi-capdata: Support non-supported, stubbed WMI query method
                       for capdata device
 
 - msi-ec:
   - Prevent out of bounds charge thresholds
   - Add support for MSI Creator Z16 A11UE, MSI GL65 Leopard 9SCXK,
     MSI Katana 15 B13VFK
 
 - msi-wmi: Ignore key events for keys already handled by atkbd
 
 - oxpec:
   - Add support for charge limit on OneXPlayer Apex
   - Add OneXPlayer 3 support
 
 - panasonic-laptop:
   - Add support for FN key
 
 - surface: aggregator_registry:
   - Remove non-existing sensors device and fix tablet-mode detection on
     Surface Pro 11
   - Add performance profile and fan support for Surface Pro 11
 
 - thinkpad_acpi:
   - Add keyboard attachment detection and reporting found on Thinkpad
     X1 Fold
   - Add support for Thinkpad L440 fan speed reporting
 
 - tools/power/x86/intel-speed-select:
   - Correct make clean
   - Increase wait time after SST PP level switch to prevent stale
     capability readings
 
 - tuxedo:
   - Fix keyboard LED map ordering
   - Correct interpreting intensity vs RGB levels
 
 - uniwill-laptop:
   - Correct brightness handling for 3 level keyboard
   - Add keyboard backlight support for TUXEDO devices
   - Add support for PCSpecialist Recoil 16 AMD
   - Add support for screen rotation key found on PCSpecialist Recoil 16
     AMD and TUXEDO Stellaris 16 Gen7
   - Implement rainbow animation as trigger
   - Correct led labels to match LED subsystem conventions
   - Add support for LAPKC71E Intel NUC x15
 
 - wmi:
   - Remove X86 dependency to allow supporting arm64 laptops in future
   - wmi-bmof: Move under drivers/platform/wmi/
 
 - Miscellaneous cleanups / refactoring / improvements
 
 The following is an automated shortlog grouped by driver:
 
 acer-wmi:
  -  Add support for Acer Nitro AN16-41
  -  Add support for Acer Nitro ANV15-51
  -  Cycle platform profile on mode key 0x4
  -  enable hwmon on Aspire A315-58G
  -  Remove unused platform_profile_support variable
  -  split hwmon from platform profile quirk
  -  use bool for boolean quirk fields
 
 ACPI: video:
  -  Remove CONFIG_X86 handling from nvidia_wmi_ec_supported()
 
 add Acer battery control driver:
  - add Acer battery control driver
 
 Add ACPI_COMPANION() NULL check in topstar_acpi_probe:
  - Add ACPI_COMPANION() NULL check in topstar_acpi_probe
 
 amd: hfi:
  -  Fix a use-after-free when unloading the driver
  -  Fix out-of-bounds reads when parsing ranking data
  -  Rely on ACPI enumeration instead of a dummy device
 
 amd/hsmp:
  -  Add HSMP client support for Family 1Ah
  -  Document and expose client telemetry table in UAPI
  -  Recognize Family 1Ah client platforms and hide server-only paths
  -  Route metric table through the client messages
 
 amd/pmc:
  -  Add HP Laptop 14-fq1xxx to s2idle quirk list
  -  Add PMC driver support for AMD 1Ah Family DCh SoC
  -  Add spurious_8042 to ASUS ROG Flow Z13 GZ302EA
  -  Add Thinkpad L14 Gen3 (21C5) to quirk_s2idle_bug
  -  clear devm-managed pointers on remove to prevent stale reuse
 
 amd: pmc:
  -  Drop scratch_reg from amd_1ah_m80_cpu_info
  -  Only create amd_pmc_idlemask if scratch defined
 
 amd/pmf:
  -  Add AMDI0112 ACPI ID
  -  fix compat ioctl handling
  -  Fix power_supply refcount leak in amd_pmf_get_battery_prop()
  -  Inline !AMD_PMF_DEBUG stub
  -  Inline simple helper function of Smart PC TA interfaces
  -  Inline simple helper function of SPS Layer
  -  Inline simple helper functions of Core Layer
  -  Inline wrappers of ap{mf,ts}_if_call_store_buffer()
  -  Validate the APTS state index
 
 amd:
  -  Stop counting intermediate cycles with metrics table
 
 arm64:
  -  Add a driver for the EC found on ASUS Glymur machines
  -  add Lenovo Yoga Slim 7x Gen 11 EC driver
 
 arm64: qcom-hamoa-ec:
  -  Disable the SCI IRQ during suspend
 
 arm64:
  -  Remove redundant dev_err_probe()
 
 arm64: thinkpad-t14s-ec:
  -  don't send KEY_KBDILLUMTOGGLE on Fn+Space
 
 asus-armoury:
  -  add dGPU disable fallback DEVID for ProArt H7606 series
  -  Add dgpu_power_state attribute
  -  add power limits quirk for FA608PM
  -  add power limits quirk for FA608UH
  -  add power limits quirk for FA608UP
  -  add power limits quirk for G533QS
  -  add power limits quirk for G614FM
  -  add power limits quirk for G713QR
  -  Add power limits quirk for GA401IHR
  -  add power limits quirk for GA402NV
  -  add power limits quirk for GU605CM
  -  add support for GX651AR
  -  Add XBOX ROG Ally X 20 Tunables
  -  let attribute groups decide their own visibility
  -  move has_valid_limit() above the attribute declarations
  -  Prevent disabling dGPU when in use
  -  use sysfs_create_groups() and sysfs_remove_groups()
 
 asus-laptop:
  -  Fix typo in infos_show() comment
 
 asus-nb-wmi:
  -  add tablet mode quirk for ROG Flow X13 GV302X
  -  Fix typo in asus_nb_wmi_quirks() comment
 
 asus-wmi:
  -  Add ASUS_WMI_DEVID_DGPU_POWER_STATE define
  -  Add mute LED support
  -  add tablet-mode switch quirk for ASUS ProArt PX13
  -  don't warn when LPS0 is unavailable
  -  fix screenpad power state detection
  -  fix TUF keyboard power state shutdown naming
  -  fix unclear usage of bd->props.power
  -  fix use-after-free unregistering kbd_led led
  -  name the TUF keyboard RGB state and speed codes
  -  Remove redundant per-device wmi_lock and duplicate rfkill ops
  -  Remove unused platform_profile_support member
  -  remove unused screenpad_brightness
  -  rename TUF RGB state DEVID to _CMD
  -  Serialize WMI method evaluations with a mutex
  -  use backlight_is_blank() for screenpad power
  -  validate custom fan curves on enable
 
 ayaneo-ec:
  -  Add AYANEO 2S charge control
 
 bitland-mifs-wmi:
  -  Detect failed function calls
  -  Treat WMI_FN_SYSTEM_AC_TYPE as optional
 
 dell: alienware-wmi-wmax:
  -  add Alienware Area-51 AAT2250
 
 dell-dw5826e:
  -  Extend _DSM support to revision 0
 
 dell-wmi-aio:
  -  Convert to use the bus-based WMI API
  -  Use named defines for event types
 
 docs: TPMI:
  -  use literal block for commands
 
 gpd pocket fan:
  -  Cancel work before releasing GPIOs
 
 hp_accel:
  -  Fix typo in lis3lv02d_acpi_write() comment
 
 hp-bioscfg:
  -  allow clearing current_password
  -  consolidate common package-element parsing
  -  fix 16-byte heap overflow for empty auth token
  -  fix non-ASCII truncation in hp_get_string_from_buffer()
  -  fix off-by-one in password length check
  -  fix OOB reads in hp_get_string_from_buffer()
  -  fix oops on short integer attribute buffer
  -  fix slab-out-of-bounds write in hp_convert_hexstr_to_str()
  -  NUL-terminate the SPM auth token
  -  remove dead bounds check in audit_log_entries_show
  -  return -E2BIG from validate_password_input()
  -  Support allocating large number of BIOS vars
  -  validate SPM state returned by firmware
  -  zero the hex-string decode buffer in hp_convert_hexstr_to_str()
 
 hp-wmi:
  -  Add board 8E41 (OMEN Transcend 14) to feature board list
  -  add charge_behaviour support for Spectre 8C15/8C17
  -  Add OMEN board 8A17 thermal profile support
  -  Add OMEN board 8A18 thermal profile support
  -  Add OMEN board 8D40 thermal profile support
  -  Add OMEN board 8D42 thermal profile support
  -  Add support for HP Laptop 15-fd1xxx (board 8DE1)
  -  Add support for Omen 16-am0xxx (8D3F)
  -  add support for OMEN 16-am2xxx boards
  -  Add Victus 15-fb3xxx support
  -  Add Victus 16-d1xxx board 8A26 support
  -  Add Victus 16-e0xxx board 88EE support
  -  Disable hwmon attributes when no fans are usable
  -  fix heap OOB read and memory corruption in hp_wmi_perform_query()
  -  Fix hwmon keep-alive teardown
  -  Remove unused platform_profile_support variable
 
 huawei-wmi:
  -  add camera toggle keycode
 
 ibm_rtl:
  -  Fix potential OOB read at signature search
 
 ideapad-laptop:
  -  Add Yoga Pro 7 14IAH10 Mode key
  -  Map Smart Connect hotkey to KEY_LINK_PHONE
  -  Report camera switch as SW_CAMERA_LENS_COVER
 
 int1092:
  -  Mark as orphan
 
 intel/hid:
  -  Enable 5 button array on HP EliteBook x360 1030 G2
 
 intel/pmc:
  -  Add rugged Panther Lake support to intel_pmc_core
  -  Fix stale NVL PCD-S S0ix_LPM telemetry constants
 
 intel/pmt:
  -  Add register access callbacks
  -  Block mmap when callback is present
  -  complete pcidev to device update
  -  Do not remap when using callbacks
  -  refactor rc with a return value
  -  refactor rmw with a return value
 
 intel: power-domains:
  -  Handle failed init in tpmi_get_linux_die_id()
  -  Handle failed init in tpmi_get_power_domain_mask()
 
 intel_telemetry:
  -  initialize default trace verbosity
 
 intel/tpmi:
  -  Build the TPMI control words in one expression
  -  Declare the loop counters in their loops
  -  Describe a TPMI instance by its two devices
  -  Describe the device creation policy on the function
  -  Do not assume TPMI is enumerated from PCI
  -  Drop unused arg from tpmi_set_control_base()
  -  Fix typo in TPMI_FEATURE_NAME_LEN comment
  -  Get tpmi_info directly from the parent device
  -  Include the headers tpmi_common.c relies on
  -  Keep the feature resources in intel_tpmi_info
  -  Remove unused vsec_dev from intel_tpmi_pm_feature
  -  Split off the PCI VSEC enumeration
  -  Split out enumeration independent init and exit
  -  Turn TPMI_GET_SINGLE_ENTRY_SIZE() into a function
  -  Use DEFINE_RES_MEM() for the feature resources
  -  Use DEFINE_SHOW_STORE_ATTRIBUTE() for mem_write
  -  Use guard() for tpmi_dev_lock in the status read
  -  Use scnprintf() to build the debugfs names
  -  Use scope based cleanup in the memory dump
  -  Use static strings for the feature device names
 
 intel-uncore-freq:
  -  Add support for rugged Panther Lake
  -  Continue restoring limits on resume
 
 intel/vsec:
  -  Fix inverted walk_header() test in get_features()
  -  Pass a struct device to intel_vsec_set_mapping()
  -  reset state before re-enumerating
  -  Use bool for run_once
 
 intel: wmi:
  -  Remove redundant callbacks
  -  Use sysfs_emit in sbl-fw-update
 
 ISST:
  -  Avoid model check for recent servers
 
 lenovo-wmi-capdata:
  -  Adopt new WMI API
  -  Defer mutex initialization
  -  Detect stubbed capdata device
  -  Do not match missing components
  -  Do not stop the AC notifier chain on error
  -  Only allocate sub-master info when necessary
 
 lenovo-wmi-{capdata,other}:
  -  Only allocate capdata list when necessary
 
 lenovo-wmi-capdata:
  -  Register component even on WMI error
  -  Store a pointer to component info
 
 lenovo-wmi-helpers:
  -  Adopt new WMI API
 
 lib/string_choices:
  -  Add str_supported_unsupported() helper
 
 MAINTAINERS:
  -  Add Aaron Erhardt as maintainer of TUXEDO DRIVERS
  -  Add myself as a LENOVO drivers co-maintainer
 
 mellanox:
  -  Remove redundant dev_err()
 
 msi-ec:
  -  Add MSI Creator Z16 A11UE EC firmware
  -  Add MSI GL65 Leopard 9SCXK EC firmware
  -  Add MSI Katana 15 B13VFK EC firmware
  -  Report valid charge thresholds when unset
 
 msi-laptop:
  -  Fix typo in struct quirk_entry comment
 
 msi-wmi:
  -  Fix hotkeys dropped with vendor backlight
  -  Ignore WMI events for keys also handled by atkbd
  -  Sort scancodes numerically
 
 olpc:
  -  Reserve space for a string terminator
 
 oxpec:
  -  Add OneXPlayer 3 quirk
  -  Fix Apex charge limit control
 
 panasonic-laptop:
  -  Fix typo in the file history comment
  -  register FN key up/down events
 
 Remove redundant dev_err()/dev_err_probe():
  - Remove redundant dev_err()/dev_err_probe()
 
 platform/x86: thinkpad_acpi:
  - Revert: Add X9-14 Gen 1 to non-standard thermal/fan quirk tables
 
 samsung-laptop:
  -  Fix typo in sabi_configs comment
 
 simatic-ipc:
  -  fix platform device leak on registration failure
 
 surface: aggregator_registry:
  -  Add performance profile and fan support for Surface Pro 11
  -  Add Surface Laptop 8th Edition
  -  Fix tablet-mode detection on Surface Pro 11
  -  Remove sensors device for Surface Pro 11
 
 think-lmi:
  -  Use ARRAY_SIZE() in tlmi_errstr_to_err()
  -  Use scnprintf() in new_password_store()
  -  Use sysfs_emit() in pending_reboot_show()
 
 thinkpad-acpi:
  -  Add X1 Fold keyboard attachment detection
 
 thinkpad_acpi:
  -  Add X9-14 Gen 1 to non-standard thermal/fan quirk tables
  -  convert conditional mutex locks to ACQUIRE_ERR()
  -  convert mutex_lock() to guard(mutex)
  -  fix deadlock in hotkey input open/close
  -  Fix fan speed reporting on ThinkPad L440
  -  fix typos in comments
  -  Remove unreachable code in beep_read()
  -  Use bool for local is_thinkpad variable
  -  use __free(kfree) for automatic cleanup
  -  Use input_device_enabled()
  -  Use str_supported_unsupported() helper
 
 tools/power/x86/intel-speed-select:
  -  Clean all the produced files
  -  Correct macro name in debug output
  -  Fix signed shift UB in BIT() macro
  -  Increase wait time after SST PP level switch
  -  v1.27 release
 
 toshiba_haps:
  -  Remove unnecessary ret in toshiba_haps_resume()
 
 tuxedo:
  -  Don't use device driver data
  -  Fix keyboard LED map ordering
  -  Set HID report ID on success
  -  Update and extend documentation
  -  Use intensity according to HID spec
 
 uniwill-laptop:
  -  Add PCSpecialist Recoil 16 AMD
  -  Enable kb backlight and lightbar for TUXEDO
  -  Extend support for the Intel NUC x15
  -  Fix breathing animation on Intel QC
  -  Fix brightness notify for 3 level keyboards
  -  Fix typo in the kbd LED brightness comment
  -  Implement rainbow animation as trigger
  -  Label multicolor LEDs correctly
  -  Map the screen rotation key
  -  Report correct lightbar brightness
 
 wmi-bmof:
  -  Move to generic WMI code
 
 wmi:
  -  Introduce wmidev_exists()
  -  Remove dependency on CONFIG_X86
 
 yogabook:
  -  use assign_bit()/change_bit() where applicable
 
 Merges:
  -  Merge branch 'fixes' into review-ilpo-next
  -  Merge branch 'platform-drivers-x86-intel-pmt' into for-next
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQSCSUwRdwTNL2MhaBlZrE9hU+XOMQUCauHB9QAKCRBZrE9hU+XO
 MZV2AQCkkN0AWkpcntUWH2Ocw4fxIkGGGit7runnoFMsO0OApgEAtYECez8g+lbW
 UHrOn4M0tqqGx6qcj0/isbJP6TApGwI=
 =cGZu
 -----END PGP SIGNATURE-----

Merge tag 'platform-drivers-x86-v7.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86

Pull x86 platform driver updates from Ilpo Järvinen:
 "The usual updates for laptop quirks from HP, ASUS, Acer, Dell etc:
   - new model names and recent CPU support
   - more special button / function key handling
   - battery and hardware monitoring quirks

  Tool updates to intel-speed-select

  WMI now supports non-x86 architectures

  Miscellaneous cleanups / refactoring / improvements"

* tag 'platform-drivers-x86-v7.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86: (237 commits)
  platform/x86: asus-wmi: name the TUF keyboard RGB state and speed codes
  platform/x86: asus-wmi: fix TUF keyboard power state shutdown naming
  platform/x86: asus-wmi: rename TUF RGB state DEVID to _CMD
  platform/x86: asus-armoury: add power limits quirk for GU605CM
  platform/x86: asus-armoury: add power limits quirk for G533QS
  platform/x86: asus-armoury: add power limits quirk for GA402NV
  platform/x86: asus-armoury: add power limits quirk for FA608UP
  platform/x86: asus-armoury: add power limits quirk for FA608UH
  platform/x86: asus-armoury: add power limits quirk for FA608PM
  platform/x86: asus-armoury: add power limits quirk for G713QR
  platform/x86: ibm_rtl: Fix potential OOB read at signature search
  platform/x86: acer-wmi: Add support for Acer Nitro AN16-41
  platform/x86: acer-wmi: Cycle platform profile on mode key 0x4
  platform/x86: hp-wmi: Disable hwmon attributes when no fans are usable
  platform/x86: gpd pocket fan: Cancel work before releasing GPIOs
  platform/x86: asus-armoury: Add XBOX ROG Ally X 20 Tunables
  platform/x86: msi-wmi: Ignore WMI events for keys also handled by atkbd
  platform/x86: msi-wmi: Sort scancodes numerically
  platform: arm64: Add a driver for the EC found on ASUS Glymur machines
  MAINTAINERS: Add myself as a LENOVO drivers co-maintainer
  ...
2026-10-28 07:36:32 -10:00
..
obsolete Documentation: ABI: remove outdated USB power/level removal notice 2026-07-10 15:56:10 +02:00
removed platform/x86: uniwill-laptop: Implement rainbow animation as trigger 2026-10-13 12:05:38 +03:00
stable for-7.4/block-20261021 2026-10-24 14:14:00 -10:00
testing platform-drivers-x86 for v7.4-1 2026-10-28 07:36:32 -10:00
README docs: ABI: README: fix grammatical error 2026-07-15 10:51:28 -06:00

This part of the documentation inside Documentation/ABI directory
attempts to document the ABI between the Linux kernel and
userspace, and the relative stability of these interfaces.  Due to the
everchanging nature of Linux, and the differing maturity levels, these
interfaces should be used by userspace programs in different ways.

We have four different levels of ABI stability, as shown by the four
different subdirectories in this location.  Interfaces may change levels
of stability according to the rules described below.

The different levels of stability are:

  stable/
	This directory documents the interfaces that the developer has
	defined to be stable.  Userspace programs are free to use these
	interfaces with no restrictions, and backward compatibility for
	them will be guaranteed for at least 2 years.  Most interfaces
	(like syscalls) are expected to never change and always be
	available.

  testing/
	This directory documents interfaces that are felt to be stable,
	as the main development of this interface has been completed.
	The interface can be changed to add new features, but the
	current interface will not break by doing this, unless grave
	errors or security problems are found in them.  Userspace
	programs can start to rely on these interfaces, but they must be
	aware of changes that can occur before these interfaces move to
	be marked stable.  Programs that use these interfaces are
	strongly encouraged to add their name to the description of
	these interfaces, so that the kernel developers can easily
	notify them if any changes occur (see the description of the
	layout of the files below for details on how to do this.)

  obsolete/
	This directory documents interfaces that are still remaining in
	the kernel, but are marked to be removed at some later point in
	time.  The description of the interface will document the reason
	why it is obsolete and when it can be expected to be removed.

  removed/
	This directory contains a list of the old interfaces that have
	been removed from the kernel.

Every file in these directories will contain the following information:

What:		Short description of the interface
Date:		Date created
KernelVersion:	(Optional) Kernel version this feature first showed up in.
		Note: git history often provides more accurate version
		info, so this field may be omitted.
Contact:	Primary contact for this interface (may be a mailing list)
Description:	Long description of the interface and how to use it.
Users:		All users of this interface who wish to be notified when
		it changes.  This is very important for interfaces in
		the "testing" stage, so that kernel developers can work
		with userspace developers to ensure that things do not
		break in ways that are unacceptable.  It is also
		important to get feedback for these interfaces to make
		sure they are working in a proper way and do not need to
		be changed further.


Note:
   The fields should use a simple notation, compatible with ReST markup.
   Also, the file **should not** have a top-level index, like::

	===
	foo
	===

How things move between levels:

Interfaces in stable may move to obsolete, as long as the proper
notification is given.

Interfaces may be removed from obsolete and the kernel as long as the
documented amount of time has gone by.

Interfaces in the testing state can move to the stable state when the
developers feel they are finished.  They cannot be removed from the
kernel tree without going through the obsolete state first.

It's up to the developer to place their interfaces in the category they
wish for it to start out in.


Notable bits of non-ABI, which should not under any circumstances be considered
stable:

- Kconfig.  Userspace should not rely on the presence or absence of any
  particular Kconfig symbol, in /proc/config.gz, in the copy of .config
  commonly installed to /boot, or in any invocation of the kernel build
  process.

- Kernel-internal symbols.  Do not rely on the presence, absence, location, or
  type of any kernel symbol, either in System.map files or the kernel binary
  itself.  See Documentation/process/stable-api-nonsense.rst.