|
@@ -499,6 +499,30 @@ void mv88e6xxx_get_ethtool_stats(struct dsa_switch *ds,
|
|
|
mutex_unlock(&ps->stats_mutex);
|
|
|
}
|
|
|
|
|
|
+int mv88e6xxx_get_regs_len(struct dsa_switch *ds, int port)
|
|
|
+{
|
|
|
+ return 32 * sizeof(u16);
|
|
|
+}
|
|
|
+
|
|
|
+void mv88e6xxx_get_regs(struct dsa_switch *ds, int port,
|
|
|
+ struct ethtool_regs *regs, void *_p)
|
|
|
+{
|
|
|
+ u16 *p = _p;
|
|
|
+ int i;
|
|
|
+
|
|
|
+ regs->version = 0;
|
|
|
+
|
|
|
+ memset(p, 0xff, 32 * sizeof(u16));
|
|
|
+
|
|
|
+ for (i = 0; i < 32; i++) {
|
|
|
+ int ret;
|
|
|
+
|
|
|
+ ret = mv88e6xxx_reg_read(ds, REG_PORT(port), i);
|
|
|
+ if (ret >= 0)
|
|
|
+ p[i] = ret;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
static int __init mv88e6xxx_init(void)
|
|
|
{
|
|
|
#if IS_ENABLED(CONFIG_NET_DSA_MV88E6131)
|