> -----Original Message----- > From: Intel-wired-lan <intel-wired-lan-boun...@osuosl.org> On Behalf Of Jacob > Keller > Sent: Wednesday, August 7, 2024 2:16 AM > To: Nguyen, Anthony L <anthony.l.ngu...@intel.com>; Intel Wired LAN > <intel-wired-...@lists.osuosl.org>; "netdev netdev"@vger.kernel.org > Cc: Temerkhanov, Sergey <sergey.temerkha...@intel.com>; Kitszel, Przemyslaw > <przemyslaw.kits...@intel.com>; Kolacinski, Karol > <karol.kolacin...@intel.com>; Wierzbicki, Jacek <jacek.wierzbi...@intel.com> > Subject: [Intel-wired-lan] [PATCH iwl-next 1/7] 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.kel...@intel.com> > Reviewed-by: Przemek Kitszel <przemyslaw.kits...@intel.com> > --- > drivers/net/ethernet/intel/ice/ice_controlq.h | 2 +- > drivers/net/ethernet/intel/ice/ice_osdep.h | 4 +++ > drivers/net/ethernet/intel/ice/ice_controlq.c | 38 > +++++++++++++-------------- > 3 files changed, 23 insertions(+), 21 deletions(-) >
Tested-by: Pucha Himasekhar Reddy <himasekharx.reddy.pu...@intel.com> (A Contingent worker at Intel)