162306a36Sopenharmony_ciLinux Devlink Documentation 262306a36Sopenharmony_ci=========================== 362306a36Sopenharmony_ci 462306a36Sopenharmony_cidevlink is an API to expose device information and resources not directly 562306a36Sopenharmony_cirelated to any device class, such as chip-wide/switch-ASIC-wide configuration. 662306a36Sopenharmony_ci 762306a36Sopenharmony_ciLocking 862306a36Sopenharmony_ci------- 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ciDriver facing APIs are currently transitioning to allow more explicit 1162306a36Sopenharmony_cilocking. Drivers can use the existing ``devlink_*`` set of APIs, or 1262306a36Sopenharmony_cinew APIs prefixed by ``devl_*``. The older APIs handle all the locking 1362306a36Sopenharmony_ciin devlink core, but don't allow registration of most sub-objects once 1462306a36Sopenharmony_cithe main devlink object is itself registered. The newer ``devl_*`` APIs assume 1562306a36Sopenharmony_cithe devlink instance lock is already held. Drivers can take the instance 1662306a36Sopenharmony_cilock by calling ``devl_lock()``. It is also held all callbacks of devlink 1762306a36Sopenharmony_cinetlink commands. 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ciDrivers are encouraged to use the devlink instance lock for their own needs. 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_ciInterface documentation 2262306a36Sopenharmony_ci----------------------- 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ciThe following pages describe various interfaces available through devlink in 2562306a36Sopenharmony_cigeneral. 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_ci.. toctree:: 2862306a36Sopenharmony_ci :maxdepth: 1 2962306a36Sopenharmony_ci 3062306a36Sopenharmony_ci devlink-dpipe 3162306a36Sopenharmony_ci devlink-health 3262306a36Sopenharmony_ci devlink-info 3362306a36Sopenharmony_ci devlink-flash 3462306a36Sopenharmony_ci devlink-params 3562306a36Sopenharmony_ci devlink-port 3662306a36Sopenharmony_ci devlink-region 3762306a36Sopenharmony_ci devlink-resource 3862306a36Sopenharmony_ci devlink-reload 3962306a36Sopenharmony_ci devlink-selftests 4062306a36Sopenharmony_ci devlink-trap 4162306a36Sopenharmony_ci devlink-linecard 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ciDriver-specific documentation 4462306a36Sopenharmony_ci----------------------------- 4562306a36Sopenharmony_ci 4662306a36Sopenharmony_ciEach driver that implements ``devlink`` is expected to document what 4762306a36Sopenharmony_ciparameters, info versions, and other features it supports. 4862306a36Sopenharmony_ci 4962306a36Sopenharmony_ci.. toctree:: 5062306a36Sopenharmony_ci :maxdepth: 1 5162306a36Sopenharmony_ci 5262306a36Sopenharmony_ci bnxt 5362306a36Sopenharmony_ci etas_es58x 5462306a36Sopenharmony_ci hns3 5562306a36Sopenharmony_ci ionic 5662306a36Sopenharmony_ci ice 5762306a36Sopenharmony_ci mlx4 5862306a36Sopenharmony_ci mlx5 5962306a36Sopenharmony_ci mlxsw 6062306a36Sopenharmony_ci mv88e6xxx 6162306a36Sopenharmony_ci netdevsim 6262306a36Sopenharmony_ci nfp 6362306a36Sopenharmony_ci qed 6462306a36Sopenharmony_ci ti-cpsw-switch 6562306a36Sopenharmony_ci am65-nuss-cpsw-switch 6662306a36Sopenharmony_ci prestera 6762306a36Sopenharmony_ci iosm 6862306a36Sopenharmony_ci octeontx2 6962306a36Sopenharmony_ci sfc 70