mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-02 12:10:23 -04:00
net: dsa: qca8k: use iopoll macro for qca8k_busy_wait
Use iopoll macro instead of while loop. Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
5d9e068402
commit
2ad255f2fa
@@ -262,21 +262,20 @@ static struct regmap_config qca8k_regmap_config = {
|
||||
static int
|
||||
qca8k_busy_wait(struct qca8k_priv *priv, u32 reg, u32 mask)
|
||||
{
|
||||
unsigned long timeout;
|
||||
u32 val;
|
||||
int ret;
|
||||
|
||||
timeout = jiffies + msecs_to_jiffies(20);
|
||||
ret = read_poll_timeout(qca8k_read, val, !(val & mask),
|
||||
0, QCA8K_BUSY_WAIT_TIMEOUT * USEC_PER_MSEC, false,
|
||||
priv, reg);
|
||||
|
||||
/* loop until the busy flag has cleared */
|
||||
do {
|
||||
u32 val = qca8k_read(priv, reg);
|
||||
int busy = val & mask;
|
||||
/* Check if qca8k_read has failed for a different reason
|
||||
* before returning -ETIMEDOUT
|
||||
*/
|
||||
if (ret < 0 && val < 0)
|
||||
return val;
|
||||
|
||||
if (!busy)
|
||||
break;
|
||||
cond_resched();
|
||||
} while (!time_after_eq(jiffies, timeout));
|
||||
|
||||
return time_after_eq(jiffies, timeout);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void
|
||||
|
||||
@@ -18,6 +18,8 @@
|
||||
#define PHY_ID_QCA8337 0x004dd036
|
||||
#define QCA8K_ID_QCA8337 0x13
|
||||
|
||||
#define QCA8K_BUSY_WAIT_TIMEOUT 20
|
||||
|
||||
#define QCA8K_NUM_FDB_RECORDS 2048
|
||||
|
||||
#define QCA8K_CPU_PORT 0
|
||||
|
||||
Reference in New Issue
Block a user