--- a/arch/mips/ath79/dev-wmac.c +++ b/arch/mips/ath79/dev-wmac.c @@ -44,7 +44,7 @@ static struct platform_device ath79_wmac }, }; -static void __init ar913x_wmac_setup(void) +static int ar913x_wmac_reset(void) { /* reset the WMAC */ ath79_device_reset_set(AR913X_RESET_AMBA2WMAC); @@ -53,10 +53,19 @@ static void __init ar913x_wmac_setup(voi ath79_device_reset_clear(AR913X_RESET_AMBA2WMAC); mdelay(10); + return 0; +} + +static void __init ar913x_wmac_setup(void) +{ + ar913x_wmac_reset(); + ath79_wmac_resources[0].start = AR913X_WMAC_BASE; ath79_wmac_resources[0].end = AR913X_WMAC_BASE + AR913X_WMAC_SIZE - 1; ath79_wmac_resources[1].start = ATH79_CPU_IRQ(2); ath79_wmac_resources[1].end = ATH79_CPU_IRQ(2); + + ath79_wmac_data.external_reset = ar913x_wmac_reset; }