diff options
author | Harini Katakam <harini.katakam@xilinx.com> | 2019-06-27 09:21:00 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-06-29 21:09:18 +0300 |
commit | 7ad342bc58cc5197cd2f12a3c30b3949528c6d83 (patch) | |
tree | ab279b411a1b23c098c558af7b2231247251eb52 /drivers/net/ethernet/cadence/macb_ptp.c | |
parent | a8ee4dc1b5937ef60e04e11c6dd6039099d1069d (diff) | |
download | linux-7ad342bc58cc5197cd2f12a3c30b3949528c6d83.tar.xz |
net: macb: Fix SUBNS increment and increase resolution
The subns increment register has 24 bits as follows:
RegBit[15:0] = Subns[23:8]; RegBit[31:24] = Subns[7:0]
Fix the same in the driver and increase sub ns resolution to the
best capable, 24 bits. This should be the case on all GEM versions
that this PTP driver supports.
Signed-off-by: Harini Katakam <harini.katakam@xilinx.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/cadence/macb_ptp.c')
-rw-r--r-- | drivers/net/ethernet/cadence/macb_ptp.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/net/ethernet/cadence/macb_ptp.c b/drivers/net/ethernet/cadence/macb_ptp.c index 6276eac8056b..43a3f0dbf857 100644 --- a/drivers/net/ethernet/cadence/macb_ptp.c +++ b/drivers/net/ethernet/cadence/macb_ptp.c @@ -104,7 +104,10 @@ static int gem_tsu_incr_set(struct macb *bp, struct tsu_incr *incr_spec) * to take effect. */ spin_lock_irqsave(&bp->tsu_clk_lock, flags); - gem_writel(bp, TISUBN, GEM_BF(SUBNSINCR, incr_spec->sub_ns)); + /* RegBit[15:0] = Subns[23:8]; RegBit[31:24] = Subns[7:0] */ + gem_writel(bp, TISUBN, GEM_BF(SUBNSINCRL, incr_spec->sub_ns) | + GEM_BF(SUBNSINCRH, (incr_spec->sub_ns >> + GEM_SUBNSINCRL_SIZE))); gem_writel(bp, TI, GEM_BF(NSINCR, incr_spec->ns)); spin_unlock_irqrestore(&bp->tsu_clk_lock, flags); |