I have a question about some changes to the e1000 driver that where
committed in 2020 (commit 44dddd14059f151f39f7e075b887decfc9a10f11).
I see that e1000_power_down_phy_copper_82575 has been replaced by
e1000_power_down_phy_copper_base, but the two functions are not the same.
more specifically in the old function we had this code:
-STATIC void e1000_power_down_phy_copper_82575(struct e1000_hw *hw)
-{
- struct e1000_phy_info *phy = &hw->phy;
-
- if (!(phy->ops.check_reset_block))
- return;
-
- /* If the management interface is not enabled, then power down */
- if (!(e1000_enable_mng_pass_thru(hw) ||
phy->ops.check_reset_block(hw)))
- e1000_power_down_phy_copper(hw);
-
- return;
-}
And the new looks like this:
+void e1000_power_down_phy_copper_base(struct e1000_hw *hw)
+{
+ struct e1000_phy_info *phy = &hw->phy;
+
+ if (!(phy->ops.check_reset_block))
+ return;
+
+ /* If the management interface is not enabled, then power down */
+ if (phy->ops.check_reset_block(hw))
+ e1000_power_down_phy_copper(hw);
+}
The 'if' condition is different, and almost opposite.
Is this intentional?
In my usecase I do not manage to put the link down with the most recent
DPDK (21.11), but it worked fine with 19.11. Should a configure
something differently?
Best regards,
Francesco Mancino