diff options
author | Ioana Ciornei <ioana.ciornei@nxp.com> | 2022-05-24 15:07:31 +0300 |
---|---|---|
committer | Xiaobo Xie <xiaobo.xie@nxp.com> | 2022-06-07 04:34:46 +0200 |
commit | fa6c3168595c02bd9d5366fcc28c9e7304947a3d (patch) | |
tree | 6fb73396a47aac6df3afc633c3e7649cf8441e51 | |
parent | ccd72abc71b3f61f579b8783712755a0d9a6d485 (diff) |
dpaa2-eth: increase busy retries when interracting with QBMAN
It seems that there are circumstances when access to QBMAN through the
software portals will be delayed. Accessing some lower speeds interfaces
while also QBMAN commands are issued from the kernel will lead to
software timeouts happening in the dpaa2-eth driver.
What we have observed is that management commands like re-arming the
interrupts on a specific channel, waiting for a dequeue response to be
available etc, will take a longer time to complete.
All these commands have to wait for a valid bit to be set for the
command to be interpreted as successfully completed.
Increase the maximum number of times the Linux kernel drivers will busy
poll for a successful result of one of these commands.
Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
-rw-r--r-- | drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h | 2 | ||||
-rw-r--r-- | drivers/soc/fsl/dpio/qbman-portal.h | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h index a57f95cac6a7..baa13f948aec 100644 --- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h +++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h @@ -354,7 +354,7 @@ static inline struct dpaa2_faead *dpaa2_get_faead(void *buf_addr, bool swa) * hardware becomes unresponsive, but not give up too easily if * the portal really is busy for valid reasons */ -#define DPAA2_ETH_SWP_BUSY_RETRIES 1000 +#define DPAA2_ETH_SWP_BUSY_RETRIES 10000 /* Driver statistics, other than those in struct rtnl_link_stats64. * These are usually collected per-CPU and aggregated by ethtool. diff --git a/drivers/soc/fsl/dpio/qbman-portal.h b/drivers/soc/fsl/dpio/qbman-portal.h index b89f93ee6f7e..e40b3fa58f40 100644 --- a/drivers/soc/fsl/dpio/qbman-portal.h +++ b/drivers/soc/fsl/dpio/qbman-portal.h @@ -543,7 +543,7 @@ static inline int qbman_swp_CDAN_set_context_enable(struct qbman_swp *s, static inline void *qbman_swp_mc_complete(struct qbman_swp *swp, void *cmd, u8 cmd_verb) { - int loopvar = 2000; + int loopvar = 10000; qbman_swp_mc_submit(swp, cmd, cmd_verb); |