lkml.org 
[lkml]   [2019]   [Dec]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.19 296/321] net: macb: Fix SUBNS increment and increase resolution
    Date
    From: Harini Katakam <harini.katakam@xilinx.com>

    commit 7ad342bc58cc5197cd2f12a3c30b3949528c6d83 upstream.

    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>
    Signed-off-by: Lee Jones <lee.jones@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/net/ethernet/cadence/macb.h | 6 +++++-
    drivers/net/ethernet/cadence/macb_ptp.c | 5 ++++-
    2 files changed, 9 insertions(+), 2 deletions(-)

    --- a/drivers/net/ethernet/cadence/macb.h
    +++ b/drivers/net/ethernet/cadence/macb.h
    @@ -499,7 +499,11 @@

    /* Bitfields in TISUBN */
    #define GEM_SUBNSINCR_OFFSET 0
    -#define GEM_SUBNSINCR_SIZE 16
    +#define GEM_SUBNSINCRL_OFFSET 24
    +#define GEM_SUBNSINCRL_SIZE 8
    +#define GEM_SUBNSINCRH_OFFSET 0
    +#define GEM_SUBNSINCRH_SIZE 16
    +#define GEM_SUBNSINCR_SIZE 24

    /* Bitfields in TI */
    #define GEM_NSINCR_OFFSET 0
    --- a/drivers/net/ethernet/cadence/macb_ptp.c
    +++ b/drivers/net/ethernet/cadence/macb_ptp.c
    @@ -115,7 +115,10 @@ static int gem_tsu_incr_set(struct macb
    * 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);


    \
     
     \ /
      Last update: 2019-12-04 00:00    [W:2.365 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site