]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
mlxsw: spectrum_buffers: Use defines for pool indices
authorIdo Schimmel <idosch@mellanox.com>
Mon, 22 Apr 2019 12:08:42 +0000 (12:08 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 23 Apr 2019 05:09:32 +0000 (22:09 -0700)
The pool indices are currently hard coded throughout the code, which
makes the code hard to follow and extend.

Overcome this by using defines for the pool indices.

Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Reviewed-by: Petr Machata <petrm@mellanox.com>
Acked-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlxsw/spectrum_buffers.c

index 3329f70377461d3e4c7239679b28fc50242608f0..28f44116ad86e19fee54a313df9cc77a9a51964f 100644 (file)
@@ -49,6 +49,11 @@ struct mlxsw_sp_sb_pool_des {
        u8 pool;
 };
 
+#define MLXSW_SP_SB_POOL_ING           0
+#define MLXSW_SP_SB_POOL_ING_MNG       3
+#define MLXSW_SP_SB_POOL_EGR           4
+#define MLXSW_SP_SB_POOL_EGR_MC                8
+
 /* Order ingress pools before egress pools. */
 static const struct mlxsw_sp_sb_pool_des mlxsw_sp1_sb_pool_dess[] = {
        {MLXSW_REG_SBXX_DIR_INGRESS, 0},
@@ -465,83 +470,104 @@ static int mlxsw_sp_sb_prs_init(struct mlxsw_sp *mlxsw_sp,
                .pool_index = _pool,                    \
        }
 
+#define MLXSW_SP_SB_CM_ING(_min_buff, _max_buff)       \
+       {                                               \
+               .min_buff = _min_buff,                  \
+               .max_buff = _max_buff,                  \
+               .pool_index = MLXSW_SP_SB_POOL_ING,     \
+       }
+
+#define MLXSW_SP_SB_CM_EGR(_min_buff, _max_buff)       \
+       {                                               \
+               .min_buff = _min_buff,                  \
+               .max_buff = _max_buff,                  \
+               .pool_index = MLXSW_SP_SB_POOL_EGR,     \
+       }
+
+#define MLXSW_SP_SB_CM_EGR_MC(_min_buff, _max_buff)    \
+       {                                               \
+               .min_buff = _min_buff,                  \
+               .max_buff = _max_buff,                  \
+               .pool_index = MLXSW_SP_SB_POOL_EGR_MC,  \
+       }
+
 static const struct mlxsw_sp_sb_cm mlxsw_sp1_sb_cms_ingress[] = {
-       MLXSW_SP_SB_CM(10000, 8, 0),
-       MLXSW_SP_SB_CM(0, MLXSW_REG_SBXX_DYN_MAX_BUFF_MIN, 0),
-       MLXSW_SP_SB_CM(0, MLXSW_REG_SBXX_DYN_MAX_BUFF_MIN, 0),
-       MLXSW_SP_SB_CM(0, MLXSW_REG_SBXX_DYN_MAX_BUFF_MIN, 0),
-       MLXSW_SP_SB_CM(0, MLXSW_REG_SBXX_DYN_MAX_BUFF_MIN, 0),
-       MLXSW_SP_SB_CM(0, MLXSW_REG_SBXX_DYN_MAX_BUFF_MIN, 0),
-       MLXSW_SP_SB_CM(0, MLXSW_REG_SBXX_DYN_MAX_BUFF_MIN, 0),
-       MLXSW_SP_SB_CM(0, MLXSW_REG_SBXX_DYN_MAX_BUFF_MIN, 0),
-       MLXSW_SP_SB_CM(0, 0, 0), /* dummy, this PG does not exist */
-       MLXSW_SP_SB_CM(20000, 1, 3),
+       MLXSW_SP_SB_CM_ING(10000, 8),
+       MLXSW_SP_SB_CM_ING(0, MLXSW_REG_SBXX_DYN_MAX_BUFF_MIN),
+       MLXSW_SP_SB_CM_ING(0, MLXSW_REG_SBXX_DYN_MAX_BUFF_MIN),
+       MLXSW_SP_SB_CM_ING(0, MLXSW_REG_SBXX_DYN_MAX_BUFF_MIN),
+       MLXSW_SP_SB_CM_ING(0, MLXSW_REG_SBXX_DYN_MAX_BUFF_MIN),
+       MLXSW_SP_SB_CM_ING(0, MLXSW_REG_SBXX_DYN_MAX_BUFF_MIN),
+       MLXSW_SP_SB_CM_ING(0, MLXSW_REG_SBXX_DYN_MAX_BUFF_MIN),
+       MLXSW_SP_SB_CM_ING(0, MLXSW_REG_SBXX_DYN_MAX_BUFF_MIN),
+       MLXSW_SP_SB_CM_ING(0, 0), /* dummy, this PG does not exist */
+       MLXSW_SP_SB_CM(20000, 1, MLXSW_SP_SB_POOL_ING_MNG),
 };
 
 static const struct mlxsw_sp_sb_cm mlxsw_sp2_sb_cms_ingress[] = {
-       MLXSW_SP_SB_CM(0, 7, 0),
-       MLXSW_SP_SB_CM(0, MLXSW_REG_SBXX_DYN_MAX_BUFF_MIN, 0),
-       MLXSW_SP_SB_CM(0, MLXSW_REG_SBXX_DYN_MAX_BUFF_MIN, 0),
-       MLXSW_SP_SB_CM(0, MLXSW_REG_SBXX_DYN_MAX_BUFF_MIN, 0),
-       MLXSW_SP_SB_CM(0, MLXSW_REG_SBXX_DYN_MAX_BUFF_MIN, 0),
-       MLXSW_SP_SB_CM(0, MLXSW_REG_SBXX_DYN_MAX_BUFF_MIN, 0),
-       MLXSW_SP_SB_CM(0, MLXSW_REG_SBXX_DYN_MAX_BUFF_MIN, 0),
-       MLXSW_SP_SB_CM(0, MLXSW_REG_SBXX_DYN_MAX_BUFF_MIN, 0),
-       MLXSW_SP_SB_CM(0, 0, 0), /* dummy, this PG does not exist */
-       MLXSW_SP_SB_CM(20000, 1, 3),
+       MLXSW_SP_SB_CM_ING(0, 7),
+       MLXSW_SP_SB_CM_ING(0, MLXSW_REG_SBXX_DYN_MAX_BUFF_MIN),
+       MLXSW_SP_SB_CM_ING(0, MLXSW_REG_SBXX_DYN_MAX_BUFF_MIN),
+       MLXSW_SP_SB_CM_ING(0, MLXSW_REG_SBXX_DYN_MAX_BUFF_MIN),
+       MLXSW_SP_SB_CM_ING(0, MLXSW_REG_SBXX_DYN_MAX_BUFF_MIN),
+       MLXSW_SP_SB_CM_ING(0, MLXSW_REG_SBXX_DYN_MAX_BUFF_MIN),
+       MLXSW_SP_SB_CM_ING(0, MLXSW_REG_SBXX_DYN_MAX_BUFF_MIN),
+       MLXSW_SP_SB_CM_ING(0, MLXSW_REG_SBXX_DYN_MAX_BUFF_MIN),
+       MLXSW_SP_SB_CM_ING(0, 0), /* dummy, this PG does not exist */
+       MLXSW_SP_SB_CM(20000, 1, MLXSW_SP_SB_POOL_ING_MNG),
 };
 
 static const struct mlxsw_sp_sb_cm mlxsw_sp1_sb_cms_egress[] = {
-       MLXSW_SP_SB_CM(1500, 9, 4),
-       MLXSW_SP_SB_CM(1500, 9, 4),
-       MLXSW_SP_SB_CM(1500, 9, 4),
-       MLXSW_SP_SB_CM(1500, 9, 4),
-       MLXSW_SP_SB_CM(1500, 9, 4),
-       MLXSW_SP_SB_CM(1500, 9, 4),
-       MLXSW_SP_SB_CM(1500, 9, 4),
-       MLXSW_SP_SB_CM(1500, 9, 4),
-       MLXSW_SP_SB_CM(0, MLXSW_SP_SB_INFI, 8),
-       MLXSW_SP_SB_CM(0, MLXSW_SP_SB_INFI, 8),
-       MLXSW_SP_SB_CM(0, MLXSW_SP_SB_INFI, 8),
-       MLXSW_SP_SB_CM(0, MLXSW_SP_SB_INFI, 8),
-       MLXSW_SP_SB_CM(0, MLXSW_SP_SB_INFI, 8),
-       MLXSW_SP_SB_CM(0, MLXSW_SP_SB_INFI, 8),
-       MLXSW_SP_SB_CM(0, MLXSW_SP_SB_INFI, 8),
-       MLXSW_SP_SB_CM(0, MLXSW_SP_SB_INFI, 8),
-       MLXSW_SP_SB_CM(1, 0xff, 4),
+       MLXSW_SP_SB_CM_EGR(1500, 9),
+       MLXSW_SP_SB_CM_EGR(1500, 9),
+       MLXSW_SP_SB_CM_EGR(1500, 9),
+       MLXSW_SP_SB_CM_EGR(1500, 9),
+       MLXSW_SP_SB_CM_EGR(1500, 9),
+       MLXSW_SP_SB_CM_EGR(1500, 9),
+       MLXSW_SP_SB_CM_EGR(1500, 9),
+       MLXSW_SP_SB_CM_EGR(1500, 9),
+       MLXSW_SP_SB_CM_EGR_MC(0, MLXSW_SP_SB_INFI),
+       MLXSW_SP_SB_CM_EGR_MC(0, MLXSW_SP_SB_INFI),
+       MLXSW_SP_SB_CM_EGR_MC(0, MLXSW_SP_SB_INFI),
+       MLXSW_SP_SB_CM_EGR_MC(0, MLXSW_SP_SB_INFI),
+       MLXSW_SP_SB_CM_EGR_MC(0, MLXSW_SP_SB_INFI),
+       MLXSW_SP_SB_CM_EGR_MC(0, MLXSW_SP_SB_INFI),
+       MLXSW_SP_SB_CM_EGR_MC(0, MLXSW_SP_SB_INFI),
+       MLXSW_SP_SB_CM_EGR_MC(0, MLXSW_SP_SB_INFI),
+       MLXSW_SP_SB_CM_EGR(1, 0xff),
 };
 
 static const struct mlxsw_sp_sb_cm mlxsw_sp2_sb_cms_egress[] = {
-       MLXSW_SP_SB_CM(0, 7, 4),
-       MLXSW_SP_SB_CM(0, 7, 4),
-       MLXSW_SP_SB_CM(0, 7, 4),
-       MLXSW_SP_SB_CM(0, 7, 4),
-       MLXSW_SP_SB_CM(0, 7, 4),
-       MLXSW_SP_SB_CM(0, 7, 4),
-       MLXSW_SP_SB_CM(0, 7, 4),
-       MLXSW_SP_SB_CM(0, 7, 4),
-       MLXSW_SP_SB_CM(0, MLXSW_SP_SB_INFI, 8),
-       MLXSW_SP_SB_CM(0, MLXSW_SP_SB_INFI, 8),
-       MLXSW_SP_SB_CM(0, MLXSW_SP_SB_INFI, 8),
-       MLXSW_SP_SB_CM(0, MLXSW_SP_SB_INFI, 8),
-       MLXSW_SP_SB_CM(0, MLXSW_SP_SB_INFI, 8),
-       MLXSW_SP_SB_CM(0, MLXSW_SP_SB_INFI, 8),
-       MLXSW_SP_SB_CM(0, MLXSW_SP_SB_INFI, 8),
-       MLXSW_SP_SB_CM(0, MLXSW_SP_SB_INFI, 8),
-       MLXSW_SP_SB_CM(1, 0xff, 4),
+       MLXSW_SP_SB_CM_EGR(0, 7),
+       MLXSW_SP_SB_CM_EGR(0, 7),
+       MLXSW_SP_SB_CM_EGR(0, 7),
+       MLXSW_SP_SB_CM_EGR(0, 7),
+       MLXSW_SP_SB_CM_EGR(0, 7),
+       MLXSW_SP_SB_CM_EGR(0, 7),
+       MLXSW_SP_SB_CM_EGR(0, 7),
+       MLXSW_SP_SB_CM_EGR(0, 7),
+       MLXSW_SP_SB_CM_EGR_MC(0, MLXSW_SP_SB_INFI),
+       MLXSW_SP_SB_CM_EGR_MC(0, MLXSW_SP_SB_INFI),
+       MLXSW_SP_SB_CM_EGR_MC(0, MLXSW_SP_SB_INFI),
+       MLXSW_SP_SB_CM_EGR_MC(0, MLXSW_SP_SB_INFI),
+       MLXSW_SP_SB_CM_EGR_MC(0, MLXSW_SP_SB_INFI),
+       MLXSW_SP_SB_CM_EGR_MC(0, MLXSW_SP_SB_INFI),
+       MLXSW_SP_SB_CM_EGR_MC(0, MLXSW_SP_SB_INFI),
+       MLXSW_SP_SB_CM_EGR_MC(0, MLXSW_SP_SB_INFI),
+       MLXSW_SP_SB_CM_EGR(1, 0xff),
 };
 
-#define MLXSW_SP_CPU_PORT_SB_CM MLXSW_SP_SB_CM(0, 0, 4)
+#define MLXSW_SP_CPU_PORT_SB_CM MLXSW_SP_SB_CM(0, 0, MLXSW_SP_SB_POOL_EGR)
 
 static const struct mlxsw_sp_sb_cm mlxsw_sp_cpu_port_sb_cms[] = {
        MLXSW_SP_CPU_PORT_SB_CM,
-       MLXSW_SP_SB_CM(MLXSW_PORT_MAX_MTU, 0, 4),
-       MLXSW_SP_SB_CM(MLXSW_PORT_MAX_MTU, 0, 4),
-       MLXSW_SP_SB_CM(MLXSW_PORT_MAX_MTU, 0, 4),
-       MLXSW_SP_SB_CM(MLXSW_PORT_MAX_MTU, 0, 4),
-       MLXSW_SP_SB_CM(MLXSW_PORT_MAX_MTU, 0, 4),
+       MLXSW_SP_SB_CM(MLXSW_PORT_MAX_MTU, 0, MLXSW_SP_SB_POOL_EGR),
+       MLXSW_SP_SB_CM(MLXSW_PORT_MAX_MTU, 0, MLXSW_SP_SB_POOL_EGR),
+       MLXSW_SP_SB_CM(MLXSW_PORT_MAX_MTU, 0, MLXSW_SP_SB_POOL_EGR),
+       MLXSW_SP_SB_CM(MLXSW_PORT_MAX_MTU, 0, MLXSW_SP_SB_POOL_EGR),
+       MLXSW_SP_SB_CM(MLXSW_PORT_MAX_MTU, 0, MLXSW_SP_SB_POOL_EGR),
        MLXSW_SP_CPU_PORT_SB_CM,
-       MLXSW_SP_SB_CM(MLXSW_PORT_MAX_MTU, 0, 4),
+       MLXSW_SP_SB_CM(MLXSW_PORT_MAX_MTU, 0, MLXSW_SP_SB_POOL_EGR),
        MLXSW_SP_CPU_PORT_SB_CM,
        MLXSW_SP_CPU_PORT_SB_CM,
        MLXSW_SP_CPU_PORT_SB_CM,
@@ -700,29 +726,29 @@ static int mlxsw_sp_port_sb_pms_init(struct mlxsw_sp_port *mlxsw_sp_port)
        return 0;
 }
 
-#define MLXSW_SP_SB_MM(_min_buff, _max_buff, _pool)    \
+#define MLXSW_SP_SB_MM(_min_buff, _max_buff)           \
        {                                               \
                .min_buff = _min_buff,                  \
                .max_buff = _max_buff,                  \
-               .pool_index = _pool,                    \
+               .pool_index = MLXSW_SP_SB_POOL_EGR,     \
        }
 
 static const struct mlxsw_sp_sb_mm mlxsw_sp_sb_mms[] = {
-       MLXSW_SP_SB_MM(0, 6, 4),
-       MLXSW_SP_SB_MM(0, 6, 4),
-       MLXSW_SP_SB_MM(0, 6, 4),
-       MLXSW_SP_SB_MM(0, 6, 4),
-       MLXSW_SP_SB_MM(0, 6, 4),
-       MLXSW_SP_SB_MM(0, 6, 4),
-       MLXSW_SP_SB_MM(0, 6, 4),
-       MLXSW_SP_SB_MM(0, 6, 4),
-       MLXSW_SP_SB_MM(0, 6, 4),
-       MLXSW_SP_SB_MM(0, 6, 4),
-       MLXSW_SP_SB_MM(0, 6, 4),
-       MLXSW_SP_SB_MM(0, 6, 4),
-       MLXSW_SP_SB_MM(0, 6, 4),
-       MLXSW_SP_SB_MM(0, 6, 4),
-       MLXSW_SP_SB_MM(0, 6, 4),
+       MLXSW_SP_SB_MM(0, 6),
+       MLXSW_SP_SB_MM(0, 6),
+       MLXSW_SP_SB_MM(0, 6),
+       MLXSW_SP_SB_MM(0, 6),
+       MLXSW_SP_SB_MM(0, 6),
+       MLXSW_SP_SB_MM(0, 6),
+       MLXSW_SP_SB_MM(0, 6),
+       MLXSW_SP_SB_MM(0, 6),
+       MLXSW_SP_SB_MM(0, 6),
+       MLXSW_SP_SB_MM(0, 6),
+       MLXSW_SP_SB_MM(0, 6),
+       MLXSW_SP_SB_MM(0, 6),
+       MLXSW_SP_SB_MM(0, 6),
+       MLXSW_SP_SB_MM(0, 6),
+       MLXSW_SP_SB_MM(0, 6),
 };
 
 static int mlxsw_sp_sb_mms_init(struct mlxsw_sp *mlxsw_sp)