/* Add port to mirror (only front ports) */
 static void sparx5_mirror_port_add(struct sparx5 *sparx5, u32 idx, u32 portno)
 {
-       u32 val, reg = portno;
+       u64 reg = portno;
+       u32 val;
 
-       reg = portno / BITS_PER_BYTE;
-       val = BIT(portno % BITS_PER_BYTE);
+       val = BIT(do_div(reg, 32));
 
        if (reg == 0)
                return spx5_rmw(val, val, sparx5, ANA_AC_PROBE_PORT_CFG(idx));
 /* Delete port from mirror (only front ports) */
 static void sparx5_mirror_port_del(struct sparx5 *sparx5, u32 idx, u32 portno)
 {
-       u32 val, reg = portno;
+       u64 reg = portno;
+       u32 val;
 
-       reg = portno / BITS_PER_BYTE;
-       val = BIT(portno % BITS_PER_BYTE);
+       val = BIT(do_div(reg, 32));
 
        if (reg == 0)
                return spx5_rmw(0, val, sparx5, ANA_AC_PROBE_PORT_CFG(idx));