Commit 03ffbc99 authored by Geetha sowjanya's avatar Geetha sowjanya Committed by David S. Miller
Browse files

octeontx2-af: Retry until RVU block reset complete



Few RVU blocks like SSO require more time for reset on some
silicons. Hence retrying the block reset until success.

Fixes: c0fa2cff ("octeontx2-af: Handle return value in block reset")
Signed-off-by: default avatarGeetha sowjanya <gakula@marvell.com>
Signed-off-by: default avatarSubbaraya Sundeep <sbhatta@marvell.com>
Signed-off-by: default avatarSunil Goutham <sgoutham@marvell.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 00bfe94e
Loading
Loading
Loading
Loading
+5 −2
Original line number Original line Diff line number Diff line
@@ -520,8 +520,11 @@ static void rvu_block_reset(struct rvu *rvu, int blkaddr, u64 rst_reg)


	rvu_write64(rvu, blkaddr, rst_reg, BIT_ULL(0));
	rvu_write64(rvu, blkaddr, rst_reg, BIT_ULL(0));
	err = rvu_poll_reg(rvu, blkaddr, rst_reg, BIT_ULL(63), true);
	err = rvu_poll_reg(rvu, blkaddr, rst_reg, BIT_ULL(63), true);
	if (err)
	if (err) {
		dev_err(rvu->dev, "HW block:%d reset failed\n", blkaddr);
		dev_err(rvu->dev, "HW block:%d reset timeout retrying again\n", blkaddr);
		while (rvu_poll_reg(rvu, blkaddr, rst_reg, BIT_ULL(63), true) == -EBUSY)
			;
	}
}
}


static void rvu_reset_all_blocks(struct rvu *rvu)
static void rvu_reset_all_blocks(struct rvu *rvu)