lkml.org 
[lkml]   [2019]   [Oct]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 5.3 57/71] net: dsa: microchip: Always set regmap stride to 1
    Date
    From: Marek Vasut <marex@denx.de>

    [ Upstream commit a3aa6e65beebf3780026753ebf39db19f4c92990 ]

    The regmap stride is set to 1 for regmap describing 8bit registers already.
    However, for 16/32/64bit registers, the stride is 2/4/8 respectively. This
    is not correct, as the switch protocol supports unaligned register reads
    and writes and the KSZ87xx even uses such unaligned register accesses to
    read e.g. MIB counter.

    This patch fixes MIB counter access on KSZ87xx.

    Signed-off-by: Marek Vasut <marex@denx.de>
    Cc: Andrew Lunn <andrew@lunn.ch>
    Cc: David S. Miller <davem@davemloft.net>
    Cc: Florian Fainelli <f.fainelli@gmail.com>
    Cc: George McCollister <george.mccollister@gmail.com>
    Cc: Tristram Ha <Tristram.Ha@microchip.com>
    Cc: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
    Cc: Woojung Huh <woojung.huh@microchip.com>
    Fixes: 46558d601cb6 ("net: dsa: microchip: Initial SPI regmap support")
    Fixes: 255b59ad0db2 ("net: dsa: microchip: Factor out regmap config generation into common header")
    Reviewed-by: George McCollister <george.mccollister@gmail.com>
    Tested-by: George McCollister <george.mccollister@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/dsa/microchip/ksz_common.h | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/drivers/net/dsa/microchip/ksz_common.h b/drivers/net/dsa/microchip/ksz_common.h
    index 72ec250b95408..823f544add0a3 100644
    --- a/drivers/net/dsa/microchip/ksz_common.h
    +++ b/drivers/net/dsa/microchip/ksz_common.h
    @@ -130,7 +130,7 @@ static inline void ksz_pwrite32(struct ksz_device *dev, int port, int offset,
    { \
    .name = #width, \
    .val_bits = (width), \
    - .reg_stride = (width) / 8, \
    + .reg_stride = 1, \
    .reg_bits = (regbits) + (regalign), \
    .pad_bits = (regpad), \
    .max_register = BIT(regbits) - 1, \
    --
    2.20.1
    \
     
     \ /
      Last update: 2019-10-01 19:01    [W:3.926 / U:0.076 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site