oatc14_updat...i_capability(9)
๐ oatc14_update_sqi_capability โ the Kernel API Manual, bestie edition ๐
okay so real talk, we're in the Kernel API Manual today (section 9, iykyk) and the star of the show is oatc14_update_sqi_capability. yes the name is a mouthful, no we're not shortening it, she earned that name ๐
โจ NAME โจ
oatc14_update_sqi_capability โ reads the OATC14 10Base-T1S PHY SQI/SQI+ capability and updates it. literally her whole job ๐ฆ
๐ธ SYNOPSIS ๐ธ
int oatc14_update_sqi_capability (struct phy_device *phydev );
๐ ARGUMENTS ๐
phydevโ a pointer to the PHY device structure. yes queen, hand her thestruct phy_device *and she'll take it from there ๐ซถ
๐ DESCRIPTION ๐
so this little helper goes and reads the OATC14 ADFCAP capability register, right? because we need to know whether this PHY actually supports SQI or SQI+ reporting. vibe check on the hardware, basically โจ
SQI+ gets checked first โ she's the main character here ๐. The SQI+ field tells you the number of valid MSBs, and that's a range of 3โ8, which maps out to 8โ256 SQI+ levels. When SQI+ is present, the function stores the number of SQI+ bits and computes the max SQI+ value as (2^bits - 1). math slay ๐งฎ
If SQI+ is not supported, she moves on and checks for the basic SQI capability instead, which gives you 0โ7 SQI levels. still cute, still valid ๐
On success, all that capability info gets stored into phydev->oatc14_sqi_capability and gets marked as updated. periodt โ
๐ฅ RETURN ๐ฅ
0โ capability successfully read and stored, we love a win ๐-EOPNOTSUPPโ SQI/SQI+ is simply not supported by this PHY ๐ญ not her fault- Negative
errnoon read failure ๐ the read just didn't read
๐ SEE ALSO ๐
Kernel file ./drivers/net/phy/phy-c45.c, plus the whole friend group:
genphy_c45_baset1_able(9), genphy_c45_pma_can_sleep(9), genphy_c45_pma_resume(9), genphy_c45_pma_suspend(9), genphy_c45_pma_baset1_setup_master_slave(9), genphy_c45_pma_setup_forced(9), genphy_c45_an_config_aneg(9), genphy_c45_an_disable_aneg(9), genphy_c45_restart_aneg(9), genphy_c45_check_and_restart_aneg(9), genphy_c45_pma_soft_reset(9), genphy_c45_an_setup_master_slave(9), genphy_c45_read_master_slave(9), genphy_c45_aneg_done(9), genphy_c45_read_link(9), genphy_c45_read_lpa(9), genphy_c45_pma_baset1_read_master_slave(9), genphy_c45_read_pma(9), genphy_c45_read_mdix(9), genphy_c45_write_eee_adv(9), genphy_c45_read_eee_adv(9), genphy_c45_read_eee_lpa(9), genphy_c45_read_eee_cap1(9), genphy_c45_read_eee_cap2(9), genphy_c45_read_eee_abilities(9), genphy_c45_an_config_eee_aneg(9), genphy_c45_pma_baset1_read_abilities(9), genphy_c45_pma_read_ext_abilities(9), genphy_c45_pma_read_abilities(9), genphy_c45_read_status(9), genphy_c45_config_aneg(9), genphy_c45_fast_retrain(9), genphy_c45_plca_get_cfg(9), genphy_c45_plca_set_cfg(9), genphy_c45_plca_get_status(9), genphy_c45_eee_is_active(9), genphy_c45_ethtool_get_eee(9), genphy_c45_ethtool_set_eee(9), oatc14_cable_test_get_result_code(9), genphy_c45_oatc14_cable_test_get_status(9), genphy_c45_oatc14_cable_test_start(9), genphy_c45_oatc14_get_sqi_max(9), genphy_c45_oatc14_get_sqi(9)
okay that's the whole page, go be iconic with your SQI capabilities ๐ง๐ซ
source lives in ./drivers/net/phy, dated October 2026 โ mwah, bye bestie ๐๐
๐ฆ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms