All of lore.kernel.org
 help / color / mirror / Atom feed
* [Intel-wired-lan] [PATCH iwl-net] ice: implement AQ download pkg retry
@ 2024-05-16 14:04 ` Wojciech Drewek
  0 siblings, 0 replies; 16+ messages in thread
From: Wojciech Drewek @ 2024-05-16 14:04 UTC (permalink / raw)
  To: netdev; +Cc: intel-wired-lan

ice_aqc_opc_download_pkg (0x0C40) AQ sporadically returns error due
to FW issue. Fix this by retrying five times before moving to
Safe Mode.

Reviewed-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com>
Signed-off-by: Wojciech Drewek <wojciech.drewek@intel.com>
---
 drivers/net/ethernet/intel/ice/ice_ddp.c | 19 +++++++++++++++++--
 1 file changed, 17 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/intel/ice/ice_ddp.c b/drivers/net/ethernet/intel/ice/ice_ddp.c
index ce5034ed2b24..19e2111fcf08 100644
--- a/drivers/net/ethernet/intel/ice/ice_ddp.c
+++ b/drivers/net/ethernet/intel/ice/ice_ddp.c
@@ -1339,6 +1339,7 @@ ice_dwnld_cfg_bufs_no_lock(struct ice_hw *hw, struct ice_buf *bufs, u32 start,
 
 	for (i = 0; i < count; i++) {
 		bool last = false;
+		int try_cnt = 0;
 		int status;
 
 		bh = (struct ice_buf_hdr *)(bufs + start + i);
@@ -1346,8 +1347,22 @@ ice_dwnld_cfg_bufs_no_lock(struct ice_hw *hw, struct ice_buf *bufs, u32 start,
 		if (indicate_last)
 			last = ice_is_last_download_buffer(bh, i, count);
 
-		status = ice_aq_download_pkg(hw, bh, ICE_PKG_BUF_SIZE, last,
-					     &offset, &info, NULL);
+		while (try_cnt < 5) {
+			status = ice_aq_download_pkg(hw, bh, ICE_PKG_BUF_SIZE,
+						     last, &offset, &info,
+						     NULL);
+			if (hw->adminq.sq_last_status != ICE_AQ_RC_ENOSEC &&
+			    hw->adminq.sq_last_status != ICE_AQ_RC_EBADSIG)
+				break;
+
+			try_cnt++;
+			msleep(20);
+		}
+
+		if (try_cnt)
+			dev_dbg(ice_hw_to_dev(hw),
+				"ice_aq_download_pkg failed, number of retries: %d\n",
+				try_cnt);
 
 		/* Save AQ status from download package */
 		if (status) {
-- 
2.40.1


^ permalink raw reply related	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2024-05-17 23:14 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-05-16 14:04 [Intel-wired-lan] [PATCH iwl-net] ice: implement AQ download pkg retry Wojciech Drewek
2024-05-16 14:04 ` Wojciech Drewek
2024-05-16 14:56 ` [Intel-wired-lan] " Simon Horman
2024-05-16 14:56   ` Simon Horman
2024-05-17  7:42   ` [Intel-wired-lan] " Wojciech Drewek
2024-05-17  7:42     ` Wojciech Drewek
2024-05-16 16:36 ` [Intel-wired-lan] " Brett Creeley
2024-05-16 16:36   ` Brett Creeley
2024-05-17  7:49   ` [Intel-wired-lan] " Wojciech Drewek
2024-05-17  7:49     ` Wojciech Drewek
2024-05-17  8:29     ` [Intel-wired-lan] " Przemek Kitszel
2024-05-17  8:29       ` Przemek Kitszel
2024-05-17  7:26 ` Naveen Mamindlapalli
2024-05-17  7:26   ` Naveen Mamindlapalli
2024-05-17  7:51   ` [Intel-wired-lan] " Wojciech Drewek
2024-05-17  7:51     ` Wojciech Drewek

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.