[Intel-wired-lan] [PATCH 3/3] e1000e: add some status debug output

Neftin, Sasha sasha.neftin at intel.com
Sun Jan 6 15:54:36 UTC 2019


On 1/4/2019 15:31, Jan-Marek Glogowski wrote:
> Add dynamic debug info for flow control advertising and dump
> the status when extracting speed and duplex from it.
> 
> Signed-off-by: Jan-Marek Glogowski <glogow at fbihome.de>
> ---
>   drivers/net/ethernet/intel/e1000e/mac.c | 10 +++++++---
>   drivers/net/ethernet/intel/e1000e/phy.c |  6 +++++-
>   2 files changed, 12 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/net/ethernet/intel/e1000e/mac.c b/drivers/net/ethernet/intel/e1000e/mac.c
> index ada8fbb..daa7be8 100644
> --- a/drivers/net/ethernet/intel/e1000e/mac.c
> +++ b/drivers/net/ethernet/intel/e1000e/mac.c
> @@ -1310,10 +1310,14 @@ s32 e1000e_get_speed_and_duplex_copper(struct e1000_hw *hw, u16 *speed,
>   
>   	status = er32(STATUS);
>   
> -	if (status & E1000_STATUS_AUTONEG)
> +	if (status & E1000_STATUS_AUTONEG) {
> +		e_dbg("status 0x%x => in auto-neg, no valid config\n", status);
>   		return 1;
This is not relevant debug info.
> -	if (!(status & E1000_STATUS_LU))
> +	}
> +	if (!(status & E1000_STATUS_LU)) {
> +		e_dbg("status 0x%x => no link, no valid config\n", status);
>   		return 1;
> +	}
>   
No objection.
>   	if (status & E1000_STATUS_SPEED_1000)
>   		*speed = SPEED_1000;
> @@ -1327,7 +1331,7 @@ s32 e1000e_get_speed_and_duplex_copper(struct e1000_hw *hw, u16 *speed,
>   	else
>   		*duplex = HALF_DUPLEX;
>   
> -	e_dbg("%u Mbps, %s Duplex\n",
> +	e_dbg("status 0x%x => %u Mbps, %s Duplex\n", status,
>   	      *speed == SPEED_1000 ? 1000 : *speed == SPEED_100 ? 100 : 10,
>   	      *duplex == FULL_DUPLEX ? "Full" : "Half");
>   
No objection.
> diff --git a/drivers/net/ethernet/intel/e1000e/phy.c b/drivers/net/ethernet/intel/e1000e/phy.c
> index 4223301..91da35c 100644
> --- a/drivers/net/ethernet/intel/e1000e/phy.c
> +++ b/drivers/net/ethernet/intel/e1000e/phy.c
> @@ -1011,6 +1011,7 @@ static s32 e1000_phy_setup_autoneg(struct e1000_hw *hw)
>   		 */
>   		mii_autoneg_adv_reg &=
>   		    ~(ADVERTISE_PAUSE_ASYM | ADVERTISE_PAUSE_CAP);
> +		e_dbg("Advertise no flow control\n");
No objection.
>   		break;
>   	case e1000_fc_rx_pause:
>   		/* Rx Flow control is enabled, and Tx Flow control is
> @@ -1024,6 +1025,7 @@ static s32 e1000_phy_setup_autoneg(struct e1000_hw *hw)
>   		 */
>   		mii_autoneg_adv_reg |=
>   		    (ADVERTISE_PAUSE_ASYM | ADVERTISE_PAUSE_CAP);
> +		e_dbg("Advertise no flow control\n");
No objection.
>   		break;
>   	case e1000_fc_tx_pause:
>   		/* Tx Flow control is enabled, and Rx Flow control is
> @@ -1031,6 +1033,7 @@ static s32 e1000_phy_setup_autoneg(struct e1000_hw *hw)
>   		 */
>   		mii_autoneg_adv_reg |= ADVERTISE_PAUSE_ASYM;
>   		mii_autoneg_adv_reg &= ~ADVERTISE_PAUSE_CAP;
> +		e_dbg("Advertise Tx flow control\n");
No objection.
>   		break;
>   	case e1000_fc_full:
>   		/* Flow control (both Rx and Tx) is enabled by a software
> @@ -1038,6 +1041,7 @@ static s32 e1000_phy_setup_autoneg(struct e1000_hw *hw)
>   		 */
>   		mii_autoneg_adv_reg |=
>   		    (ADVERTISE_PAUSE_ASYM | ADVERTISE_PAUSE_CAP);
> +		e_dbg("Advertise Tx and Rx flow control\n");
No objection.
>   		break;
>   	default:
>   		e_dbg("Flow control param set incorrectly\n");
> @@ -1048,7 +1052,7 @@ static s32 e1000_phy_setup_autoneg(struct e1000_hw *hw)
>   	if (ret_val)
>   		return ret_val;
>   
> -	e_dbg("Auto-Neg Advertising %x\n", mii_autoneg_adv_reg);
> +	e_dbg("Auto-Neg Advertising 0x%x\n", mii_autoneg_adv_reg);
>   
No objection.
>   	if (phy->autoneg_mask & ADVERTISE_1000_FULL)
>   		ret_val = e1e_wphy(hw, MII_CTRL1000, mii_1000t_ctrl_reg);
> 
Thanks,
Sasha


More information about the Intel-wired-lan mailing list