mirror of
https://github.com/torvalds/linux.git
synced 2026-07-29 18:51:21 +02:00
net: phy: aquantia: call aqr_gen3_config_init() for AQR112 and AQR412(C)
The AQrate Gen3 PHYs are AQR111(C), AQR112(C), and their multi-port variants, like AQR411(C), AQR412(C). Currently, AQR112, AQR412 and AQR412C are Gen3 PHYs supported by the driver which have no config_init() implementation. I have hardware and documentation that confirms they are compatible with the operations done in aqr_gen2_config_init(), a Gen2-level function. This is needed as a preparation for reading cached registers in aqr_gen2_read_status(), which is a function that these PHYs already call. The initial reading is done from: aqr_gen2_config_init() -> aqr_gen2_fill_interface_modes() -> aqr_gen2_read_global_syscfg() thus the need for them to also call aqr_gen2_config_init(), in order for the cached register values to be available. In expectation of Gen3-specific features, introduce aqr_gen3_config_init() which calls aqr_gen2_config_init(). Also modify the AQR111 silicon variants to call their generation-appropriate init function. No functional change for these, hence the minor mention. Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com> Link: https://patch.msgid.link/20250821152022.1065237-12-vladimir.oltean@nxp.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
02a7f5a925
commit
2d95032175
|
|
@ -886,6 +886,11 @@ static int aqr_gen2_config_init(struct phy_device *phydev)
|
|||
return aqr_gen2_fill_interface_modes(phydev);
|
||||
}
|
||||
|
||||
static int aqr_gen3_config_init(struct phy_device *phydev)
|
||||
{
|
||||
return aqr_gen2_config_init(phydev);
|
||||
}
|
||||
|
||||
static int aqcs109_config_init(struct phy_device *phydev)
|
||||
{
|
||||
int ret;
|
||||
|
|
@ -1161,7 +1166,7 @@ static struct phy_driver aqr_driver[] = {
|
|||
.name = "Aquantia AQR111",
|
||||
.probe = aqr107_probe,
|
||||
.get_rate_matching = aqr_gen2_get_rate_matching,
|
||||
.config_init = aqr_gen2_config_init,
|
||||
.config_init = aqr_gen3_config_init,
|
||||
.config_aneg = aqr_config_aneg,
|
||||
.config_intr = aqr_config_intr,
|
||||
.handle_interrupt = aqr_handle_interrupt,
|
||||
|
|
@ -1186,7 +1191,7 @@ static struct phy_driver aqr_driver[] = {
|
|||
.name = "Aquantia AQR111B0",
|
||||
.probe = aqr107_probe,
|
||||
.get_rate_matching = aqr_gen2_get_rate_matching,
|
||||
.config_init = aqr_gen2_config_init,
|
||||
.config_init = aqr_gen3_config_init,
|
||||
.config_aneg = aqr_config_aneg,
|
||||
.config_intr = aqr_config_intr,
|
||||
.handle_interrupt = aqr_handle_interrupt,
|
||||
|
|
@ -1218,6 +1223,7 @@ static struct phy_driver aqr_driver[] = {
|
|||
PHY_ID_MATCH_MODEL(PHY_ID_AQR112),
|
||||
.name = "Aquantia AQR112",
|
||||
.probe = aqr107_probe,
|
||||
.config_init = aqr_gen3_config_init,
|
||||
.config_aneg = aqr_config_aneg,
|
||||
.config_intr = aqr_config_intr,
|
||||
.handle_interrupt = aqr_handle_interrupt,
|
||||
|
|
@ -1241,6 +1247,7 @@ static struct phy_driver aqr_driver[] = {
|
|||
PHY_ID_MATCH_MODEL(PHY_ID_AQR412),
|
||||
.name = "Aquantia AQR412",
|
||||
.probe = aqr107_probe,
|
||||
.config_init = aqr_gen3_config_init,
|
||||
.config_aneg = aqr_config_aneg,
|
||||
.config_intr = aqr_config_intr,
|
||||
.handle_interrupt = aqr_handle_interrupt,
|
||||
|
|
@ -1259,6 +1266,7 @@ static struct phy_driver aqr_driver[] = {
|
|||
PHY_ID_MATCH_MODEL(PHY_ID_AQR412C),
|
||||
.name = "Aquantia AQR412C",
|
||||
.probe = aqr107_probe,
|
||||
.config_init = aqr_gen3_config_init,
|
||||
.config_aneg = aqr_config_aneg,
|
||||
.config_intr = aqr_config_intr,
|
||||
.handle_interrupt = aqr_handle_interrupt,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user