From patchwork Wed Aug 15 17:09:31 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Luca Boccassi X-Patchwork-Id: 43720 X-Patchwork-Delegate: qi.z.zhang@intel.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id BEED73772; Wed, 15 Aug 2018 19:09:46 +0200 (CEST) Received: from mail-wr1-f68.google.com (mail-wr1-f68.google.com [209.85.221.68]) by dpdk.org (Postfix) with ESMTP id 9367D324B; Wed, 15 Aug 2018 19:09:45 +0200 (CEST) Received: by mail-wr1-f68.google.com with SMTP id g1-v6so1733876wru.2; Wed, 15 Aug 2018 10:09:45 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=o9HqYJerh4kJ9w12YEYOjQgxZSx+zNRMgSeRpRtiBV0=; b=jWtUjjzLvgUXsz3hjHRxW2mhMlVoXxdlMAuA/ehptQ+pR1LR39lWS5j/FaJJg49F89 0PnV8nyabj49iJGDTKofhMRQesAyzoKRAtMM/hRFvQSU9eejG+TtMalLzESIi0at6UN8 0+d6WwO4F2NpAEChork83ItxyIuIumpC7SY2gwZ5umNaBpZbZhORKFRttpISO6eJT5UY bHwihHhQdl8TIl90pD1nvEf0JPKst8DYav+cuGAk+ikM/dRzSBp+lNgMEHjzRu53aZRg /8aclyW09sGoqhLABh0SzFiHGdtDygE5qdjhpncqss107l4gtSEReDxe3SGzfKmWrko3 T3UQ== X-Gm-Message-State: AOUpUlHag+m/06U9qEOaLyf77b/0axPRf115nx0p+tC3Z+JrRmiA02m3 /nV7lvQcvt9T2dtouHgIQNTLBQPn X-Google-Smtp-Source: AA+uWPyiUUIEc7ycQQyRp5MLs7fMpbbwLeUbz2pQrvw+KGcQY/SfaQUmE/BxAmvUCEc7XgHoYReH7Q== X-Received: by 2002:adf:ed8e:: with SMTP id c14-v6mr16387086wro.264.1534352984907; Wed, 15 Aug 2018 10:09:44 -0700 (PDT) Received: from localhost ([2a01:4b00:f419:6f00:8361:8946:ba2b:d556]) by smtp.gmail.com with ESMTPSA id q188-v6sm4392077wmd.36.2018.08.15.10.09.43 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 15 Aug 2018 10:09:43 -0700 (PDT) From: Luca Boccassi To: dev@dpdk.org Cc: wenzhuo.lu@intel.com, konstantin.ananyev@intel.com, Luca Boccassi , stable@dpdk.org Date: Wed, 15 Aug 2018 18:09:31 +0100 Message-Id: <20180815170932.23536-1-bluca@debian.org> X-Mailer: git-send-email 2.18.0 Subject: [dpdk-dev] [PATCH 1/2] net/ixgbe: fix x550 code to handle unidentified PHY X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" ixgbe_identify_phy_x550em() was missing the code to handle unidentified PHY that has been there in 82599 so it was not able to complete initialization of ixgbe sequence if no sfp plugged in. Port it over to return an appropriate type and complete init sequence properly. Fixes: d2e72774e58c ("ixgbe/base: support X550") Cc: stable@dpdk.org Signed-off-by: Luca Boccassi --- drivers/net/ixgbe/base/ixgbe_x550.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/drivers/net/ixgbe/base/ixgbe_x550.c b/drivers/net/ixgbe/base/ixgbe_x550.c index f66f540761..ef51b6a9a6 100644 --- a/drivers/net/ixgbe/base/ixgbe_x550.c +++ b/drivers/net/ixgbe/base/ixgbe_x550.c @@ -343,13 +343,21 @@ STATIC void ixgbe_setup_mux_ctl(struct ixgbe_hw *hw) */ STATIC s32 ixgbe_identify_phy_x550em(struct ixgbe_hw *hw) { + s32 status; + hw->mac.ops.set_lan_id(hw); ixgbe_read_mng_if_sel_x550em(hw); switch (hw->device_id) { case IXGBE_DEV_ID_X550EM_A_SFP: - return ixgbe_identify_module_generic(hw); + status = ixgbe_identify_module_generic(hw); + /* Set PHY type none if no PHY detected */ + if (hw->phy.type == ixgbe_phy_unknown) { + hw->phy.type = ixgbe_phy_none; + return IXGBE_SUCCESS; + } + return status; case IXGBE_DEV_ID_X550EM_X_SFP: /* set up for CS4227 usage */ ixgbe_setup_mux_ctl(hw); @@ -357,8 +365,13 @@ STATIC s32 ixgbe_identify_phy_x550em(struct ixgbe_hw *hw) /* Fallthrough */ case IXGBE_DEV_ID_X550EM_A_SFP_N: - return ixgbe_identify_module_generic(hw); - break; + status = ixgbe_identify_module_generic(hw); + /* Set PHY type none if no PHY detected */ + if (hw->phy.type == ixgbe_phy_unknown) { + hw->phy.type = ixgbe_phy_none; + return IXGBE_SUCCESS; + } + return status; case IXGBE_DEV_ID_X550EM_X_KX4: hw->phy.type = ixgbe_phy_x550em_kx4; break;