net/ice/base: add helper function to redirect flags
[dpdk.git] / drivers / net / txgbe / base / txgbe_hw.c
index 521cb46..00a8db7 100644 (file)
@@ -1,5 +1,6 @@
 /* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2015-2020
+ * Copyright(c) 2015-2020 Beijing WangXun Technology Co., Ltd.
+ * Copyright(c) 2010-2017 Intel Corporation
  */
 
 #include "txgbe_type.h"
@@ -2574,6 +2575,11 @@ s32 txgbe_init_phy_raptor(struct txgbe_hw *hw)
                                  txgbe_get_copper_link_capabilities;
        }
 
+       if (phy->media_type == txgbe_media_type_backplane) {
+               mac->kr_handle = txgbe_kr_handle;
+               mac->bp_down_event = txgbe_bp_down_event;
+       }
+
        /* Set necessary function pointers based on PHY type */
        switch (hw->phy.type) {
        case txgbe_phy_tn:
@@ -2946,6 +2952,9 @@ u32 txgbe_get_media_type_raptor(struct txgbe_hw *hw)
 
        DEBUGFUNC("txgbe_get_media_type_raptor");
 
+       if (hw->phy.ffe_set)
+               txgbe_bp_mode_set(hw);
+
        /* Detect if there is a copper PHY attached. */
        switch (hw->phy.type) {
        case txgbe_phy_cu_unknown:
@@ -3539,6 +3548,14 @@ mac_reset_top:
                hw->mac.orig_autoc = autoc;
        }
 
+       if (hw->phy.ffe_set) {
+               /* Make sure phy power is up */
+               msec_delay(50);
+
+               /* A temporary solution to set phy */
+               txgbe_set_phy_temp(hw);
+       }
+
        /* Store the permanent mac address */
        hw->mac.get_mac_addr(hw, hw->mac.perm_addr);