Browse Source

qcacmn: Fix channel list validation failure for Taiwan country

Problem:
In 2.4GHz Taiwan country code, channel 8 shows HT40PLUS/HE40PLUS
supported. As per latest regulatory sheet, channel 8 should
support only HT20/HE20 and HT40MINUS/HE40MINUS.

Root Cause:
When populating the master channel list, channel 12 is marked as
enabled for bw 10MHz. Therefore, for channel 8 HT40PLUS/HE40PLUS
flag is enabled.

Solution:
Channel map defines the min and max BW for each channel. The
solution here is to define the (min, max) as (20, 40)MHz instead
of (2, 40)MHz for 2GHz channels. That way, channel 12 would not
be marked as enabled for TW.

Change-Id: If208c23d1341f7fc90d6714ec09de6deafc455d4
CRs-Fixed: 2124202
Shashikala Prabhu 7 years ago
parent
commit
4105bf68a4
1 changed files with 70 additions and 70 deletions
  1. 70 70
      umac/regulatory/core/src/reg_services.c

+ 70 - 70
umac/regulatory/core/src/reg_services.c

@@ -150,20 +150,20 @@ static const struct chan_map channel_map_old[NUM_CHANNELS] = {
 
 #else
 static const struct chan_map channel_map_us[NUM_CHANNELS] = {
-	[CHAN_ENUM_2412] = {2412, 1, 2, 40},
-	[CHAN_ENUM_2417] = {2417, 2, 2, 40},
-	[CHAN_ENUM_2422] = {2422, 3, 2, 40},
-	[CHAN_ENUM_2427] = {2427, 4, 2, 40},
-	[CHAN_ENUM_2432] = {2432, 5, 2, 40},
-	[CHAN_ENUM_2437] = {2437, 6, 2, 40},
-	[CHAN_ENUM_2442] = {2442, 7, 2, 40},
-	[CHAN_ENUM_2447] = {2447, 8, 2, 40},
-	[CHAN_ENUM_2452] = {2452, 9, 2, 40},
-	[CHAN_ENUM_2457] = {2457, 10, 2, 40},
-	[CHAN_ENUM_2462] = {2462, 11, 2, 40},
-	[CHAN_ENUM_2467] = {2467, 12, 2, 40},
-	[CHAN_ENUM_2472] = {2472, 13, 2, 40},
-	[CHAN_ENUM_2484] = {2484, 14, 2, 40},
+	[CHAN_ENUM_2412] = {2412, 1, 20, 40},
+	[CHAN_ENUM_2417] = {2417, 2, 20, 40},
+	[CHAN_ENUM_2422] = {2422, 3, 20, 40},
+	[CHAN_ENUM_2427] = {2427, 4, 20, 40},
+	[CHAN_ENUM_2432] = {2432, 5, 20, 40},
+	[CHAN_ENUM_2437] = {2437, 6, 20, 40},
+	[CHAN_ENUM_2442] = {2442, 7, 20, 40},
+	[CHAN_ENUM_2447] = {2447, 8, 20, 40},
+	[CHAN_ENUM_2452] = {2452, 9, 20, 40},
+	[CHAN_ENUM_2457] = {2457, 10, 20, 40},
+	[CHAN_ENUM_2462] = {2462, 11, 20, 40},
+	[CHAN_ENUM_2467] = {2467, 12, 20, 40},
+	[CHAN_ENUM_2472] = {2472, 13, 20, 40},
+	[CHAN_ENUM_2484] = {2484, 14, 20, 20},
 
 	[CHAN_ENUM_4912] = {4912, INVALID_CHANNEL_NUM, 2, 20},
 	[CHAN_ENUM_4915] = {4915, INVALID_CHANNEL_NUM, 2, 20},
@@ -252,20 +252,20 @@ static const struct chan_map channel_map_us[NUM_CHANNELS] = {
 };
 
 static const struct chan_map channel_map_eu[NUM_CHANNELS] = {
-	[CHAN_ENUM_2412] = {2412, 1, 2, 40},
-	[CHAN_ENUM_2417] = {2417, 2, 2, 40},
-	[CHAN_ENUM_2422] = {2422, 3, 2, 40},
-	[CHAN_ENUM_2427] = {2427, 4, 2, 40},
-	[CHAN_ENUM_2432] = {2432, 5, 2, 40},
-	[CHAN_ENUM_2437] = {2437, 6, 2, 40},
-	[CHAN_ENUM_2442] = {2442, 7, 2, 40},
-	[CHAN_ENUM_2447] = {2447, 8, 2, 40},
-	[CHAN_ENUM_2452] = {2452, 9, 2, 40},
-	[CHAN_ENUM_2457] = {2457, 10, 2, 40},
-	[CHAN_ENUM_2462] = {2462, 11, 2, 40},
-	[CHAN_ENUM_2467] = {2467, 12, 2, 40},
-	[CHAN_ENUM_2472] = {2472, 13, 2, 40},
-	[CHAN_ENUM_2484] = {2484, 14, 2, 40},
+	[CHAN_ENUM_2412] = {2412, 1, 20, 40},
+	[CHAN_ENUM_2417] = {2417, 2, 20, 40},
+	[CHAN_ENUM_2422] = {2422, 3, 20, 40},
+	[CHAN_ENUM_2427] = {2427, 4, 20, 40},
+	[CHAN_ENUM_2432] = {2432, 5, 20, 40},
+	[CHAN_ENUM_2437] = {2437, 6, 20, 40},
+	[CHAN_ENUM_2442] = {2442, 7, 20, 40},
+	[CHAN_ENUM_2447] = {2447, 8, 20, 40},
+	[CHAN_ENUM_2452] = {2452, 9, 20, 40},
+	[CHAN_ENUM_2457] = {2457, 10, 20, 40},
+	[CHAN_ENUM_2462] = {2462, 11, 20, 40},
+	[CHAN_ENUM_2467] = {2467, 12, 20, 40},
+	[CHAN_ENUM_2472] = {2472, 13, 20, 40},
+	[CHAN_ENUM_2484] = {2484, 14, 20, 20},
 
 	[CHAN_ENUM_4912] = {4912, INVALID_CHANNEL_NUM, 2, 20},
 	[CHAN_ENUM_4915] = {4915, INVALID_CHANNEL_NUM, 2, 20},
@@ -354,20 +354,20 @@ static const struct chan_map channel_map_eu[NUM_CHANNELS] = {
 };
 
 static const struct chan_map channel_map_jp[NUM_CHANNELS] = {
-	[CHAN_ENUM_2412] = {2412, 1, 2, 40},
-	[CHAN_ENUM_2417] = {2417, 2, 2, 40},
-	[CHAN_ENUM_2422] = {2422, 3, 2, 40},
-	[CHAN_ENUM_2427] = {2427, 4, 2, 40},
-	[CHAN_ENUM_2432] = {2432, 5, 2, 40},
-	[CHAN_ENUM_2437] = {2437, 6, 2, 40},
-	[CHAN_ENUM_2442] = {2442, 7, 2, 40},
-	[CHAN_ENUM_2447] = {2447, 8, 2, 40},
-	[CHAN_ENUM_2452] = {2452, 9, 2, 40},
-	[CHAN_ENUM_2457] = {2457, 10, 2, 40},
-	[CHAN_ENUM_2462] = {2462, 11, 2, 40},
-	[CHAN_ENUM_2467] = {2467, 12, 2, 40},
-	[CHAN_ENUM_2472] = {2472, 13, 2, 40},
-	[CHAN_ENUM_2484] = {2484, 14, 2, 40},
+	[CHAN_ENUM_2412] = {2412, 1, 20, 40},
+	[CHAN_ENUM_2417] = {2417, 2, 20, 40},
+	[CHAN_ENUM_2422] = {2422, 3, 20, 40},
+	[CHAN_ENUM_2427] = {2427, 4, 20, 40},
+	[CHAN_ENUM_2432] = {2432, 5, 20, 40},
+	[CHAN_ENUM_2437] = {2437, 6, 20, 40},
+	[CHAN_ENUM_2442] = {2442, 7, 20, 40},
+	[CHAN_ENUM_2447] = {2447, 8, 20, 40},
+	[CHAN_ENUM_2452] = {2452, 9, 20, 40},
+	[CHAN_ENUM_2457] = {2457, 10, 20, 40},
+	[CHAN_ENUM_2462] = {2462, 11, 20, 40},
+	[CHAN_ENUM_2467] = {2467, 12, 20, 40},
+	[CHAN_ENUM_2472] = {2472, 13, 20, 40},
+	[CHAN_ENUM_2484] = {2484, 14, 20, 20},
 
 	[CHAN_ENUM_4912] = {4912, 182, 5, 5},
 	[CHAN_ENUM_4915] = {4915, 183, 10, 10},
@@ -456,20 +456,20 @@ static const struct chan_map channel_map_jp[NUM_CHANNELS] = {
 };
 
 static const struct chan_map channel_map_global[NUM_CHANNELS] = {
-	[CHAN_ENUM_2412] = {2412, 1, 2, 40},
-	[CHAN_ENUM_2417] = {2417, 2, 2, 40},
-	[CHAN_ENUM_2422] = {2422, 3, 2, 40},
-	[CHAN_ENUM_2427] = {2427, 4, 2, 40},
-	[CHAN_ENUM_2432] = {2432, 5, 2, 40},
-	[CHAN_ENUM_2437] = {2437, 6, 2, 40},
-	[CHAN_ENUM_2442] = {2442, 7, 2, 40},
-	[CHAN_ENUM_2447] = {2447, 8, 2, 40},
-	[CHAN_ENUM_2452] = {2452, 9, 2, 40},
-	[CHAN_ENUM_2457] = {2457, 10, 2, 40},
-	[CHAN_ENUM_2462] = {2462, 11, 2, 40},
-	[CHAN_ENUM_2467] = {2467, 12, 2, 40},
-	[CHAN_ENUM_2472] = {2472, 13, 2, 40},
-	[CHAN_ENUM_2484] = {2484, 14, 2, 40},
+	[CHAN_ENUM_2412] = {2412, 1, 20, 40},
+	[CHAN_ENUM_2417] = {2417, 2, 20, 40},
+	[CHAN_ENUM_2422] = {2422, 3, 20, 40},
+	[CHAN_ENUM_2427] = {2427, 4, 20, 40},
+	[CHAN_ENUM_2432] = {2432, 5, 20, 40},
+	[CHAN_ENUM_2437] = {2437, 6, 20, 40},
+	[CHAN_ENUM_2442] = {2442, 7, 20, 40},
+	[CHAN_ENUM_2447] = {2447, 8, 20, 40},
+	[CHAN_ENUM_2452] = {2452, 9, 20, 40},
+	[CHAN_ENUM_2457] = {2457, 10, 20, 40},
+	[CHAN_ENUM_2462] = {2462, 11, 20, 40},
+	[CHAN_ENUM_2467] = {2467, 12, 20, 40},
+	[CHAN_ENUM_2472] = {2472, 13, 20, 40},
+	[CHAN_ENUM_2484] = {2484, 14, 20, 20},
 
 	[CHAN_ENUM_4912] = {4912, INVALID_CHANNEL_NUM, 2, 20},
 	[CHAN_ENUM_4915] = {4915, INVALID_CHANNEL_NUM, 2, 20},
@@ -558,20 +558,20 @@ static const struct chan_map channel_map_global[NUM_CHANNELS] = {
 };
 
 static const struct chan_map channel_map_china[NUM_CHANNELS] = {
-	[CHAN_ENUM_2412] = {2412, 1, 2, 40},
-	[CHAN_ENUM_2417] = {2417, 2, 2, 40},
-	[CHAN_ENUM_2422] = {2422, 3, 2, 40},
-	[CHAN_ENUM_2427] = {2427, 4, 2, 40},
-	[CHAN_ENUM_2432] = {2432, 5, 2, 40},
-	[CHAN_ENUM_2437] = {2437, 6, 2, 40},
-	[CHAN_ENUM_2442] = {2442, 7, 2, 40},
-	[CHAN_ENUM_2447] = {2447, 8, 2, 40},
-	[CHAN_ENUM_2452] = {2452, 9, 2, 40},
-	[CHAN_ENUM_2457] = {2457, 10, 2, 40},
-	[CHAN_ENUM_2462] = {2462, 11, 2, 40},
-	[CHAN_ENUM_2467] = {2467, 12, 2, 40},
-	[CHAN_ENUM_2472] = {2472, 13, 2, 40},
-	[CHAN_ENUM_2484] = {2484, 14, 2, 40},
+	[CHAN_ENUM_2412] = {2412, 1, 20, 40},
+	[CHAN_ENUM_2417] = {2417, 2, 20, 40},
+	[CHAN_ENUM_2422] = {2422, 3, 20, 40},
+	[CHAN_ENUM_2427] = {2427, 4, 20, 40},
+	[CHAN_ENUM_2432] = {2432, 5, 20, 40},
+	[CHAN_ENUM_2437] = {2437, 6, 20, 40},
+	[CHAN_ENUM_2442] = {2442, 7, 20, 40},
+	[CHAN_ENUM_2447] = {2447, 8, 20, 40},
+	[CHAN_ENUM_2452] = {2452, 9, 20, 40},
+	[CHAN_ENUM_2457] = {2457, 10, 20, 40},
+	[CHAN_ENUM_2462] = {2462, 11, 20, 40},
+	[CHAN_ENUM_2467] = {2467, 12, 20, 40},
+	[CHAN_ENUM_2472] = {2472, 13, 20, 40},
+	[CHAN_ENUM_2484] = {2484, 14, 20, 20},
 
 	[CHAN_ENUM_4912] = {4912, INVALID_CHANNEL_NUM, 2, 20},
 	[CHAN_ENUM_4915] = {4915, INVALID_CHANNEL_NUM, 2, 20},