diff options
Diffstat (limited to 'drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c')
-rw-r--r-- | drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c index 8ff8f9b9bb22..6c4686b77516 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c @@ -599,6 +599,7 @@ static int tc_setup_taprio(struct stmmac_priv *priv, struct timespec64 time; bool fpe = false; int i, ret = 0; + u64 ctr; if (!priv->dma_cap.estsel) return -EOPNOTSUPP; @@ -694,8 +695,9 @@ static int tc_setup_taprio(struct stmmac_priv *priv, priv->plat->est->btr[0] = (u32)time.tv_nsec; priv->plat->est->btr[1] = (u32)time.tv_sec; - priv->plat->est->ctr[0] = (u32)(qopt->cycle_time % NSEC_PER_SEC); - priv->plat->est->ctr[1] = (u32)(qopt->cycle_time / NSEC_PER_SEC); + ctr = qopt->cycle_time; + priv->plat->est->ctr[0] = do_div(ctr, NSEC_PER_SEC); + priv->plat->est->ctr[1] = (u32)ctr; if (fpe && !priv->dma_cap.fpesel) return -EOPNOTSUPP; |