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


Reply via email to