summaryrefslogtreecommitdiff
path: root/drivers/net/phy
diff options
context:
space:
mode:
authorSean Anderson <sean.anderson@seco.com>2021-11-12 14:04:00 -0500
committerRussell King (Oracle) <rmk+kernel@armlinux.org.uk>2022-01-12 11:04:58 +0000
commit7d67c835bf5809317aa26fa47929553df23752eb (patch)
treee0be376db0439c08893ee119582ddd78fc8f5d31 /drivers/net/phy
parentb0ef6a1bd8d5d9e6466f6618881bf0b4cc9ce1f8 (diff)
net: macb: Fix several edge cases in validate
There were several cases where validate() would return bogus supported modes with unusual combinations of interfaces and capabilities. For example, if state->interface was 10GBASER and the macb had HIGH_SPEED and PCS but not GIGABIT MODE, then 10/100 modes would be set anyway. In another case, SGMII could be enabled even if the mac was not a GEM (despite this being checked for later on in mac_config()). These inconsistencies make it difficult to refactor this function cleanly. There is still the open question of what exactly the requirements for SGMII and 10GBASER are, and what SGMII actually supports. If someone from Cadence (or anyone else with access to the GEM/MACB datasheet) could comment on this, it would be greatly appreciated. In particular, what is supported by Cadence vs. vendor extension/limitation? To address this, the current logic is split into three parts. First, we determine what we support, then we eliminate unsupported interfaces, and finally we set the appropriate link modes. There is still some cruft related to NA, but this can be removed in a future patch. Signed-off-by: Sean Anderson <sean.anderson@seco.com> Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Diffstat (limited to 'drivers/net/phy')
0 files changed, 0 insertions, 0 deletions