net: dsa: vsc73xx: fix possible subblocks range of CAPT block
authorPawel Dembicki <paweldembicki@gmail.com>
Tue, 3 Sep 2024 20:33:41 +0000 (22:33 +0200)
committerPaolo Abeni <pabeni@redhat.com>
Thu, 5 Sep 2024 10:30:06 +0000 (12:30 +0200)
CAPT block (CPU Capture Buffer) have 7 sublocks: 0-3, 4, 6, 7.
Function 'vsc73xx_is_addr_valid' allows to use only block 0 at this
moment.

This patch fix it.

Fixes: 05bd97fc559d ("net: dsa: Add Vitesse VSC73xx DSA router driver")
Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
Link: https://patch.msgid.link/20240903203340.1518789-1-paweldembicki@gmail.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/dsa/vitesse-vsc73xx-core.c

index e3f95d2cc2c1689557f463edcdea4f4fb559f6a2..212421e9d42e4f5372776ad1625870b0b9545ae9 100644 (file)
@@ -36,7 +36,7 @@
 #define VSC73XX_BLOCK_ANALYZER 0x2 /* Only subblock 0 */
 #define VSC73XX_BLOCK_MII      0x3 /* Subblocks 0 and 1 */
 #define VSC73XX_BLOCK_MEMINIT  0x3 /* Only subblock 2 */
-#define VSC73XX_BLOCK_CAPTURE  0x4 /* Only subblock 2 */
+#define VSC73XX_BLOCK_CAPTURE  0x4 /* Subblocks 0-4, 6, 7 */
 #define VSC73XX_BLOCK_ARBITER  0x5 /* Only subblock 0 */
 #define VSC73XX_BLOCK_SYSTEM   0x7 /* Only subblock 0 */
 
@@ -410,13 +410,19 @@ int vsc73xx_is_addr_valid(u8 block, u8 subblock)
                break;
 
        case VSC73XX_BLOCK_MII:
-       case VSC73XX_BLOCK_CAPTURE:
        case VSC73XX_BLOCK_ARBITER:
                switch (subblock) {
                case 0 ... 1:
                        return 1;
                }
                break;
+       case VSC73XX_BLOCK_CAPTURE:
+               switch (subblock) {
+               case 0 ... 4:
+               case 6 ... 7:
+                       return 1;
+               }
+               break;
        }
 
        return 0;