From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rasesh Mody Subject: [PATCH 12/61] net/qede/base: use default mtu from shared memory Date: Sun, 26 Feb 2017 23:56:28 -0800 Message-ID: <1488182237-10247-13-git-send-email-rasesh.mody@cavium.com> References: <1488182237-10247-1-git-send-email-rasesh.mody@cavium.com> Mime-Version: 1.0 Content-Type: text/plain Cc: Rasesh Mody , To: Return-path: Received: from mx0b-0016ce01.pphosted.com (mx0a-0016ce01.pphosted.com [67.231.148.157]) by dpdk.org (Postfix) with ESMTP id D8AC4F959 for ; Mon, 27 Feb 2017 08:58:00 +0100 (CET) In-Reply-To: <1488182237-10247-1-git-send-email-rasesh.mody@cavium.com> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Read and use the default mtu value from shared-memory. Signed-off-by: Rasesh Mody --- drivers/net/qede/base/ecore.h | 2 ++ drivers/net/qede/base/ecore_dev.c | 3 +++ drivers/net/qede/base/ecore_mcp.c | 10 ++++++++++ drivers/net/qede/base/ecore_mcp_api.h | 2 ++ drivers/net/qede/qede_if.h | 1 + drivers/net/qede/qede_main.c | 2 ++ 6 files changed, 20 insertions(+) diff --git a/drivers/net/qede/base/ecore.h b/drivers/net/qede/base/ecore.h index a6cf52e..25c96f8 100644 --- a/drivers/net/qede/base/ecore.h +++ b/drivers/net/qede/base/ecore.h @@ -377,6 +377,8 @@ struct ecore_hw_info { /* Default DCBX mode */ u8 dcbx_mode; + + u16 mtu; }; struct ecore_hw_cid_data { diff --git a/drivers/net/qede/base/ecore_dev.c b/drivers/net/qede/base/ecore_dev.c index 2fe9d04..2c768d8 100644 --- a/drivers/net/qede/base/ecore_dev.c +++ b/drivers/net/qede/base/ecore_dev.c @@ -2887,6 +2887,9 @@ static void ecore_hw_info_port_num(struct ecore_hwfn *p_hwfn, ecore_get_num_funcs(p_hwfn, p_ptt); + if (ecore_mcp_is_init(p_hwfn)) + p_hwfn->hw_info.mtu = p_hwfn->mcp_info->func_info.mtu; + /* In case of forcing the driver's default resource allocation, calling * ecore_hw_get_resc() should come after initializing the personality * and after getting the number of functions, since the calculation of diff --git a/drivers/net/qede/base/ecore_mcp.c b/drivers/net/qede/base/ecore_mcp.c index afd0685..b744c42 100644 --- a/drivers/net/qede/base/ecore_mcp.c +++ b/drivers/net/qede/base/ecore_mcp.c @@ -1432,6 +1432,16 @@ enum _ecore_status_t ecore_mcp_fill_shmem_func_info(struct ecore_hwfn *p_hwfn, info->ovlan = (u16)(shmem_info.ovlan_stag & FUNC_MF_CFG_OV_STAG_MASK); + info->mtu = (u16)shmem_info.mtu_size; + + if (info->mtu == 0) + info->mtu = 1500; + + info->mtu = (u16)shmem_info.mtu_size; + + if (info->mtu == 0) + info->mtu = 1500; + DP_VERBOSE(p_hwfn, (ECORE_MSG_SP | ECORE_MSG_IFUP), "Read configuration from shmem: pause_on_host %02x" " protocol %02x BW [%02x - %02x]" diff --git a/drivers/net/qede/base/ecore_mcp_api.h b/drivers/net/qede/base/ecore_mcp_api.h index 72a58e4..1be22dd 100644 --- a/drivers/net/qede/base/ecore_mcp_api.h +++ b/drivers/net/qede/base/ecore_mcp_api.h @@ -84,6 +84,8 @@ struct ecore_mcp_function_info { #define ECORE_MCP_VLAN_UNSET (0xffff) u16 ovlan; + + u16 mtu; }; struct ecore_mcp_nvm_common { diff --git a/drivers/net/qede/qede_if.h b/drivers/net/qede/qede_if.h index 4b23bb9..18404fb 100644 --- a/drivers/net/qede/qede_if.h +++ b/drivers/net/qede/qede_if.h @@ -34,6 +34,7 @@ struct qed_dev_info { uint32_t flash_size; uint8_t mf_mode; bool tx_switching; + u16 mtu; /* To be added... */ }; diff --git a/drivers/net/qede/qede_main.c b/drivers/net/qede/qede_main.c index 332b1f8..e76346e 100644 --- a/drivers/net/qede/qede_main.c +++ b/drivers/net/qede/qede_main.c @@ -365,6 +365,8 @@ static int qed_slowpath_start(struct ecore_dev *edev, &dev_info->mfw_rev, NULL); } + dev_info->mtu = ECORE_LEADING_HWFN(edev)->hw_info.mtu; + return 0; } -- 1.7.10.3