20a0130
diff --git a/drivers/net/wireless/rt2x00/rt2800.h b/drivers/net/wireless/rt2x00/rt2800.h
20a0130
index d78c495..2132830 100644
20a0130
--- a/drivers/net/wireless/rt2x00/rt2800.h
20a0130
+++ b/drivers/net/wireless/rt2x00/rt2800.h
20a0130
@@ -65,6 +65,7 @@
20a0130
 #define RF3021				0x0007
20a0130
 #define RF3022				0x0008
20a0130
 #define RF3052				0x0009
20a0130
+#define RF3070				0x3070
20a0130
 #define RF2853				0x000a
20a0130
 #define RF3320				0x000b
20a0130
 #define RF3322				0x000c
20a0130
diff --git a/drivers/net/wireless/rt2x00/rt2800lib.c b/drivers/net/wireless/rt2x00/rt2800lib.c
20a0130
index 1b41c8e..2958265 100644
20a0130
--- a/drivers/net/wireless/rt2x00/rt2800lib.c
20a0130
+++ b/drivers/net/wireless/rt2x00/rt2800lib.c
20a0130
@@ -2597,6 +2597,7 @@ static void rt2800_config_channel(struct rt2x00_dev *rt2x00dev,
20a0130
 	case RF3322:
20a0130
 		rt2800_config_channel_rf3322(rt2x00dev, conf, rf, info);
20a0130
 		break;
20a0130
+	case RF3070:
20a0130
 	case RF5360:
20a0130
 	case RF5370:
20a0130
 	case RF5372:
20a0130
@@ -2611,7 +2612,8 @@ static void rt2800_config_channel(struct rt2x00_dev *rt2x00dev,
20a0130
 		rt2800_config_channel_rf2xxx(rt2x00dev, conf, rf, info);
20a0130
 	}
20a0130
 
20a0130
-	if (rt2x00_rf(rt2x00dev, RF3290) ||
20a0130
+	if (rt2x00_rf(rt2x00dev, RF3070) ||
20a0130
+	    rt2x00_rf(rt2x00dev, RF3290) ||
20a0130
 	    rt2x00_rf(rt2x00dev, RF3322) ||
20a0130
 	    rt2x00_rf(rt2x00dev, RF5360) ||
20a0130
 	    rt2x00_rf(rt2x00dev, RF5370) ||
20a0130
@@ -3219,6 +3221,7 @@ void rt2800_vco_calibration(struct rt2x00_dev *rt2x00dev)
20a0130
 		rt2x00_set_field8(&rfcsr, RFCSR7_RF_TUNING, 1);
20a0130
 		rt2800_rfcsr_write(rt2x00dev, 7, rfcsr);
20a0130
 		break;
20a0130
+	case RF3070:
20a0130
 	case RF3290:
20a0130
 	case RF5360:
20a0130
 	case RF5370:
20a0130
@@ -5731,6 +5734,7 @@ static int rt2800_init_eeprom(struct rt2x00_dev *rt2x00dev)
20a0130
 	case RF3021:
20a0130
 	case RF3022:
20a0130
 	case RF3052:
20a0130
+	case RF3070:
20a0130
 	case RF3290:
20a0130
 	case RF3320:
20a0130
 	case RF3322:
20a0130
@@ -6186,6 +6190,7 @@ static int rt2800_probe_hw_mode(struct rt2x00_dev *rt2x00dev)
20a0130
 		   rt2x00_rf(rt2x00dev, RF2020) ||
20a0130
 		   rt2x00_rf(rt2x00dev, RF3021) ||
20a0130
 		   rt2x00_rf(rt2x00dev, RF3022) ||
20a0130
+		   rt2x00_rf(rt2x00dev, RF3070) ||
20a0130
 		   rt2x00_rf(rt2x00dev, RF3290) ||
20a0130
 		   rt2x00_rf(rt2x00dev, RF3320) ||
20a0130
 		   rt2x00_rf(rt2x00dev, RF3322) ||
20a0130
@@ -6219,10 +6224,11 @@ static int rt2800_probe_hw_mode(struct rt2x00_dev *rt2x00dev)
20a0130
 	/*
20a0130
 	 * Initialize HT information.
20a0130
 	 */
20a0130
-	if (!rt2x00_rf(rt2x00dev, RF2020))
20a0130
+	if (!rt2x00_rf(rt2x00dev, RF2020)) {
20a0130
 		spec->ht.ht_supported = true;
20a0130
-	else
20a0130
+ 	} else {
20a0130
 		spec->ht.ht_supported = false;
20a0130
+	}
20a0130
 
20a0130
 	spec->ht.cap =
20a0130
 	    IEEE80211_HT_CAP_SUP_WIDTH_20_40 |
20a0130
@@ -6290,6 +6296,7 @@ static int rt2800_probe_hw_mode(struct rt2x00_dev *rt2x00dev)
20a0130
 	case RF3022:
20a0130
 	case RF3320:
20a0130
 	case RF3052:
20a0130
+	case RF3070:
20a0130
 	case RF3290:
20a0130
 	case RF5360:
20a0130
 	case RF5370: