mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-16 23:45:31 +08:00
e1000e: do not resume device from RPM suspend to read PHY status registers
When the device is runtime suspended (e.g. when there is no link), do not wake it from D3 to read the PHY status; just set the values to typical power-on defaults as is done when runtime PM is not enabled and there is no link. Signed-off-by: Bruce Allan <bruce.w.allan@intel.com> Tested-by: Aaron Brown <aaron.f.brown@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:
parent
91a3d82f38
commit
97390ab86b
@ -4684,11 +4684,11 @@ static void e1000_phy_read_status(struct e1000_adapter *adapter)
|
||||
struct e1000_hw *hw = &adapter->hw;
|
||||
struct e1000_phy_regs *phy = &adapter->phy_regs;
|
||||
|
||||
if ((er32(STATUS) & E1000_STATUS_LU) &&
|
||||
if (!pm_runtime_suspended((&adapter->pdev->dev)->parent) &&
|
||||
(er32(STATUS) & E1000_STATUS_LU) &&
|
||||
(adapter->hw.phy.media_type == e1000_media_type_copper)) {
|
||||
int ret_val;
|
||||
|
||||
pm_runtime_get_sync(&adapter->pdev->dev);
|
||||
ret_val = e1e_rphy(hw, MII_BMCR, &phy->bmcr);
|
||||
ret_val |= e1e_rphy(hw, MII_BMSR, &phy->bmsr);
|
||||
ret_val |= e1e_rphy(hw, MII_ADVERTISE, &phy->advertise);
|
||||
@ -4699,7 +4699,6 @@ static void e1000_phy_read_status(struct e1000_adapter *adapter)
|
||||
ret_val |= e1e_rphy(hw, MII_ESTATUS, &phy->estatus);
|
||||
if (ret_val)
|
||||
e_warn("Error reading PHY register\n");
|
||||
pm_runtime_put_sync(&adapter->pdev->dev);
|
||||
} else {
|
||||
/* Do not read PHY registers if link is not up
|
||||
* Set values to typical power-on defaults
|
||||
|
Loading…
Reference in New Issue
Block a user