twx-linux/drivers/platform
David E. Box 8a67d4b49b
platform/x86/intel/vsec: Add device links to enforce dependencies
New Intel VSEC features will have dependencies on other features, requiring
certain supplier drivers to be probed before their consumers. To enforce
this dependency ordering, introduce device links using device_link_add(),
ensuring that suppliers are fully registered before consumers are probed.

- Add device link tracking by storing supplier devices and tracking their
  state.
- Implement intel_vsec_link_devices() to establish links between suppliers
  and consumers based on feature dependencies.
- Add get_consumer_dependencies() to retrieve supplier-consumer
  relationships.
- Modify feature registration logic:
  * Consumers now check that all required suppliers are registered before
    being initialized.
  * suppliers_ready() verifies that all required supplier devices are
    available.
- Prevent potential null consumer name issue in sysfs:
  - Use dev_set_name() when creating auxiliary devices to ensure a
    unique, non-null consumer name.
- Update intel_vsec_pci_probe() to loop up to the number of possible
  features or when all devices are registered, whichever comes first.
- Introduce VSEC_CAP_UNUSED to prevent sub-features (registered via
  exported APIs) from being mistakenly linked.

Signed-off-by: David E. Box <david.e.box@linux.intel.com>
Link: https://lore.kernel.org/r/20250703022832.1302928-5-david.e.box@linux.intel.com
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
2025-07-03 11:09:25 +03:00
..
arm64 platform: arm64: lenovo-yoga-c630: use the auxiliary device creation helper 2025-06-13 12:33:30 +03:00
chrome platform/chrome: kunit: Avoid -Wflex-array-member-not-at-end 2025-05-07 03:04:29 +00:00
cznic Merge branch 'cznic/platform' of https://git.kernel.org/pub/scm/linux/kernel/git/soc/soc into soc/drivers 2025-05-12 13:34:21 +02:00
goldfish Get rid of 'remove_new' relic from platform driver struct 2024-12-01 15:12:43 -08:00
loongarch platform/loongarch: laptop: Unregister generic_sub_drivers on exit 2025-06-07 11:37:15 +08:00
mellanox platform/mellanox: mlxreg-lc: Fix logic error in power state check 2025-06-30 14:06:55 +03:00
mips platform: mips: cpu_hwmon: Disable driver on unsupported hardware 2024-06-21 10:22:10 +02:00
olpc platform-drivers-x86 for v6.12-1 2024-09-19 09:16:04 +02:00
surface platform: Do not enable by default during compile testing 2025-04-24 15:53:35 +03:00
x86 platform/x86/intel/vsec: Add device links to enforce dependencies 2025-07-03 11:09:25 +03:00
Kconfig platform: cznic: Add preliminary support for Turris Omnia MCU 2024-07-01 15:46:36 +02:00
Makefile platform-drivers-x86 for v6.11-1 2024-07-17 17:05:21 -07:00