realtek: dsa: silence debug log noise
authorBjørn Mork <bjorn@mork.no>
Tue, 4 Feb 2025 07:43:58 +0000 (08:43 +0100)
committerSander Vanheule <sander@svanheule.net>
Tue, 25 Feb 2025 19:53:30 +0000 (20:53 +0100)
The log noise emmitted by this driver is overwhelming, even for developers
looking at specific issues.  Demoting to debug allows individual messages
to be dynamically enabled instead.

Signed-off-by: Bjørn Mork <bjorn@mork.no>
Link: https://github.com/openwrt/openwrt/pull/17950
Signed-off-by: Sander Vanheule <sander@svanheule.net>
target/linux/realtek/files-6.6/drivers/net/dsa/rtl83xx/rtl838x.c
target/linux/realtek/files-6.6/drivers/net/dsa/rtl83xx/rtl839x.c
target/linux/realtek/files-6.6/drivers/net/dsa/rtl83xx/rtl930x.c
target/linux/realtek/files-6.6/drivers/net/dsa/rtl83xx/rtl931x.c

index d93087f5b1aa6cb6b17e98e7747602841debccb4..f290e768de474d31455ac49d97b11747b24edf07 100644 (file)
@@ -654,7 +654,7 @@ static int rtl838x_eee_port_ability(struct rtl838x_switch_priv *priv,
 
 static void rtl838x_init_eee(struct rtl838x_switch_priv *priv, bool enable)
 {
-       pr_info("Setting up EEE, state: %d\n", enable);
+       pr_debug("Setting up EEE, state: %d\n", enable);
        sw_w32_mask(0x4, 0, RTL838X_SMI_GLB_CTRL);
 
        /* Set timers for EEE */
@@ -859,7 +859,7 @@ static void rtl838x_write_pie_templated(u32 r[], struct pie_rule *pr, enum templ
                        data_m = pr->icmp_igmp_m;
                        break;
                default:
-                       pr_info("%s: unknown field %d\n", __func__, field_type);
+                       pr_debug("%s: unknown field %d\n", __func__, field_type);
                        continue;
                }
                if (!(i % 2)) {
@@ -1012,7 +1012,7 @@ static void rtl838x_read_pie_templated(u32 r[], struct pie_rule *pr, enum templa
                        pr->icmp_igmp_m = data_m;
                        break;
                default:
-                       pr_info("%s: unknown field %d\n", __func__, field_type);
+                       pr_debug("%s: unknown field %d\n", __func__, field_type);
                }
        }
 }
@@ -1292,24 +1292,24 @@ static void rtl838x_read_pie_action(u32 r[],  struct pie_rule *pr)
 
 static void rtl838x_pie_rule_dump_raw(u32 r[])
 {
-       pr_info("Raw IACL table entry:\n");
-       pr_info("Match  : %08x %08x %08x %08x %08x %08x\n", r[0], r[1], r[2], r[3], r[4], r[5]);
-       pr_info("Fixed  : %08x\n", r[6]);
-       pr_info("Match M: %08x %08x %08x %08x %08x %08x\n", r[7], r[8], r[9], r[10], r[11], r[12]);
-       pr_info("Fixed M: %08x\n", r[13]);
-       pr_info("AIF    : %08x %08x %08x\n", r[14], r[15], r[16]);
-       pr_info("Sel    : %08x\n", r[17]);
+       pr_debug("Raw IACL table entry:\n");
+       pr_debug("Match  : %08x %08x %08x %08x %08x %08x\n", r[0], r[1], r[2], r[3], r[4], r[5]);
+       pr_debug("Fixed  : %08x\n", r[6]);
+       pr_debug("Match M: %08x %08x %08x %08x %08x %08x\n", r[7], r[8], r[9], r[10], r[11], r[12]);
+       pr_debug("Fixed M: %08x\n", r[13]);
+       pr_debug("AIF    : %08x %08x %08x\n", r[14], r[15], r[16]);
+       pr_debug("Sel    : %08x\n", r[17]);
 }
 
 // Currently not used
 // static void rtl838x_pie_rule_dump(struct  pie_rule *pr)
 // {
-//     pr_info("Drop: %d, fwd: %d, ovid: %d, ivid: %d, flt: %d, log: %d, rmk: %d, meter: %d tagst: %d, mir: %d, nopri: %d, cpupri: %d, otpid: %d, itpid: %d, shape: %d\n",
+//     pr_debug("Drop: %d, fwd: %d, ovid: %d, ivid: %d, flt: %d, log: %d, rmk: %d, meter: %d tagst: %d, mir: %d, nopri: %d, cpupri: %d, otpid: %d, itpid: %d, shape: %d\n",
 //             pr->drop, pr->fwd_sel, pr->ovid_sel, pr->ivid_sel, pr->flt_sel, pr->log_sel, pr->rmk_sel, pr->log_sel, pr->tagst_sel, pr->mir_sel, pr->nopri_sel,
 //             pr->cpupri_sel, pr->otpid_sel, pr->itpid_sel, pr->shaper_sel);
 //     if (pr->fwd_sel)
-//             pr_info("FWD: %08x\n", pr->fwd_data);
-//     pr_info("TID: %x, %x\n", pr->tid, pr->tid_m);
+//             pr_debug("FWD: %08x\n", pr->fwd_data);
+//     pr_debug("TID: %x, %x\n", pr->tid, pr->tid_m);
 // }
 
 static int rtl838x_pie_rule_read(struct rtl838x_switch_priv *priv, int idx, struct  pie_rule *pr)
@@ -1331,7 +1331,7 @@ static int rtl838x_pie_rule_read(struct rtl838x_switch_priv *priv, int idx, stru
        if (!pr->valid)
                return 0;
 
-       pr_info("%s: template_selectors %08x, tid: %d\n", __func__, t_select, pr->tid);
+       pr_debug("%s: template_selectors %08x, tid: %d\n", __func__, t_select, pr->tid);
        rtl838x_pie_rule_dump_raw(r);
 
        rtl838x_read_pie_templated(r, pr, fixed_templates[(t_select >> (pr->tid * 3)) & 0x7]);
@@ -1783,7 +1783,7 @@ irqreturn_t rtl838x_switch_irq(int irq, void *dev_id)
 
        /* Clear status */
        sw_w32(ports, RTL838X_ISR_PORT_LINK_STS_CHG);
-       pr_info("RTL8380 Link change: status: %x, ports %x\n", status, ports);
+       pr_debug("RTL8380 Link change: status: %x, ports %x\n", status, ports);
 
        for (int i = 0; i < 28; i++) {
                if (ports & BIT(i)) {
@@ -2001,7 +2001,7 @@ void rtl838x_vlan_profile_dump(int profile)
 
        p = sw_r32(RTL838X_VLAN_PROFILE(profile));
 
-       pr_info("VLAN profile %d: L2 learning: %d, UNKN L2MC FLD PMSK %d, \
+       pr_debug("VLAN profile %d: L2 learning: %d, UNKN L2MC FLD PMSK %d, \
                UNKN IPMC FLD PMSK %d, UNKN IPv6MC FLD PMSK: %d",
                profile, p & 1, (p >> 1) & 0x1ff, (p >> 10) & 0x1ff, (p >> 19) & 0x1ff);
 }
index ecf291f866a94010c23b5fd3b16e637691f8d1cf..09422f68e2bbd450395f83f514bbd45c22bbf40e 100644 (file)
@@ -362,7 +362,7 @@ static void rtl839x_fill_l2_entry(u32 r[], struct rtl838x_l2_entry *e)
                e->valid = true;
                e->type = IP6_MULTICAST;
        }
-       /* pr_info("%s: vid %d, rvid: %d\n", __func__, e->vid, e->rvid); */
+       /* pr_debug("%s: vid %d, rvid: %d\n", __func__, e->vid, e->rvid); */
 }
 
 /* Fills the 3 SoC table registers r[] with the information in the rtl838x_l2_entry */
@@ -814,7 +814,7 @@ void rtl8390_get_version(struct rtl838x_switch_priv *priv)
        model = sw_r32(RTL839X_MODEL_NAME_INFO);
        priv->version = RTL8390_VERSION_A + ((model & 0x3f) >> 1);
 
-       pr_info("RTL839X Chip-Info: %x, version %c\n", info, priv->version);
+       pr_debug("RTL839X Chip-Info: %x, version %c\n", info, priv->version);
 }
 
 void rtl839x_vlan_profile_dump(int profile)
@@ -827,11 +827,11 @@ void rtl839x_vlan_profile_dump(int profile)
        p[0] = sw_r32(RTL839X_VLAN_PROFILE(profile));
        p[1] = sw_r32(RTL839X_VLAN_PROFILE(profile) + 4);
 
-       pr_info("VLAN profile %d: L2 learning: %d, UNKN L2MC FLD PMSK %d, \
+       pr_debug("VLAN profile %d: L2 learning: %d, UNKN L2MC FLD PMSK %d, \
                UNKN IPMC FLD PMSK %d, UNKN IPv6MC FLD PMSK: %d",
                profile, p[1] & 1, (p[1] >> 1) & 0xfff, (p[1] >> 13) & 0xfff,
                (p[0]) & 0xfff);
-       pr_info("VLAN profile %d: raw %08x, %08x\n", profile, p[0], p[1]);
+       pr_debug("VLAN profile %d: raw %08x, %08x\n", profile, p[0], p[1]);
 }
 
 static void rtl839x_stp_get(struct rtl838x_switch_priv *priv, u16 msti, u32 port_state[])
@@ -899,7 +899,7 @@ int rtl839x_eee_port_ability(struct rtl838x_switch_priv *priv, struct ethtool_ee
                e->advertised |= ADVERTISED_1000baseT_Full;
 
        a = rtl839x_get_port_reg_le(RTL839X_MAC_EEE_ABLTY);
-       pr_info("Link partner: %016llx\n", a);
+       pr_debug("Link partner: %016llx\n", a);
        if (rtl839x_get_port_reg_le(RTL839X_MAC_EEE_ABLTY) & BIT_ULL(port)) {
                e->lp_advertised = ADVERTISED_100baseT_Full;
                e->lp_advertised |= ADVERTISED_1000baseT_Full;
@@ -911,7 +911,7 @@ int rtl839x_eee_port_ability(struct rtl838x_switch_priv *priv, struct ethtool_ee
 
 static void rtl839x_init_eee(struct rtl838x_switch_priv *priv, bool enable)
 {
-       pr_info("Setting up EEE, state: %d\n", enable);
+       pr_debug("Setting up EEE, state: %d\n", enable);
 
        /* Set wake timer for TX and pause timer both to 0x21 */
        sw_w32_mask(0xff << 20| 0xff, 0x21 << 20| 0x21, RTL839X_EEE_TX_TIMER_GELITE_CTRL);
@@ -1105,7 +1105,7 @@ static void rtl839x_write_pie_templated(u32 r[], struct pie_rule *pr, enum templ
                        data_m = pr->icmp_igmp_m;
                        break;
                default:
-                       pr_info("%s: unknown field %d\n", __func__, field_type);
+                       pr_debug("%s: unknown field %d\n", __func__, field_type);
                }
 
                /* On the RTL8390, the mask fields are not word aligned! */
@@ -1259,7 +1259,7 @@ void rtl839x_read_pie_templated(u32 r[], struct pie_rule *pr, enum template_fiel
                        pr->icmp_igmp_m = data_m;
                        break;
                default:
-                       pr_info("%s: unknown field %d\n", __func__, field_type);
+                       pr_debug("%s: unknown field %d\n", __func__, field_type);
                }
        }
 }
@@ -1402,27 +1402,27 @@ static void rtl839x_read_pie_action(u32 r[],  struct pie_rule *pr)
 
 void rtl839x_pie_rule_dump_raw(u32 r[])
 {
-       pr_info("Raw IACL table entry:\n");
-       pr_info("Match  : %08x %08x %08x %08x %08x %08x\n", r[0], r[1], r[2], r[3], r[4], r[5]);
-       pr_info("Fixed  : %06x\n", r[6] >> 8);
-       pr_info("Match M: %08x %08x %08x %08x %08x %08x\n",
+       pr_debug("Raw IACL table entry:\n");
+       pr_debug("Match  : %08x %08x %08x %08x %08x %08x\n", r[0], r[1], r[2], r[3], r[4], r[5]);
+       pr_debug("Fixed  : %06x\n", r[6] >> 8);
+       pr_debug("Match M: %08x %08x %08x %08x %08x %08x\n",
                (r[6] << 24) | (r[7] >> 8), (r[7] << 24) | (r[8] >> 8), (r[8] << 24) | (r[9] >> 8),
                (r[9] << 24) | (r[10] >> 8), (r[10] << 24) | (r[11] >> 8),
                (r[11] << 24) | (r[12] >> 8));
-       pr_info("R[13]:   %08x\n", r[13]);
-       pr_info("Fixed M: %06x\n", ((r[12] << 16) | (r[13] >> 16)) & 0xffffff);
-       pr_info("Valid / not / and1 / and2 : %1x\n", (r[13] >> 12) & 0xf);
-       pr_info("r 13-16: %08x %08x %08x %08x\n", r[13], r[14], r[15], r[16]);
+       pr_debug("R[13]:   %08x\n", r[13]);
+       pr_debug("Fixed M: %06x\n", ((r[12] << 16) | (r[13] >> 16)) & 0xffffff);
+       pr_debug("Valid / not / and1 / and2 : %1x\n", (r[13] >> 12) & 0xf);
+       pr_debug("r 13-16: %08x %08x %08x %08x\n", r[13], r[14], r[15], r[16]);
 }
 
 void rtl839x_pie_rule_dump(struct  pie_rule *pr)
 {
-       pr_info("Drop: %d, fwd: %d, ovid: %d, ivid: %d, flt: %d, log: %d, rmk: %d, meter: %d tagst: %d, mir: %d, nopri: %d, cpupri: %d, otpid: %d, itpid: %d, shape: %d\n",
+       pr_debug("Drop: %d, fwd: %d, ovid: %d, ivid: %d, flt: %d, log: %d, rmk: %d, meter: %d tagst: %d, mir: %d, nopri: %d, cpupri: %d, otpid: %d, itpid: %d, shape: %d\n",
                pr->drop, pr->fwd_sel, pr->ovid_sel, pr->ivid_sel, pr->flt_sel, pr->log_sel, pr->rmk_sel, pr->log_sel, pr->tagst_sel, pr->mir_sel, pr->nopri_sel,
                pr->cpupri_sel, pr->otpid_sel, pr->itpid_sel, pr->shaper_sel);
        if (pr->fwd_sel)
-               pr_info("FWD: %08x\n", pr->fwd_data);
-       pr_info("TID: %x, %x\n", pr->tid, pr->tid_m);
+               pr_debug("FWD: %08x\n", pr->fwd_data);
+       pr_debug("TID: %x, %x\n", pr->tid, pr->tid_m);
 }
 
 static int rtl839x_pie_rule_read(struct rtl838x_switch_priv *priv, int idx, struct  pie_rule *pr)
index 3524021e2f762375971321a0322f80cb15ad28dc..d45d5911a53ea05d579c71a57483481d74266771 100644 (file)
@@ -233,14 +233,14 @@ void rtl930x_vlan_profile_dump(int profile)
        p[3] = sw_r32(RTL930X_VLAN_PROFILE_SET(profile) + 12) & 0x1FFFFFFF;
        p[4] = sw_r32(RTL930X_VLAN_PROFILE_SET(profile) + 16) & 0x1FFFFFFF;
 
-       pr_info("VLAN %d: L2 learn: %d; Unknown MC PMasks: L2 %0x, IPv4 %0x, IPv6: %0x",
+       pr_debug("VLAN %d: L2 learn: %d; Unknown MC PMasks: L2 %0x, IPv4 %0x, IPv6: %0x",
                profile, p[0] & (3 << 21), p[2], p[3], p[4]);
-       pr_info("  Routing enabled: IPv4 UC %c, IPv6 UC %c, IPv4 MC %c, IPv6 MC %c\n",
+       pr_debug("  Routing enabled: IPv4 UC %c, IPv6 UC %c, IPv4 MC %c, IPv6 MC %c\n",
                p[0] & BIT(17) ? 'y' : 'n', p[0] & BIT(16) ? 'y' : 'n',
                p[0] & BIT(13) ? 'y' : 'n', p[0] & BIT(12) ? 'y' : 'n');
-       pr_info("  Bridge enabled: IPv4 MC %c, IPv6 MC %c,\n",
+       pr_debug("  Bridge enabled: IPv4 MC %c, IPv6 MC %c,\n",
                p[0] & BIT(15) ? 'y' : 'n', p[0] & BIT(14) ? 'y' : 'n');
-       pr_info("VLAN profile %d: raw %08x %08x %08x %08x %08x\n",
+       pr_debug("VLAN profile %d: raw %08x %08x %08x %08x %08x\n",
                profile, p[0], p[1], p[2], p[3], p[4]);
 }
 
@@ -267,7 +267,7 @@ static void rtl930x_vlan_profile_setup(int profile)
 {
        u32 p[5];
 
-       pr_info("In %s\n", __func__);
+       pr_debug("In %s\n", __func__);
        p[0] = sw_r32(RTL930X_VLAN_PROFILE_SET(profile));
        p[1] = sw_r32(RTL930X_VLAN_PROFILE_SET(profile) + 4);
 
@@ -684,15 +684,15 @@ void rtl9300_dump_debug(void)
        u16 r = RTL930X_STAT_PRVTE_DROP_COUNTER0;
 
        for (int i = 0; i < 10; i ++) {
-               pr_info("# %d %08x %08x %08x %08x %08x %08x %08x %08x\n", i * 8,
+               pr_debug("# %d %08x %08x %08x %08x %08x %08x %08x %08x\n", i * 8,
                        sw_r32(r), sw_r32(r + 4), sw_r32(r + 8), sw_r32(r + 12),
                        sw_r32(r + 16), sw_r32(r + 20), sw_r32(r + 24), sw_r32(r + 28));
                r += 32;
        }
-       pr_info("# %08x %08x %08x %08x %08x\n",
+       pr_debug("# %08x %08x %08x %08x %08x\n",
                sw_r32(r), sw_r32(r + 4), sw_r32(r + 8), sw_r32(r + 12), sw_r32(r + 16));
        rtl930x_print_matrix();
-       pr_info("RTL930X_L2_PORT_SABLK_CTRL: %08x, RTL930X_L2_PORT_DABLK_CTRL %08x\n",
+       pr_debug("RTL930X_L2_PORT_SABLK_CTRL: %08x, RTL930X_L2_PORT_DABLK_CTRL %08x\n",
                sw_r32(RTL930X_L2_PORT_SABLK_CTRL), sw_r32(RTL930X_L2_PORT_DABLK_CTRL)
 
        );
@@ -921,13 +921,13 @@ int rtl930x_eee_port_ability(struct rtl838x_switch_priv *priv, struct ethtool_ee
        if (port >= 26)
                return -ENOTSUPP;
 
-       pr_info("In %s, port %d\n", __func__, port);
+       pr_debug("In %s, port %d\n", __func__, port);
        link = sw_r32(RTL930X_MAC_LINK_STS);
        link = sw_r32(RTL930X_MAC_LINK_STS);
        if (!(link & BIT(port)))
                return 0;
 
-       pr_info("Setting advertised\n");
+       pr_debug("Setting advertised\n");
        if (sw_r32(rtl930x_mac_force_mode_ctrl(port)) & BIT(10))
                e->advertised |= ADVERTISED_100baseT_Full;
 
@@ -935,7 +935,7 @@ int rtl930x_eee_port_ability(struct rtl838x_switch_priv *priv, struct ethtool_ee
                e->advertised |= ADVERTISED_1000baseT_Full;
 
        if (priv->ports[port].is2G5 && sw_r32(rtl930x_mac_force_mode_ctrl(port)) & BIT(13)) {
-               pr_info("ADVERTISING 2.5G EEE\n");
+               pr_debug("ADVERTISING 2.5G EEE\n");
                e->advertised |= ADVERTISED_2500baseX_Full;
        }
 
@@ -944,7 +944,7 @@ int rtl930x_eee_port_ability(struct rtl838x_switch_priv *priv, struct ethtool_ee
 
        a = sw_r32(RTL930X_MAC_EEE_ABLTY);
        a = sw_r32(RTL930X_MAC_EEE_ABLTY);
-       pr_info("Link partner: %08x\n", a);
+       pr_debug("Link partner: %08x\n", a);
        if (a & BIT(port)) {
                e->lp_advertised = ADVERTISED_100baseT_Full;
                e->lp_advertised |= ADVERTISED_1000baseT_Full;
@@ -957,14 +957,14 @@ int rtl930x_eee_port_ability(struct rtl838x_switch_priv *priv, struct ethtool_ee
        /* Read 2x to clear latched state */
        a = sw_r32(RTL930X_EEEP_PORT_CTRL(port));
        a = sw_r32(RTL930X_EEEP_PORT_CTRL(port));
-       pr_info("%s RTL930X_EEEP_PORT_CTRL: %08x\n", __func__, a);
+       pr_debug("%s RTL930X_EEEP_PORT_CTRL: %08x\n", __func__, a);
 
        return 0;
 }
 
 static void rtl930x_init_eee(struct rtl838x_switch_priv *priv, bool enable)
 {
-       pr_info("Setting up EEE, state: %d\n", enable);
+       pr_debug("Setting up EEE, state: %d\n", enable);
 
        /* Setup EEE on all ports */
        for (int i = 0; i < priv->cpu_port; i++) {
@@ -1079,13 +1079,13 @@ static void rtl930x_route_read(int idx, struct rtl83xx_route *rt)
        host_route = !!(v & BIT(21));
        default_route = !!(v & BIT(20));
        rt->prefix_len = -1;
-       pr_info("%s: host route %d, default_route %d\n", __func__, host_route, default_route);
+       pr_debug("%s: host route %d, default_route %d\n", __func__, host_route, default_route);
 
        switch (rt->attr.type) {
        case 0: /* IPv4 Unicast route */
                rt->dst_ip = sw_r32(rtl_table_data(r, 4));
                ip4_m = sw_r32(rtl_table_data(r, 9));
-               pr_info("%s: Read ip4 mask: %08x\n", __func__, ip4_m);
+               pr_debug("%s: Read ip4 mask: %08x\n", __func__, ip4_m);
                rt->prefix_len = host_route ? 32 : -1;
                rt->prefix_len = (rt->prefix_len < 0 && default_route) ? 0 : -1;
                if (rt->prefix_len < 0)
@@ -1118,11 +1118,11 @@ static void rtl930x_route_read(int idx, struct rtl83xx_route *rt)
        rt->attr.dst_null = !!(v & BIT(4));
        rt->attr.qos_as = !!(v & BIT(3));
        rt->attr.qos_prio =  v & 0x7;
-       pr_info("%s: index %d is valid: %d\n", __func__, idx, rt->attr.valid);
-       pr_info("%s: next_hop: %d, hit: %d, action :%d, ttl_dec %d, ttl_check %d, dst_null %d\n",
+       pr_debug("%s: index %d is valid: %d\n", __func__, idx, rt->attr.valid);
+       pr_debug("%s: next_hop: %d, hit: %d, action :%d, ttl_dec %d, ttl_check %d, dst_null %d\n",
                __func__, rt->nh.id, rt->attr.hit, rt->attr.action,
                rt->attr.ttl_dec, rt->attr.ttl_check, rt->attr.dst_null);
-       pr_info("%s: GW: %pI4, prefix_len: %d\n", __func__, &rt->dst_ip, rt->prefix_len);
+       pr_debug("%s: GW: %pI4, prefix_len: %d\n", __func__, &rt->dst_ip, rt->prefix_len);
 out:
        rtl_table_release(r);
 }
@@ -1267,7 +1267,7 @@ static int rtl930x_route_lookup_hw(struct rtl83xx_route *rt)
                sw_w32(0, RTL930X_L3_HW_LU_KEY_IP_CTRL + 4);
                sw_w32(0, RTL930X_L3_HW_LU_KEY_IP_CTRL + 8);
                v = rt->dst_ip & ip4_m;
-               pr_info("%s: searching for %pI4\n", __func__, &v);
+               pr_debug("%s: searching for %pI4\n", __func__, &v);
                sw_w32(v, RTL930X_L3_HW_LU_KEY_IP_CTRL + 12);
        }
 
@@ -1279,7 +1279,7 @@ static int rtl930x_route_lookup_hw(struct rtl83xx_route *rt)
                v = sw_r32(RTL930X_L3_HW_LU_CTRL);
        } while (v & BIT(15));
 
-       pr_info("%s: found: %d, index: %d\n", __func__, !!(v & BIT(14)), v & 0x1ff);
+       pr_debug("%s: found: %d, index: %d\n", __func__, !!(v & BIT(14)), v & 0x1ff);
 
        /* Test if search successful (BIT 14 set) */
        if (v & BIT(14))
@@ -1460,7 +1460,7 @@ static void rtl930x_get_l3_nexthop(int idx, u16 *dmac_id, u16 *interface)
 //     }
 
 //     priv->intf_mtus[i] = mtu;
-//     pr_info("Writing MTU %d to slot %d\n", priv->intf_mtus[i], i);
+//     pr_debug("Writing MTU %d to slot %d\n", priv->intf_mtus[i], i);
 //     /* Set MTU-value of the slot TODO: distinguish between IPv4/IPv6 routes / slots */
 //     sw_w32_mask(0xffff << ((i % 2) * 16), priv->intf_mtus[i] << ((i % 2) * 16),
 //                 RTL930X_L3_IP_MTU_CTRL(i));
@@ -1484,7 +1484,7 @@ static void rtl930x_get_l3_nexthop(int idx, u16 *dmac_id, u16 *interface)
 //     intf->ip6_mtu = intf->ip6_mtu ? intf->ip6_mtu : intf->ip4_mtu;
 
 //     mtu_id = rtl930x_l3_mtu_add(priv, intf->ip4_mtu);
-//     pr_info("%s: added mtu %d with mtu-id %d\n", __func__, intf->ip4_mtu, mtu_id);
+//     pr_debug("%s: added mtu %d with mtu-id %d\n", __func__, intf->ip4_mtu, mtu_id);
 //     if (mtu_id < 0)
 //             return -ENOSPC;
 //     intf->ip4_mtu_id = mtu_id;
@@ -1518,11 +1518,11 @@ static void rtl930x_set_l3_nexthop(int idx, u16 dmac_id, u16 interface)
        /* Access L3_NEXTHOP table (3) via register RTL9300_TBL_1 */
        struct table_reg *r = rtl_table_get(RTL9300_TBL_1, 3);
 
-       pr_info("%s: Writing to L3_NEXTHOP table, index %d, dmac_id %d, interface %d\n",
+       pr_debug("%s: Writing to L3_NEXTHOP table, index %d, dmac_id %d, interface %d\n",
                __func__, idx, dmac_id, interface);
        sw_w32(((dmac_id & 0x7fff) << 7) | (interface & 0x7f), rtl_table_data(r, 0));
 
-       pr_info("%s: %08x\n", __func__, sw_r32(rtl_table_data(r,0)));
+       pr_debug("%s: %08x\n", __func__, sw_r32(rtl_table_data(r,0)));
        rtl_table_write(r, idx);
        rtl_table_release(r);
 }
@@ -1683,7 +1683,7 @@ static void rtl930x_write_pie_templated(u32 r[], struct pie_rule *pr, enum templ
                        pr_debug("TEMPLATE_FIELD_RANGE_CHK: not configured\n");
                        break;
                default:
-                       pr_info("%s: unknown field %d\n", __func__, field_type);
+                       pr_debug("%s: unknown field %d\n", __func__, field_type);
                }
 
                /* On the RTL9300, the mask fields are not word aligned! */
@@ -1826,22 +1826,22 @@ static void rtl930x_write_pie_action(u32 r[],  struct pie_rule *pr)
 
 void rtl930x_pie_rule_dump_raw(u32 r[])
 {
-       pr_info("Raw IACL table entry:\n");
-       pr_info("r 0 - 7: %08x %08x %08x %08x %08x %08x %08x %08x\n",
+       pr_debug("Raw IACL table entry:\n");
+       pr_debug("r 0 - 7: %08x %08x %08x %08x %08x %08x %08x %08x\n",
                r[0], r[1], r[2], r[3], r[4], r[5], r[6], r[7]);
-       pr_info("r 8 - 15: %08x %08x %08x %08x %08x %08x %08x %08x\n",
+       pr_debug("r 8 - 15: %08x %08x %08x %08x %08x %08x %08x %08x\n",
                r[8], r[9], r[10], r[11], r[12], r[13], r[14], r[15]);
-       pr_info("r 16 - 18: %08x %08x %08x\n", r[16], r[17], r[18]);
-       pr_info("Match  : %08x %08x %08x %08x %08x %08x\n", r[0], r[1], r[2], r[3], r[4], r[5]);
-       pr_info("Fixed  : %06x\n", r[6] >> 8);
-       pr_info("Match M: %08x %08x %08x %08x %08x %08x\n",
+       pr_debug("r 16 - 18: %08x %08x %08x\n", r[16], r[17], r[18]);
+       pr_debug("Match  : %08x %08x %08x %08x %08x %08x\n", r[0], r[1], r[2], r[3], r[4], r[5]);
+       pr_debug("Fixed  : %06x\n", r[6] >> 8);
+       pr_debug("Match M: %08x %08x %08x %08x %08x %08x\n",
                (r[6] << 24) | (r[7] >> 8), (r[7] << 24) | (r[8] >> 8), (r[8] << 24) | (r[9] >> 8),
                (r[9] << 24) | (r[10] >> 8), (r[10] << 24) | (r[11] >> 8),
                (r[11] << 24) | (r[12] >> 8));
-       pr_info("R[13]:   %08x\n", r[13]);
-       pr_info("Fixed M: %06x\n", ((r[12] << 16) | (r[13] >> 16)) & 0xffffff);
-       pr_info("Valid / not / and1 / and2 : %1x\n", (r[13] >> 12) & 0xf);
-       pr_info("r 13-16: %08x %08x %08x %08x\n", r[13], r[14], r[15], r[16]);
+       pr_debug("R[13]:   %08x\n", r[13]);
+       pr_debug("Fixed M: %06x\n", ((r[12] << 16) | (r[13] >> 16)) & 0xffffff);
+       pr_debug("Valid / not / and1 / and2 : %1x\n", (r[13] >> 12) & 0xf);
+       pr_debug("r 13-16: %08x %08x %08x %08x\n", r[13], r[14], r[15], r[16]);
 }
 
 static int rtl930x_pie_rule_write(struct rtl838x_switch_priv *priv, int idx, struct pie_rule *pr)
@@ -2018,7 +2018,7 @@ static void rtl930x_pie_init(struct rtl838x_switch_priv *priv)
 
        mutex_init(&priv->pie_mutex);
 
-       pr_info("%s\n", __func__);
+       pr_debug("%s\n", __func__);
        /* Enable ACL lookup on all ports, including CPU_PORT */
        for (int i = 0; i <= priv->cpu_port; i++)
                sw_w32(1, RTL930X_ACL_PORT_LOOKUP_CTRL(i));
@@ -2082,7 +2082,7 @@ static void rtl930x_set_l3_egress_intf(int idx, struct rtl838x_l3_intf *intf)
        sw_w32(u, rtl_table_data(r, 0));
        sw_w32(v, rtl_table_data(r, 1));
 
-       pr_info("%s writing to index %d: %08x %08x\n", __func__, idx, u, v);
+       pr_debug("%s writing to index %d: %08x %08x\n", __func__, idx, u, v);
        rtl_table_write(r, idx & 0x7f);
        rtl_table_release(r);
 }
@@ -2231,7 +2231,7 @@ int rtl930x_l3_setup(struct rtl838x_switch_priv *priv)
        sw_w32_mask(BIT(2), 0, RTL930X_L3_HOST_TBL_CTRL);  /* Algorithm selection 0 = 0 */
        sw_w32_mask(0, BIT(3), RTL930X_L3_HOST_TBL_CTRL);  /* Algorithm selection 1 = 1 */
 
-       pr_info("L3_IPUC_ROUTE_CTRL %08x, IPMC_ROUTE %08x, IP6UC_ROUTE %08x, IP6MC_ROUTE %08x\n",
+       pr_debug("L3_IPUC_ROUTE_CTRL %08x, IPMC_ROUTE %08x, IP6UC_ROUTE %08x, IP6MC_ROUTE %08x\n",
                sw_r32(RTL930X_L3_IPUC_ROUTE_CTRL), sw_r32(RTL930X_L3_IPMC_ROUTE_CTRL),
                sw_r32(RTL930X_L3_IP6UC_ROUTE_CTRL), sw_r32(RTL930X_L3_IP6MC_ROUTE_CTRL));
        sw_w32_mask(0, 1, RTL930X_L3_IPUC_ROUTE_CTRL);
@@ -2244,13 +2244,13 @@ int rtl930x_l3_setup(struct rtl838x_switch_priv *priv)
        sw_w32(0x00000501, RTL930X_L3_IPMC_ROUTE_CTRL);
        sw_w32(0x00012881, RTL930X_L3_IP6MC_ROUTE_CTRL);
 
-       pr_info("L3_IPUC_ROUTE_CTRL %08x, IPMC_ROUTE %08x, IP6UC_ROUTE %08x, IP6MC_ROUTE %08x\n",
+       pr_debug("L3_IPUC_ROUTE_CTRL %08x, IPMC_ROUTE %08x, IP6UC_ROUTE %08x, IP6MC_ROUTE %08x\n",
                sw_r32(RTL930X_L3_IPUC_ROUTE_CTRL), sw_r32(RTL930X_L3_IPMC_ROUTE_CTRL),
                sw_r32(RTL930X_L3_IP6UC_ROUTE_CTRL), sw_r32(RTL930X_L3_IP6MC_ROUTE_CTRL));
 
        /* Trap non-ip traffic to the CPU-port (e.g. ARP so we stay reachable) */
        sw_w32_mask(0x3 << 8, 0x1 << 8, RTL930X_L3_IP_ROUTE_CTRL);
-       pr_info("L3_IP_ROUTE_CTRL %08x\n", sw_r32(RTL930X_L3_IP_ROUTE_CTRL));
+       pr_debug("L3_IP_ROUTE_CTRL %08x\n", sw_r32(RTL930X_L3_IP_ROUTE_CTRL));
 
        /* PORT_ISO_RESTRICT_ROUTE_CTRL? */
 
@@ -2288,7 +2288,7 @@ static void rtl930x_packet_cntr_clear(int counter)
        /* Access LOG table (3) via register RTL9300_TBL_0 */
        struct table_reg *r = rtl_table_get(RTL9300_TBL_0, 3);
 
-       pr_info("In %s, id %d\n", __func__, counter);
+       pr_debug("In %s, id %d\n", __func__, counter);
        /* The table has a size of 2 registers */
        if (counter % 2)
                sw_w32(0, rtl_table_data(r, 0));
@@ -2398,10 +2398,10 @@ static void rtl930x_led_init(struct rtl838x_switch_priv *priv)
        struct device_node *node;
        u32 pm = 0;
 
-       pr_info("%s called\n", __func__);
+       pr_debug("%s called\n", __func__);
        node = of_find_compatible_node(NULL, NULL, "realtek,rtl9300-leds");
        if (!node) {
-               pr_info("%s No compatible LED node found\n", __func__);
+               pr_debug("%s No compatible LED node found\n", __func__);
                return;
        }
 
@@ -2475,7 +2475,7 @@ static void rtl930x_led_init(struct rtl838x_switch_priv *priv)
        sw_w32(pm, RTL930X_LED_PORT_COMBO_MASK_CTRL);
 
        for (int i = 0; i < 24; i++)
-               pr_info("%s %08x: %08x\n",__func__, 0xbb00cc00 + i * 4, sw_r32(0xcc00 + i * 4));
+               pr_debug("%s %08x: %08x\n",__func__, 0xbb00cc00 + i * 4, sw_r32(0xcc00 + i * 4));
 }
 
 const struct rtl838x_reg rtl930x_reg = {
index 870dbde7a6cedee4e05beb8f248f024842ae54e4..69f7c31653d8b8980f2ad1ca21f7ea95c9fae83f 100644 (file)
@@ -151,7 +151,7 @@ void rtl931x_vlan_profile_dump(int index)
        profile[3] = (sw_r32(RTL931X_VLAN_PROFILE_SET(index) + 20) & 0x1FFFFFFFULL) << 32 |
                     (sw_r32(RTL931X_VLAN_PROFILE_SET(index) + 24) & 0xFFFFFFFF);
 
-       pr_info("VLAN %d: L2 learning: %d, L2 Unknown MultiCast Field %llx, \
+       pr_debug("VLAN %d: L2 learning: %d, L2 Unknown MultiCast Field %llx, \
                IPv4 Unknown MultiCast Field %llx, IPv6 Unknown MultiCast Field: %llx",
                index, (u32) (profile[0] & (3 << 14)), profile[1], profile[2], profile[3]);
 }
@@ -307,10 +307,10 @@ irqreturn_t rtl931x_switch_irq(int irq, void *dev_id)
        for (int i = 0; i < 56; i++) {
                if (ports & BIT_ULL(i)) {
                        if (link & BIT_ULL(i)) {
-                               pr_info("%s port %d up\n", __func__, i);
+                               pr_debug("%s port %d up\n", __func__, i);
                                dsa_port_phylink_mac_change(ds, i, true);
                        } else {
-                               pr_info("%s port %d down\n", __func__, i);
+                               pr_debug("%s port %d down\n", __func__, i);
                                dsa_port_phylink_mac_change(ds, i, false);
                        }
                }
@@ -467,9 +467,9 @@ void rtl931x_print_matrix(void)
        volatile u64 *ptr = RTL838X_SW_BASE + RTL839X_PORT_ISO_CTRL(0);
 
        for (int i = 0; i < 52; i += 4)
-               pr_info("> %16llx %16llx %16llx %16llx\n",
+               pr_debug("> %16llx %16llx %16llx %16llx\n",
                        ptr[i + 0], ptr[i + 1], ptr[i + 2], ptr[i + 3]);
-       pr_info("CPU_PORT> %16llx\n", ptr[52]);
+       pr_debug("CPU_PORT> %16llx\n", ptr[52]);
 }
 
 void rtl931x_set_receive_management_action(int port, rma_ctrl_t type, action_type_t action)
@@ -809,12 +809,12 @@ static void rtl931x_write_l2_entry_using_hash(u32 hash, u32 pos, struct rtl838x_
        struct table_reg *q = rtl_table_get(RTL9310_TBL_0, 0);
        u32 idx = (0 << 14) | (hash << 2) | pos; /* Access SRAM, with hash and at pos in bucket */
 
-       pr_info("%s: hash %d, pos %d\n", __func__, hash, pos);
-       pr_info("%s: index %d -> mac %02x:%02x:%02x:%02x:%02x:%02x\n", __func__, idx,
+       pr_debug("%s: hash %d, pos %d\n", __func__, hash, pos);
+       pr_debug("%s: index %d -> mac %02x:%02x:%02x:%02x:%02x:%02x\n", __func__, idx,
                e->mac[0], e->mac[1], e->mac[2], e->mac[3],e->mac[4],e->mac[5]);
 
        rtl931x_fill_l2_row(r, e);
-       pr_info("%s: %d: %08x %08x %08x\n", __func__, idx, r[0], r[1], r[2]);
+       pr_debug("%s: %d: %08x %08x %08x\n", __func__, idx, r[0], r[1], r[2]);
 
        for (int i = 0; i < 4; i++)
                sw_w32(r[i], rtl_table_data(q, i));
@@ -836,7 +836,7 @@ static void rtl931x_vlan_profile_setup(int profile)
 {
        u32 p[7];
 
-       pr_info("In %s\n", __func__);
+       pr_debug("In %s\n", __func__);
 
        if (profile > 15)
                return;
@@ -856,7 +856,7 @@ static void rtl931x_vlan_profile_setup(int profile)
 
        for (int i = 0; i < 7; i++)
                sw_w32(p[i], RTL931X_VLAN_PROFILE_SET(profile) + i * 4);
-       pr_info("Leaving %s\n", __func__);
+       pr_debug("Leaving %s\n", __func__);
 }
 
 static void rtl931x_l2_learning_setup(void)
@@ -1235,22 +1235,22 @@ static void rtl931x_write_pie_action(u32 r[],  struct pie_rule *pr)
 
 void rtl931x_pie_rule_dump_raw(u32 r[])
 {
-       pr_info("Raw IACL table entry:\n");
-       pr_info("r 0 - 7: %08x %08x %08x %08x %08x %08x %08x %08x\n",
+       pr_debug("Raw IACL table entry:\n");
+       pr_debug("r 0 - 7: %08x %08x %08x %08x %08x %08x %08x %08x\n",
                r[0], r[1], r[2], r[3], r[4], r[5], r[6], r[7]);
-       pr_info("r 8 - 15: %08x %08x %08x %08x %08x %08x %08x %08x\n",
+       pr_debug("r 8 - 15: %08x %08x %08x %08x %08x %08x %08x %08x\n",
                r[8], r[9], r[10], r[11], r[12], r[13], r[14], r[15]);
-       pr_info("r 16 - 18: %08x %08x %08x\n", r[16], r[17], r[18]);
-       pr_info("Match  : %08x %08x %08x %08x %08x %08x\n", r[0], r[1], r[2], r[3], r[4], r[5]);
-       pr_info("Fixed  : %06x\n", r[6] >> 8);
-       pr_info("Match M: %08x %08x %08x %08x %08x %08x\n",
+       pr_debug("r 16 - 18: %08x %08x %08x\n", r[16], r[17], r[18]);
+       pr_debug("Match  : %08x %08x %08x %08x %08x %08x\n", r[0], r[1], r[2], r[3], r[4], r[5]);
+       pr_debug("Fixed  : %06x\n", r[6] >> 8);
+       pr_debug("Match M: %08x %08x %08x %08x %08x %08x\n",
                (r[6] << 24) | (r[7] >> 8), (r[7] << 24) | (r[8] >> 8), (r[8] << 24) | (r[9] >> 8),
                (r[9] << 24) | (r[10] >> 8), (r[10] << 24) | (r[11] >> 8),
                (r[11] << 24) | (r[12] >> 8));
-       pr_info("R[13]:   %08x\n", r[13]);
-       pr_info("Fixed M: %06x\n", ((r[12] << 16) | (r[13] >> 16)) & 0xffffff);
-       pr_info("Valid / not / and1 / and2 : %1x\n", (r[13] >> 12) & 0xf);
-       pr_info("r 13-16: %08x %08x %08x %08x\n", r[13], r[14], r[15], r[16]);
+       pr_debug("R[13]:   %08x\n", r[13]);
+       pr_debug("Fixed M: %06x\n", ((r[12] << 16) | (r[13] >> 16)) & 0xffffff);
+       pr_debug("Valid / not / and1 / and2 : %1x\n", (r[13] >> 12) & 0xf);
+       pr_debug("r 13-16: %08x %08x %08x %08x\n", r[13], r[14], r[15], r[16]);
 }
 
 static int rtl931x_pie_rule_write(struct rtl838x_switch_priv *priv, int idx, struct pie_rule *pr)
@@ -1261,7 +1261,7 @@ static int rtl931x_pie_rule_write(struct rtl838x_switch_priv *priv, int idx, str
        int block = idx / PIE_BLOCK_SIZE;
        u32 t_select = sw_r32(RTL931X_PIE_BLK_TMPLTE_CTRL(block));
 
-       pr_info("%s: %d, t_select: %08x\n", __func__, idx, t_select);
+       pr_debug("%s: %d, t_select: %08x\n", __func__, idx, t_select);
 
        for (int i = 0; i < 22; i++)
                r[i] = 0;
@@ -1273,7 +1273,7 @@ static int rtl931x_pie_rule_write(struct rtl838x_switch_priv *priv, int idx, str
        }
        rtl931x_write_pie_fixed_fields(r, pr);
 
-       pr_info("%s: template %d\n", __func__, (t_select >> (pr->tid * 4)) & 0xf);
+       pr_debug("%s: template %d\n", __func__, (t_select >> (pr->tid * 4)) & 0xf);
        rtl931x_write_pie_templated(r, pr, fixed_templates[(t_select >> (pr->tid * 4)) & 0xf]);
 
        rtl931x_write_pie_action(r, pr);
@@ -1356,15 +1356,15 @@ static int rtl931x_pie_rule_add(struct rtl838x_switch_priv *priv, struct pie_rul
                min_block = max_block;
                max_block = priv->n_pie_blocks;
        }
-       pr_info("In %s\n", __func__);
+       pr_debug("In %s\n", __func__);
 
        mutex_lock(&priv->pie_mutex);
 
        for (block = min_block; block < max_block; block++) {
                for (j = 0; j < 2; j++) {
                        int t = (sw_r32(RTL931X_PIE_BLK_TMPLTE_CTRL(block)) >> (j * 4)) & 0xf;
-                       pr_info("Testing block %d, template %d, template id %d\n", block, j, t);
-                       pr_info("%s: %08x\n",
+                       pr_debug("Testing block %d, template %d, template id %d\n", block, j, t);
+                       pr_debug("%s: %08x\n",
                                __func__, sw_r32(RTL931X_PIE_BLK_TMPLTE_CTRL(block)));
                        idx = rtl931x_pie_verify_template(priv, pr, t, block);
                        if (idx >= 0)
@@ -1379,7 +1379,7 @@ static int rtl931x_pie_rule_add(struct rtl838x_switch_priv *priv, struct pie_rul
                return -EOPNOTSUPP;
        }
 
-       pr_info("Using block: %d, index %d, template-id %d\n", block, idx, j);
+       pr_debug("Using block: %d, index %d, template-id %d\n", block, idx, j);
        set_bit(idx, priv->pie_use_bm);
 
        pr->valid = true;
@@ -1400,7 +1400,7 @@ static int rtl931x_pie_rule_del(struct rtl838x_switch_priv *priv, int index_from
 {
        u32 v = (index_from << 1)| (index_to << 13 ) | BIT(0);
 
-       pr_info("%s: from %d to %d\n", __func__, index_from, index_to);
+       pr_debug("%s: from %d to %d\n", __func__, index_from, index_to);
        mutex_lock(&priv->reg_mutex);
 
        /* Write from-to and execute bit into control register */
@@ -1429,7 +1429,7 @@ static void rtl931x_pie_init(struct rtl838x_switch_priv *priv)
 
        mutex_init(&priv->pie_mutex);
 
-       pr_info("%s\n", __func__);
+       pr_debug("%s\n", __func__);
        /* Enable ACL lookup on all ports, including CPU_PORT */
        for (int i = 0; i <= priv->cpu_port; i++)
                sw_w32(1, RTL931X_ACL_PORT_LOOKUP_CTRL(i));
@@ -1564,10 +1564,10 @@ static void rtl931x_led_init(struct rtl838x_switch_priv *priv)
        u64 pm_copper = 0, pm_fiber = 0;
        struct device_node *node;
 
-       pr_info("%s called\n", __func__);
+       pr_debug("%s called\n", __func__);
        node = of_find_compatible_node(NULL, NULL, "realtek,rtl9300-leds");
        if (!node) {
-               pr_info("%s No compatible LED node found\n", __func__);
+               pr_debug("%s No compatible LED node found\n", __func__);
                return;
        }
 
@@ -1602,7 +1602,7 @@ static void rtl931x_led_init(struct rtl838x_switch_priv *priv)
                u32 v;
 
                sprintf(set_name, "led_set%d", i);
-               pr_info(">%s<\n", set_name);
+               pr_debug(">%s<\n", set_name);
                led_set = of_get_property(node, set_name, &setlen);
                if (!led_set || setlen != 16)
                        break;
@@ -1620,7 +1620,7 @@ static void rtl931x_led_init(struct rtl838x_switch_priv *priv)
        rtl839x_set_port_reg_le(pm_copper | pm_fiber, RTL931X_LED_PORT_COMBO_MASK_CTRL);
 
        for (int i = 0; i < 32; i++)
-               pr_info("%s %08x: %08x\n",__func__, 0xbb000600 + i * 4, sw_r32(0x0600 + i * 4));
+               pr_debug("%s %08x: %08x\n",__func__, 0xbb000600 + i * 4, sw_r32(0x0600 + i * 4));
 }
 
 const struct rtl838x_reg rtl931x_reg = {