|
57 | 57 | #define STMMAC_ALIGN(x) ALIGN(ALIGN(x, SMP_CACHE_BYTES), 16)
|
58 | 58 | #define TSO_MAX_BUFF_SIZE (SZ_16K - 1)
|
59 | 59 |
|
60 |
| -#define RTL8211F_PHY_ID 0x001cc916 |
61 |
| -#define RTL8211F_PHY_ID_MASK 0x001fffff |
| 60 | +#define RTL8211F_PHY_UID 0x001cc800 |
| 61 | +#define RTL8211F_PHY_UID_MASK 0x001ffc00 |
62 | 62 | #define RTL8211F_PAGE_SELECT 0x1f
|
63 | 63 | #define RTL8211F_LCR_ADDR 0x10
|
64 | 64 | #define RTL8211F_EEELCR_ADDR 0x11
|
@@ -5014,6 +5014,22 @@ static int phy_rtl8211f_led_fixup(struct phy_device *phydev)
|
5014 | 5014 | return 0;
|
5015 | 5015 | }
|
5016 | 5016 |
|
| 5017 | +static int phy_rtl8211f_eee_fixup(struct phy_device *phydev) |
| 5018 | +{ |
| 5019 | + phy_write(phydev, 31, 0x0000); |
| 5020 | + phy_write(phydev, 0, 0x8000); |
| 5021 | + mdelay(20); |
| 5022 | + phy_write(phydev, 31, 0x0a4b); |
| 5023 | + phy_write(phydev, 17, 0x1110); |
| 5024 | + phy_write(phydev, 31, 0x0000); |
| 5025 | + phy_write(phydev, 13, 0x0007); |
| 5026 | + phy_write(phydev, 14, 0x003c); |
| 5027 | + phy_write(phydev, 13, 0x4007); |
| 5028 | + phy_write(phydev, 14, 0x0000); |
| 5029 | + |
| 5030 | + return 0; |
| 5031 | +} |
| 5032 | + |
5017 | 5033 | /**
|
5018 | 5034 | * stmmac_dvr_probe
|
5019 | 5035 | * @device: device pointer
|
@@ -5251,11 +5267,18 @@ int stmmac_dvr_probe(struct device *device,
|
5251 | 5267 | stmmac_init_fs(ndev);
|
5252 | 5268 | #endif
|
5253 | 5269 |
|
5254 |
| - ret = phy_register_fixup_for_uid(RTL8211F_PHY_ID, RTL8211F_PHY_ID_MASK, phy_rtl8211f_led_fixup); |
| 5270 | + /* Register fixup for PHY RTL8211F */ |
| 5271 | + ret = phy_register_fixup_for_uid(RTL8211F_PHY_UID, RTL8211F_PHY_UID_MASK, phy_rtl8211f_led_fixup); |
5255 | 5272 | if (ret) {
|
5256 | 5273 | dev_warn(priv->device, "Failed to register fixup for PHY RTL8211F.\n");
|
5257 | 5274 | }
|
5258 | 5275 |
|
| 5276 | + /* Register fixup for PHY RTL8211F disabling EEE */ |
| 5277 | + ret = phy_register_fixup_for_uid(RTL8211F_PHY_UID, RTL8211F_PHY_UID_MASK, phy_rtl8211f_eee_fixup); |
| 5278 | + if (ret) { |
| 5279 | + dev_warn(priv->device, "Failed to register fixup for PHY RTL8211F disabling EEE.\n"); |
| 5280 | + } |
| 5281 | + |
5259 | 5282 | /* Let pm_runtime_put() disable the clocks.
|
5260 | 5283 | * If CONFIG_PM is not enabled, the clocks will stay powered.
|
5261 | 5284 | */
|
|
0 commit comments