mirror of
https://github.com/torvalds/linux.git
synced 2025-11-10 21:48:46 +02:00
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> |
||
|---|---|---|
| .. | ||
| 3com | ||
| 8390 | ||
| actions | ||
| adaptec | ||
| adi | ||
| aeroflex | ||
| agere | ||
| alacritech | ||
| allwinner | ||
| alteon | ||
| altera | ||
| amazon | ||
| amd | ||
| apm | ||
| apple | ||
| aquantia | ||
| arc | ||
| asix | ||
| atheros | ||
| broadcom | ||
| brocade | ||
| cadence | ||
| calxeda | ||
| cavium | ||
| chelsio | ||
| cirrus | ||
| cisco | ||
| cortina | ||
| davicom | ||
| dec | ||
| dlink | ||
| emulex | ||
| engleder | ||
| ezchip | ||
| faraday | ||
| freescale | ||
| fujitsu | ||
| fungible | ||
| hisilicon | ||
| huawei | ||
| i825xx | ||
| ibm | ||
| intel | ||
| litex | ||
| marvell | ||
| mediatek | ||
| mellanox | ||
| meta | ||
| micrel | ||
| microchip | ||
| microsoft | ||
| moxa | ||
| mscc | ||
| myricom | ||
| natsemi | ||
| neterion | ||
| netronome | ||
| ni | ||
| nvidia | ||
| nxp | ||
| oki-semi | ||
| packetengines | ||
| pasemi | ||
| pensando | ||
| qlogic | ||
| qualcomm | ||
| rdc | ||
| realtek | ||
| renesas | ||
| rocker | ||
| samsung | ||
| seeq | ||
| sfc | ||
| sgi | ||
| silan | ||
| sis | ||
| smsc | ||
| socionext | ||
| stmicro | ||
| sun | ||
| sunplus | ||
| synopsys | ||
| tehuti | ||
| ti | ||
| toshiba | ||
| tundra | ||
| vertexcom | ||
| via | ||
| wangxun | ||
| wiznet | ||
| xilinx | ||
| xircom | ||
| xscale | ||
| dnet.c | ||
| dnet.h | ||
| ec_bhf.c | ||
| ethoc.c | ||
| fealnx.c | ||
| jme.c | ||
| jme.h | ||
| Kconfig | ||
| korina.c | ||
| lantiq_etop.c | ||
| lantiq_xrx200.c | ||
| Makefile | ||