--- /dev/null
+--- a/drivers/net/wireless/rt2x00/rt2x00dev.c
++++ b/drivers/net/wireless/rt2x00/rt2x00dev.c
+@@ -26,6 +26,7 @@
+ #include <linux/module.h>
+ #include <linux/slab.h>
+ #include <linux/log2.h>
++#include <linux/of.h>
+ 
+ #include "rt2x00.h"
+ #include "rt2x00lib.h"
+@@ -951,6 +952,16 @@ static int rt2x00lib_probe_hw_modes(stru
+       struct ieee80211_rate *rates;
+       unsigned int num_rates;
+       unsigned int i;
++#ifdef CONFIG_OF
++      struct device_node *np = rt2x00dev->dev->of_node;
++      unsigned int enabled;
++      if (!of_property_read_u32(np, "ralink,2ghz",
++                                          &enabled) && !enabled)
++              spec->supported_bands &= ~SUPPORT_BAND_2GHZ;
++      if (!of_property_read_u32(np, "ralink,5ghz",
++                                          &enabled) && !enabled)
++              spec->supported_bands &= ~SUPPORT_BAND_5GHZ;
++#endif /* CONFIG_OF */
+ 
+       if (rt2x00dev->dev->platform_data) {
+               struct rt2x00_platform_data *pdata;