]> git.itanic.dy.fi Git - linux-stable/commitdiff
can: at91_can: ECR register: convert to FIELD_GET()
authorMarc Kleine-Budde <mkl@pengutronix.de>
Tue, 18 Apr 2023 14:35:54 +0000 (16:35 +0200)
committerMarc Kleine-Budde <mkl@pengutronix.de>
Thu, 5 Oct 2023 19:45:30 +0000 (21:45 +0200)
Use FIELD_GET() to access the individual fields of the ECR register.

Link: https://lore.kernel.org/all/20231005-at91_can-rx_offload-v2-5-9987d53600e0@pengutronix.de
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
drivers/net/can/at91_can.c

index 79eb78b9f8aeb2c6535cc50a7310b5da26626a41..7597da543348f798940a5a2a375b70618568c6ef 100644 (file)
@@ -72,6 +72,9 @@ enum at91_reg {
 #define AT91_BR_BRP_MASK GENMASK(22, 16)
 #define AT91_BR_SMP BIT(24)
 
+#define AT91_ECR_REC_MASK GENMASK(8, 0)
+#define AT91_ECR_TEC_MASK GENMASK(23, 16)
+
 #define AT91_MMR_PRIO_SHIFT (16)
 
 #define AT91_MID_MIDE BIT(29)
@@ -385,8 +388,8 @@ static int at91_get_berr_counter(const struct net_device *dev,
        const struct at91_priv *priv = netdev_priv(dev);
        u32 reg_ecr = at91_read(priv, AT91_ECR);
 
-       bec->rxerr = reg_ecr & 0xff;
-       bec->txerr = reg_ecr >> 16;
+       bec->rxerr = FIELD_GET(AT91_ECR_REC_MASK, reg_ecr);
+       bec->txerr = FIELD_GET(AT91_ECR_TEC_MASK, reg_ecr);
 
        return 0;
 }