diff options
Diffstat (limited to 'target/linux/ramips/files/drivers/net')
| -rw-r--r-- | target/linux/ramips/files/drivers/net/ramips_esw.c | 22 | 
1 files changed, 14 insertions, 8 deletions
diff --git a/target/linux/ramips/files/drivers/net/ramips_esw.c b/target/linux/ramips/files/drivers/net/ramips_esw.c index e4c8ea3db..e8041b48d 100644 --- a/target/linux/ramips/files/drivers/net/ramips_esw.c +++ b/target/linux/ramips/files/drivers/net/ramips_esw.c @@ -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;  }  | 
