|
|
@@ -75,17 +75,11 @@ out:
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
-static int
|
|
|
-rt305x_esw_init(void)
|
|
|
+static void
|
|
|
+rt305x_esw_hw_init(struct rt305x_esw *esw)
|
|
|
{
|
|
|
- struct rt305x_esw *esw;
|
|
|
int i;
|
|
|
|
|
|
- esw = &rt305x_esw;
|
|
|
- esw->base = ioremap_nocache(RT305X_SWITCH_BASE, PAGE_SIZE);
|
|
|
- if(!esw->base)
|
|
|
- return -ENOMEM;
|
|
|
-
|
|
|
/* vodoo from original driver */
|
|
|
ramips_esw_wr(esw, 0xC8A07850, 0x08);
|
|
|
ramips_esw_wr(esw, 0x00000000, 0xe4);
|
|
|
@@ -124,6 +118,18 @@ rt305x_esw_init(void)
|
|
|
/* set default vlan */
|
|
|
ramips_esw_wr(esw, 0x2001, 0x50);
|
|
|
ramips_esw_wr(esw, 0x504f, 0x70);
|
|
|
+}
|
|
|
+
|
|
|
+static int
|
|
|
+rt305x_esw_init(void)
|
|
|
+{
|
|
|
+ struct rt305x_esw *esw;
|
|
|
+
|
|
|
+ esw = &rt305x_esw;
|
|
|
+ esw->base = ioremap_nocache(RT305X_SWITCH_BASE, PAGE_SIZE);
|
|
|
+ if(!esw->base)
|
|
|
+ return -ENOMEM;
|
|
|
|
|
|
+ rt305x_esw_hw_init(esw);
|
|
|
return 0;
|
|
|
}
|