--- linux-3.10.26/arch/mips/ralink/mt7620.c	2014-01-15 21:49:41.368793580 +0200
+++ linux-3.10.26/arch/mips/ralink/mt7620.c	2014-01-15 19:33:32.022038160 +0200
@@ -105,12 +105,15 @@
 
 void __init ralink_clk_init(void)
 {
-	unsigned long cpu_rate, sys_rate;
+	unsigned long cpu_rate, sys_rate, xtal_freq;
 	u32 c0 = rt_sysc_r32(SYSC_REG_CPLL_CONFIG0);
 	u32 c1 = rt_sysc_r32(SYSC_REG_CPLL_CONFIG1);
 	u32 swconfig = (c0 >> CPLL_SW_CONFIG_SHIFT) & CPLL_SW_CONFIG_MASK;
 	u32 cpu_clk = (c1 >> CPLL_CPU_CLK_SHIFT) & CPLL_CPU_CLK_MASK;
 
+	u32 syscfg0 = rt_sysc_r32(SYSC_REG_SYSTEM_CONFIG0);
+	xtal_freq = (syscfg0 & 0x40) ? 40000000 : 20000000;
+
 	if (cpu_clk) {
 		cpu_rate = 480000000;
 	} else if (!swconfig) {
@@ -133,6 +136,7 @@
 	ralink_clk_add("10000500.uart", 40000000);
 	ralink_clk_add("10000b00.spi", 40000000);
 	ralink_clk_add("10000c00.uartlite", 40000000);
+	ralink_clk_add("10180000.wmac", xtal_freq);
 
 	if (IS_ENABLED(CONFIG_USB)) {
 		/*
