summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRasesh Mody <rasesh.mody@cavium.com>2018-08-15 11:57:51 -0700
committerYongseok Koh <yskoh@mellanox.com>2018-08-15 17:14:36 -0700
commitab1e6f800749fa6091c470b28dc1fbc8e1a50b07 (patch)
treeba98701b607af5211aa1ec4772a93b0b09057655
parent492bb6f652dd051b135a25619bc593d635ef4b33 (diff)
downloaddpdk-stable-ab1e6f800749fa6091c470b28dc1fbc8e1a50b07.zip
dpdk-stable-ab1e6f800749fa6091c470b28dc1fbc8e1a50b07.tar.gz
dpdk-stable-ab1e6f800749fa6091c470b28dc1fbc8e1a50b07.tar.xz
net/qede/base: fix to clear HW indication
[ backported from upstream commit c8dbf6814312f12cd7fef7203ea9b40255ea1f76 ] VDMs may cause the was_error indication to be set after the driver clears it. Clear the indication after the internal FID_enable for the PF is set. Fixes: 60c78a5e258a ("net/qede/base: fix recovery from previous ungraceful exit") Signed-off-by: Rasesh Mody <rasesh.mody@cavium.com>
-rw-r--r--drivers/net/qede/base/ecore_dev.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/net/qede/base/ecore_dev.c b/drivers/net/qede/base/ecore_dev.c
index 9affcbc..092606b 100644
--- a/drivers/net/qede/base/ecore_dev.c
+++ b/drivers/net/qede/base/ecore_dev.c
@@ -2423,9 +2423,8 @@ enum _ecore_status_t ecore_hw_init(struct ecore_dev *p_dev,
}
}
- /* Log and clean previous pglue_b errors if such exist */
+ /* Log and clear previous pglue_b errors if such exist */
ecore_pglueb_rbc_attn_handler(p_hwfn, p_hwfn->p_main_ptt);
- ecore_pglueb_clear_err(p_hwfn, p_hwfn->p_main_ptt);
/* Enable the PF's internal FID_enable in the PXP */
rc = ecore_pglueb_set_pfid_enable(p_hwfn, p_hwfn->p_main_ptt,
@@ -2433,6 +2432,13 @@ enum _ecore_status_t ecore_hw_init(struct ecore_dev *p_dev,
if (rc != ECORE_SUCCESS)
goto load_err;
+ /* Clear the pglue_b was_error indication.
+ * In E4 it must be done after the BME and the internal
+ * FID_enable for the PF are set, since VDMs may cause the
+ * indication to be set again.
+ */
+ ecore_pglueb_clear_err(p_hwfn, p_hwfn->p_main_ptt);
+
switch (load_code) {
case FW_MSG_CODE_DRV_LOAD_ENGINE:
rc = ecore_hw_init_common(p_hwfn, p_hwfn->p_main_ptt,