net/qede/base: fix to initialize HW for LLH filters

Message ID 1540945610-5300-1-git-send-email-rasesh.mody@cavium.com (mailing list archive)
State Accepted, archived
Delegated to: Ferruh Yigit
Headers
Series net/qede/base: fix to initialize HW for LLH filters |

Checks

Context Check Description
ci/Intel-compilation success Compilation OK

Commit Message

Mody, Rasesh Oct. 31, 2018, 12:27 a.m. UTC
  During initalization of leading PF, we need to initialize HW for LLH
filters. Set HW init parameter to set the eingine affinity for
multiple engine adapters.

Fixes: 3eed444a9621 ("net/qede/base: changes for 100G")

Signed-off-by: Rasesh Mody <rasesh.mody@cavium.com>
---
 drivers/net/qede/base/ecore_dev.c |    8 ++++++++
 drivers/net/qede/qede_main.c      |    1 +
 2 files changed, 9 insertions(+)
  

Comments

Ferruh Yigit Nov. 2, 2018, 8:35 p.m. UTC | #1
On 10/31/2018 12:27 AM, Mody, Rasesh wrote:
> During initalization of leading PF, we need to initialize HW for LLH
> filters. Set HW init parameter to set the eingine affinity for
> multiple engine adapters.
> 
> Fixes: 3eed444a9621 ("net/qede/base: changes for 100G")
> 
> Signed-off-by: Rasesh Mody <rasesh.mody@cavium.com>

Applied to dpdk-next-net/master, thanks.
  

Patch

diff --git a/drivers/net/qede/base/ecore_dev.c b/drivers/net/qede/base/ecore_dev.c
index cf454b1..d7e1d7b 100644
--- a/drivers/net/qede/base/ecore_dev.c
+++ b/drivers/net/qede/base/ecore_dev.c
@@ -3429,6 +3429,14 @@  static enum _ecore_status_t ecore_hw_init_port(struct ecore_hwfn *p_hwfn,
 	if (rc != ECORE_SUCCESS)
 		return rc;
 
+	/* Use the leading hwfn since in CMT only NIG #0 is operational */
+	if (IS_LEAD_HWFN(p_hwfn)) {
+		rc = ecore_llh_hw_init_pf(p_hwfn, p_ptt,
+					p_params->avoid_eng_affin);
+		if (rc)
+			return rc;
+	}
+
 	if (p_params->b_hw_start) {
 		/* enable interrupts */
 		rc = ecore_int_igu_enable(p_hwfn, p_ptt, p_params->int_mode);
diff --git a/drivers/net/qede/qede_main.c b/drivers/net/qede/qede_main.c
index c361f24..b128388 100644
--- a/drivers/net/qede/qede_main.c
+++ b/drivers/net/qede/qede_main.c
@@ -287,6 +287,7 @@  static int qed_slowpath_start(struct ecore_dev *edev,
 	drv_load_params.mfw_timeout_val = ECORE_LOAD_REQ_LOCK_TO_DEFAULT;
 	drv_load_params.avoid_eng_reset = false;
 	drv_load_params.override_force_load = ECORE_OVERRIDE_FORCE_LOAD_ALWAYS;
+	hw_init_params.avoid_eng_affin = false;
 	hw_init_params.p_drv_load_params = &drv_load_params;
 
 	rc = ecore_hw_init(edev, &hw_init_params);