net: dsa: qca8k: add QCA8K_ATU_TABLE_SIZE define for fdb access
authorChristian Marangi <ansuelsmth@gmail.com>
Wed, 25 Jan 2023 20:35:16 +0000 (21:35 +0100)
committerDavid S. Miller <davem@davemloft.net>
Fri, 27 Jan 2023 12:06:45 +0000 (12:06 +0000)
Add and use QCA8K_ATU_TABLE_SIZE instead of hardcoding the ATU size with
a pure number and using sizeof on the array.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/qca/qca8k-common.c
drivers/net/dsa/qca/qca8k.h

index fb45b598847be47c799a642753b4356ba0281ef7..2f82a8dae9ffc5ea0ce4892e7472d0037398fc1b 100644 (file)
@@ -150,11 +150,12 @@ static int qca8k_busy_wait(struct qca8k_priv *priv, u32 reg, u32 mask)
 
 static int qca8k_fdb_read(struct qca8k_priv *priv, struct qca8k_fdb *fdb)
 {
-       u32 reg[3];
+       u32 reg[QCA8K_ATU_TABLE_SIZE];
        int ret;
 
        /* load the ARL table into an array */
-       ret = qca8k_bulk_read(priv, QCA8K_REG_ATU_DATA0, reg, sizeof(reg));
+       ret = qca8k_bulk_read(priv, QCA8K_REG_ATU_DATA0, reg,
+                             QCA8K_ATU_TABLE_SIZE * sizeof(u32));
        if (ret)
                return ret;
 
@@ -178,7 +179,7 @@ static int qca8k_fdb_read(struct qca8k_priv *priv, struct qca8k_fdb *fdb)
 static void qca8k_fdb_write(struct qca8k_priv *priv, u16 vid, u8 port_mask,
                            const u8 *mac, u8 aging)
 {
-       u32 reg[3] = { 0 };
+       u32 reg[QCA8K_ATU_TABLE_SIZE] = { 0 };
 
        /* vid - 83:72 */
        reg[2] = FIELD_PREP(QCA8K_ATU_VID_MASK, vid);
@@ -195,7 +196,8 @@ static void qca8k_fdb_write(struct qca8k_priv *priv, u16 vid, u8 port_mask,
        reg[0] |= FIELD_PREP(QCA8K_ATU_ADDR5_MASK, mac[5]);
 
        /* load the array into the ARL table */
-       qca8k_bulk_write(priv, QCA8K_REG_ATU_DATA0, reg, sizeof(reg));
+       qca8k_bulk_write(priv, QCA8K_REG_ATU_DATA0, reg,
+                        QCA8K_ATU_TABLE_SIZE * sizeof(u32));
 }
 
 static int qca8k_fdb_access(struct qca8k_priv *priv, enum qca8k_fdb_cmd cmd,
index 03514f7a20becce61d1628910abade1af7721adf..593a882ec43c856e530973c44047528f103b3d49 100644 (file)
 #define QCA8K_REG_IPV4_PRI_ADDR_MASK                   0x474
 
 /* Lookup registers */
+#define QCA8K_ATU_TABLE_SIZE                           3 /* 12 bytes wide table / sizeof(u32) */
+
 #define QCA8K_REG_ATU_DATA0                            0x600
 #define   QCA8K_ATU_ADDR2_MASK                         GENMASK(31, 24)
 #define   QCA8K_ATU_ADDR3_MASK                         GENMASK(23, 16)