src/dpdk/drivers/net/e1000/base/e1000_82575.c
void e1000_shutdown_serdes_link_82575(struct e1000_hw *hw)
{
	u32 reg;

	DEBUGFUNC("e1000_shutdown_serdes_link_82575");

	if ((hw->phy.media_type != e1000_media_type_internal_serdes) &&
	    !e1000_sgmii_active_82575(hw))
		return;

	if (!e1000_enable_mng_pass_thru(hw)) {
		/* Disable PCS to turn off link */
		reg = E1000_READ_REG(hw, E1000_PCS_CFG0);
		reg &= ~E1000_PCS_CFG_PCS_EN;
		E1000_WRITE_REG(hw, E1000_PCS_CFG0, reg);

		/* shutdown the laser */
		reg = E1000_READ_REG(hw, E1000_CTRL_EXT);
		reg |= E1000_CTRL_EXT_SDP3_DATA;
		E1000_WRITE_REG(hw, E1000_CTRL_EXT, reg);

		/* flush the write to verify completion */
		E1000_WRITE_FLUSH(hw);
		msec_delay(1);
	}

	return;
}
/**
 *  e1000_shutdown_serdes_link_82575 - Remove link during power down
 *  @hw: pointer to the HW structure
 *
 *  In the case of serdes shut down sfp and PCS on driver unload
 *  when management pass thru is not enabled.
 **/
Remove link during power down
@hw: pointer to the HW structure

In the case of serdes shut down sfp and PCS on driver unload
when management pass thru is not enabled.
Remove link during power down @hw : pointer to the HW structure In the case of serdes shut down sfp and PCS on driver unload when management pass thru is not enabled .
void e1000_shutdown_serdes_link_82575(struct e1000_hw *hw)
{
	u32 reg;
	DEBUGFUNC("e1000_shutdown_serdes_link_82575");
	if ((hw->phy.media_type != e1000_media_type_internal_serdes) &&
	    !e1000_sgmii_active_82575(hw))
		return;
	if (!e1000_enable_mng_pass_thru(hw)) {
		reg = E1000_READ_REG(hw, E1000_PCS_CFG0);
		reg &= ~E1000_PCS_CFG_PCS_EN;
		E1000_WRITE_REG(hw, E1000_PCS_CFG0, reg);
		reg = E1000_READ_REG(hw, E1000_CTRL_EXT);
		reg |= E1000_CTRL_EXT_SDP3_DATA;
		E1000_WRITE_REG(hw, E1000_CTRL_EXT, reg);
		E1000_WRITE_FLUSH(hw);
		msec_delay(1);
	}
	return;
}
void e1000_shutdown_serdes_link_82575 ( struct e1000_hw * hw ) { u32 reg ; DEBUGFUNC ( " " ) ; if ( ( hw -> phy . media_type != e1000_media_type_internal_serdes ) && ! e1000_sgmii_active_82575 ( hw ) ) return ; if ( ! e1000_enable_mng_pass_thru ( hw ) ) { reg = E1000_READ_REG ( hw , E1000_PCS_CFG0 ) ; reg &= ~ E1000_PCS_CFG_PCS_EN ; E1000_WRITE_REG ( hw , E1000_PCS_CFG0 , reg ) ; reg = E1000_READ_REG ( hw , E1000_CTRL_EXT ) ; reg |= E1000_CTRL_EXT_SDP3_DATA ; E1000_WRITE_REG ( hw , E1000_CTRL_EXT , reg ) ; E1000_WRITE_FLUSH ( hw ) ; msec_delay ( 1 ) ; } return ; }
e1000_shutdown_serdes_link_82575 - Remove link during power down
  @hw: pointer to the HW structure
e1000_shutdown_serdes_link_82575 - Remove link during power down @hw : pointer to the HW structure
/* Disable PCS to turn off link */ /* shutdown the laser */ /* flush the write to verify completion */