lkml.org 
[lkml]   [2019]   [Nov]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.14 098/105] igb: Fix constant media auto sense switching when no cable is connected
    Date
    From: Manfred Rudigier <manfred.rudigier@omicronenergy.com>

    [ Upstream commit 8d5cfd7f76a2414e23c74bb8858af7540365d985 ]

    At least on the i350 there is an annoying behavior that is maybe also
    present on 82580 devices, but was probably not noticed yet as MAS is not
    widely used.

    If no cable is connected on both fiber/copper ports the media auto sense
    code will constantly swap between them as part of the watchdog task and
    produce many unnecessary kernel log messages.

    The swap code responsible for this behavior (switching to fiber) should
    not be executed if the current media type is copper and there is no signal
    detected on the fiber port. In this case we can safely wait until the
    AUTOSENSE_EN bit is cleared.

    Signed-off-by: Manfred Rudigier <manfred.rudigier@omicronenergy.com>
    Tested-by: Aaron Brown <aaron.f.brown@intel.com>
    Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/ethernet/intel/igb/igb_main.c | 3 ++-
    1 file changed, 2 insertions(+), 1 deletion(-)

    diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
    index 71b235f935d94..9c7e75b3b6c7a 100644
    --- a/drivers/net/ethernet/intel/igb/igb_main.c
    +++ b/drivers/net/ethernet/intel/igb/igb_main.c
    @@ -1680,7 +1680,8 @@ static void igb_check_swap_media(struct igb_adapter *adapter)
    if ((hw->phy.media_type == e1000_media_type_copper) &&
    (!(connsw & E1000_CONNSW_AUTOSENSE_EN))) {
    swap_now = true;
    - } else if (!(connsw & E1000_CONNSW_SERDESD)) {
    + } else if ((hw->phy.media_type != e1000_media_type_copper) &&
    + !(connsw & E1000_CONNSW_SERDESD)) {
    /* copper signal takes time to appear */
    if (adapter->copper_tries < 4) {
    adapter->copper_tries++;
    --
    2.20.1


    \
     
     \ /
      Last update: 2019-11-11 19:40    [W:4.022 / U:0.028 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site