Files
linux/drivers/net/ethernet/intel/ice
Jacob Keller 5f6df173f9 ice: implement and use rd32_poll_timeout for ice_sq_done timeout
The ice_sq_done function is used to check the control queue head register
and determine whether or not the control queue processing is done. This
function is called in a loop checking against jiffies for a specified
timeout.

The pattern of reading a register in a loop until a condition is true or a
timeout is reached is a relatively common pattern. In fact, the kernel
provides a read_poll_timeout function implementing this behavior in
<linux/iopoll.h>

Use of read_poll_timeout is preferred over directly coding these loops.
However, using it in the ice driver is a bit more difficult because of the
rd32 wrapper. Implement a rd32_poll_timeout wrapper based on
read_poll_timeout.

Refactor ice_sq_done to use rd32_poll_timeout, replacing the loop calling
ice_sq_done in ice_sq_send_cmd. This simplifies the logic down to a single
ice_sq_done() call.

The implementation of rd32_poll_timeout uses microseconds for its timeout
value, so update the CQ timeout macros used to be specified in microseconds
units as well instead of using HZ for jiffies.

Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Tested-by: Pucha Himasekhar Reddy <himasekharx.reddy.pucha@intel.com> (A Contingent worker at Intel)
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
2024-08-26 09:34:38 -07:00
..
2024-03-07 21:12:43 -08:00
2024-02-02 09:13:13 -08:00
2023-12-18 11:20:43 -08:00
2023-12-18 11:20:43 -08:00
2023-01-19 08:18:03 -08:00
2024-07-11 10:58:00 -07:00
2024-07-11 10:58:00 -07:00
2022-02-09 09:24:45 -08:00
2024-03-25 13:08:05 -07:00
2024-06-10 19:52:45 -07:00
2024-08-07 10:52:20 -07:00
2024-08-21 17:21:47 -07:00
2024-04-22 13:05:19 -07:00
2024-07-23 15:26:41 -07:00
2024-07-29 08:52:29 -07:00
2024-08-13 14:51:28 -07:00