2
0
mirror of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git synced 2025-09-04 20:19:47 +08:00
linux/drivers/net/ethernet/intel
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
..
e1000 net: intel: Remove MODULE_AUTHORs 2024-07-11 10:05:52 -07:00
e1000e Networking changes for 6.11. Not much excitement - a handful of large 2024-07-16 19:28:34 -07:00
fm10k net: intel: Remove MODULE_AUTHORs 2024-07-11 10:05:52 -07:00
i40e Merge branch 'net-make-timestamping-selectable' 2024-07-15 08:02:30 -07:00
iavf iavf: add support for offloading tc U32 cls filters 2024-08-13 14:51:29 -07:00
ice ice: implement and use rd32_poll_timeout for ice_sq_done timeout 2024-08-26 09:34:38 -07:00
idpf idpf: remove redundant 'req_vec_chunks' NULL check 2024-08-16 11:23:39 -07:00
igb igb: cope with large MAX_SKB_FRAGS 2024-08-20 15:46:52 -07:00
igbvf igbvf: Remove two unused declarations 2024-08-19 17:48:33 -07:00
igc igc: Fix qbv tx latency by setting gtxoffset 2024-08-07 13:30:23 -07:00
ixgbe Merge branch 'net-make-timestamping-selectable' 2024-07-15 08:02:30 -07:00
ixgbevf net: intel: Remove MODULE_AUTHORs 2024-07-11 10:05:52 -07:00
libeth Merge branch '40GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue 2024-07-13 16:04:52 -07:00
libie net: intel: Remove MODULE_AUTHORs 2024-07-11 10:05:52 -07:00
e100.c net: intel: Remove MODULE_AUTHORs 2024-07-11 10:05:52 -07:00
Kconfig idpf: compile singleq code only under default-n CONFIG_IDPF_SINGLEQ 2024-07-10 10:42:26 -07:00
Makefile net: intel: introduce {, Intel} Ethernet common library 2024-04-24 11:06:25 -07:00