Commit 8385b1f0 authored by Maxim Kochetkov's avatar Maxim Kochetkov Committed by David S. Miller

net: phy: marvell: enable downshift by default

A number of PHYs support the PHY tunable to set and get
downshift. However, only 88E1116R enables downshift by default. Extend
this default enabled to all the PHYs that support the downshift
tunable.
Signed-off-by: default avatarMaxim Kochetkov <fido_max@inbox.ru>
Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent c5fab809
...@@ -1088,6 +1088,38 @@ static int m88e1011_set_tunable(struct phy_device *phydev, ...@@ -1088,6 +1088,38 @@ static int m88e1011_set_tunable(struct phy_device *phydev,
} }
} }
static int m88e1112_config_init(struct phy_device *phydev)
{
int err;
err = m88e1011_set_downshift(phydev, 3);
if (err < 0)
return err;
return m88e1111_config_init(phydev);
}
static int m88e1111gbe_config_init(struct phy_device *phydev)
{
int err;
err = m88e1111_set_downshift(phydev, 3);
if (err < 0)
return err;
return m88e1111_config_init(phydev);
}
static int marvell_1011gbe_config_init(struct phy_device *phydev)
{
int err;
err = m88e1011_set_downshift(phydev, 3);
if (err < 0)
return err;
return marvell_config_init(phydev);
}
static int m88e1116r_config_init(struct phy_device *phydev) static int m88e1116r_config_init(struct phy_device *phydev)
{ {
int err; int err;
...@@ -1168,6 +1200,9 @@ static int m88e1510_config_init(struct phy_device *phydev) ...@@ -1168,6 +1200,9 @@ static int m88e1510_config_init(struct phy_device *phydev)
if (err < 0) if (err < 0)
return err; return err;
} }
err = m88e1011_set_downshift(phydev, 3);
if (err < 0)
return err;
return m88e1318_config_init(phydev); return m88e1318_config_init(phydev);
} }
...@@ -1320,6 +1355,9 @@ static int m88e1145_config_init(struct phy_device *phydev) ...@@ -1320,6 +1355,9 @@ static int m88e1145_config_init(struct phy_device *phydev)
if (err < 0) if (err < 0)
return err; return err;
} }
err = m88e1111_set_downshift(phydev, 3);
if (err < 0)
return err;
err = marvell_of_reg_init(phydev); err = marvell_of_reg_init(phydev);
if (err < 0) if (err < 0)
...@@ -2698,7 +2736,7 @@ static struct phy_driver marvell_drivers[] = { ...@@ -2698,7 +2736,7 @@ static struct phy_driver marvell_drivers[] = {
.name = "Marvell 88E1112", .name = "Marvell 88E1112",
/* PHY_GBIT_FEATURES */ /* PHY_GBIT_FEATURES */
.probe = marvell_probe, .probe = marvell_probe,
.config_init = m88e1111_config_init, .config_init = m88e1112_config_init,
.config_aneg = marvell_config_aneg, .config_aneg = marvell_config_aneg,
.config_intr = marvell_config_intr, .config_intr = marvell_config_intr,
.handle_interrupt = marvell_handle_interrupt, .handle_interrupt = marvell_handle_interrupt,
...@@ -2718,7 +2756,7 @@ static struct phy_driver marvell_drivers[] = { ...@@ -2718,7 +2756,7 @@ static struct phy_driver marvell_drivers[] = {
.name = "Marvell 88E1111", .name = "Marvell 88E1111",
/* PHY_GBIT_FEATURES */ /* PHY_GBIT_FEATURES */
.probe = marvell_probe, .probe = marvell_probe,
.config_init = m88e1111_config_init, .config_init = m88e1111gbe_config_init,
.config_aneg = m88e1111_config_aneg, .config_aneg = m88e1111_config_aneg,
.read_status = marvell_read_status, .read_status = marvell_read_status,
.config_intr = marvell_config_intr, .config_intr = marvell_config_intr,
...@@ -2739,7 +2777,7 @@ static struct phy_driver marvell_drivers[] = { ...@@ -2739,7 +2777,7 @@ static struct phy_driver marvell_drivers[] = {
.name = "Marvell 88E1111 (Finisar)", .name = "Marvell 88E1111 (Finisar)",
/* PHY_GBIT_FEATURES */ /* PHY_GBIT_FEATURES */
.probe = marvell_probe, .probe = marvell_probe,
.config_init = m88e1111_config_init, .config_init = m88e1111gbe_config_init,
.config_aneg = m88e1111_config_aneg, .config_aneg = m88e1111_config_aneg,
.read_status = marvell_read_status, .read_status = marvell_read_status,
.config_intr = marvell_config_intr, .config_intr = marvell_config_intr,
...@@ -2779,7 +2817,7 @@ static struct phy_driver marvell_drivers[] = { ...@@ -2779,7 +2817,7 @@ static struct phy_driver marvell_drivers[] = {
.driver_data = DEF_MARVELL_HWMON_OPS(m88e1121_hwmon_ops), .driver_data = DEF_MARVELL_HWMON_OPS(m88e1121_hwmon_ops),
/* PHY_GBIT_FEATURES */ /* PHY_GBIT_FEATURES */
.probe = marvell_probe, .probe = marvell_probe,
.config_init = marvell_config_init, .config_init = marvell_1011gbe_config_init,
.config_aneg = m88e1121_config_aneg, .config_aneg = m88e1121_config_aneg,
.read_status = marvell_read_status, .read_status = marvell_read_status,
.config_intr = marvell_config_intr, .config_intr = marvell_config_intr,
...@@ -2859,7 +2897,7 @@ static struct phy_driver marvell_drivers[] = { ...@@ -2859,7 +2897,7 @@ static struct phy_driver marvell_drivers[] = {
.name = "Marvell 88E1240", .name = "Marvell 88E1240",
/* PHY_GBIT_FEATURES */ /* PHY_GBIT_FEATURES */
.probe = marvell_probe, .probe = marvell_probe,
.config_init = m88e1111_config_init, .config_init = m88e1112_config_init,
.config_aneg = marvell_config_aneg, .config_aneg = marvell_config_aneg,
.config_intr = marvell_config_intr, .config_intr = marvell_config_intr,
.handle_interrupt = marvell_handle_interrupt, .handle_interrupt = marvell_handle_interrupt,
...@@ -2929,7 +2967,7 @@ static struct phy_driver marvell_drivers[] = { ...@@ -2929,7 +2967,7 @@ static struct phy_driver marvell_drivers[] = {
/* PHY_GBIT_FEATURES */ /* PHY_GBIT_FEATURES */
.flags = PHY_POLL_CABLE_TEST, .flags = PHY_POLL_CABLE_TEST,
.probe = marvell_probe, .probe = marvell_probe,
.config_init = marvell_config_init, .config_init = marvell_1011gbe_config_init,
.config_aneg = m88e1510_config_aneg, .config_aneg = m88e1510_config_aneg,
.read_status = marvell_read_status, .read_status = marvell_read_status,
.config_intr = marvell_config_intr, .config_intr = marvell_config_intr,
...@@ -2955,7 +2993,7 @@ static struct phy_driver marvell_drivers[] = { ...@@ -2955,7 +2993,7 @@ static struct phy_driver marvell_drivers[] = {
.probe = marvell_probe, .probe = marvell_probe,
/* PHY_GBIT_FEATURES */ /* PHY_GBIT_FEATURES */
.flags = PHY_POLL_CABLE_TEST, .flags = PHY_POLL_CABLE_TEST,
.config_init = marvell_config_init, .config_init = marvell_1011gbe_config_init,
.config_aneg = m88e1510_config_aneg, .config_aneg = m88e1510_config_aneg,
.read_status = marvell_read_status, .read_status = marvell_read_status,
.config_intr = marvell_config_intr, .config_intr = marvell_config_intr,
...@@ -3000,7 +3038,7 @@ static struct phy_driver marvell_drivers[] = { ...@@ -3000,7 +3038,7 @@ static struct phy_driver marvell_drivers[] = {
/* PHY_GBIT_FEATURES */ /* PHY_GBIT_FEATURES */
.flags = PHY_POLL_CABLE_TEST, .flags = PHY_POLL_CABLE_TEST,
.probe = marvell_probe, .probe = marvell_probe,
.config_init = marvell_config_init, .config_init = marvell_1011gbe_config_init,
.config_aneg = m88e6390_config_aneg, .config_aneg = m88e6390_config_aneg,
.read_status = marvell_read_status, .read_status = marvell_read_status,
.config_intr = marvell_config_intr, .config_intr = marvell_config_intr,
...@@ -3026,7 +3064,7 @@ static struct phy_driver marvell_drivers[] = { ...@@ -3026,7 +3064,7 @@ static struct phy_driver marvell_drivers[] = {
/* PHY_GBIT_FEATURES */ /* PHY_GBIT_FEATURES */
.flags = PHY_POLL_CABLE_TEST, .flags = PHY_POLL_CABLE_TEST,
.probe = marvell_probe, .probe = marvell_probe,
.config_init = marvell_config_init, .config_init = marvell_1011gbe_config_init,
.config_aneg = m88e6390_config_aneg, .config_aneg = m88e6390_config_aneg,
.read_status = marvell_read_status, .read_status = marvell_read_status,
.config_intr = marvell_config_intr, .config_intr = marvell_config_intr,
...@@ -3052,7 +3090,7 @@ static struct phy_driver marvell_drivers[] = { ...@@ -3052,7 +3090,7 @@ static struct phy_driver marvell_drivers[] = {
/* PHY_GBIT_FEATURES */ /* PHY_GBIT_FEATURES */
.flags = PHY_POLL_CABLE_TEST, .flags = PHY_POLL_CABLE_TEST,
.probe = marvell_probe, .probe = marvell_probe,
.config_init = marvell_config_init, .config_init = marvell_1011gbe_config_init,
.config_aneg = m88e1510_config_aneg, .config_aneg = m88e1510_config_aneg,
.read_status = marvell_read_status, .read_status = marvell_read_status,
.config_intr = marvell_config_intr, .config_intr = marvell_config_intr,
...@@ -3077,7 +3115,7 @@ static struct phy_driver marvell_drivers[] = { ...@@ -3077,7 +3115,7 @@ static struct phy_driver marvell_drivers[] = {
.driver_data = DEF_MARVELL_HWMON_OPS(m88e1510_hwmon_ops), .driver_data = DEF_MARVELL_HWMON_OPS(m88e1510_hwmon_ops),
.probe = marvell_probe, .probe = marvell_probe,
/* PHY_GBIT_FEATURES */ /* PHY_GBIT_FEATURES */
.config_init = marvell_config_init, .config_init = marvell_1011gbe_config_init,
.config_aneg = m88e1510_config_aneg, .config_aneg = m88e1510_config_aneg,
.read_status = marvell_read_status, .read_status = marvell_read_status,
.config_intr = marvell_config_intr, .config_intr = marvell_config_intr,
...@@ -3099,7 +3137,7 @@ static struct phy_driver marvell_drivers[] = { ...@@ -3099,7 +3137,7 @@ static struct phy_driver marvell_drivers[] = {
.driver_data = DEF_MARVELL_HWMON_OPS(m88e1510_hwmon_ops), .driver_data = DEF_MARVELL_HWMON_OPS(m88e1510_hwmon_ops),
.probe = marvell_probe, .probe = marvell_probe,
.features = PHY_GBIT_FIBRE_FEATURES, .features = PHY_GBIT_FIBRE_FEATURES,
.config_init = marvell_config_init, .config_init = marvell_1011gbe_config_init,
.config_aneg = m88e1510_config_aneg, .config_aneg = m88e1510_config_aneg,
.read_status = marvell_read_status, .read_status = marvell_read_status,
.config_intr = marvell_config_intr, .config_intr = marvell_config_intr,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment