diff --git a/umac/regulatory/core/src/reg_services_common.c b/umac/regulatory/core/src/reg_services_common.c index fab24c1945..349f6f9b1e 100644 --- a/umac/regulatory/core/src/reg_services_common.c +++ b/umac/regulatory/core/src/reg_services_common.c @@ -244,6 +244,67 @@ static const struct chan_map channel_map_us[NUM_CHANNELS] = { [CHAN_ENUM_5910] = {5910, 182, 2, 160}, [CHAN_ENUM_5915] = {5915, 183, 2, 160}, [CHAN_ENUM_5920] = {5920, 184, 2, 160}, +#ifdef CONFIG_BAND_6GHZ + [CHAN_ENUM_5945] = {5945, 1, 2, 160}, + [CHAN_ENUM_5965] = {5965, 5, 2, 160}, + [CHAN_ENUM_5985] = {5985, 9, 2, 160}, + [CHAN_ENUM_6005] = {6005, 13, 2, 160}, + [CHAN_ENUM_6025] = {6025, 17, 2, 160}, + [CHAN_ENUM_6045] = {6045, 21, 2, 160}, + [CHAN_ENUM_6065] = {6065, 25, 2, 160}, + [CHAN_ENUM_6085] = {6085, 29, 2, 160}, + [CHAN_ENUM_6105] = {6105, 33, 2, 160}, + [CHAN_ENUM_6125] = {6125, 37, 2, 160}, + [CHAN_ENUM_6145] = {6145, 41, 2, 160}, + [CHAN_ENUM_6165] = {6165, 45, 2, 160}, + [CHAN_ENUM_6185] = {6185, 49, 2, 160}, + [CHAN_ENUM_6205] = {6205, 53, 2, 160}, + [CHAN_ENUM_6225] = {6225, 57, 2, 160}, + [CHAN_ENUM_6245] = {6245, 61, 2, 160}, + [CHAN_ENUM_6265] = {6265, 65, 2, 160}, + [CHAN_ENUM_6285] = {6285, 69, 2, 160}, + [CHAN_ENUM_6305] = {6305, 73, 2, 160}, + [CHAN_ENUM_6325] = {6325, 77, 2, 160}, + [CHAN_ENUM_6345] = {6345, 81, 2, 160}, + [CHAN_ENUM_6365] = {6365, 85, 2, 160}, + [CHAN_ENUM_6385] = {6385, 89, 2, 160}, + [CHAN_ENUM_6405] = {6405, 93, 2, 160}, + [CHAN_ENUM_6425] = {6425, 97, 2, 160}, + [CHAN_ENUM_6445] = {6445, 101, 2, 160}, + [CHAN_ENUM_6465] = {6465, 105, 2, 160}, + [CHAN_ENUM_6485] = {6485, 109, 2, 160}, + [CHAN_ENUM_6505] = {6505, 113, 2, 160}, + [CHAN_ENUM_6525] = {6525, 117, 2, 160}, + [CHAN_ENUM_6545] = {6545, 121, 2, 160}, + [CHAN_ENUM_6565] = {6565, 125, 2, 160}, + [CHAN_ENUM_6585] = {6585, 129, 2, 160}, + [CHAN_ENUM_6605] = {6605, 133, 2, 160}, + [CHAN_ENUM_6625] = {6625, 137, 2, 160}, + [CHAN_ENUM_6645] = {6645, 141, 2, 160}, + [CHAN_ENUM_6665] = {6665, 145, 2, 160}, + [CHAN_ENUM_6685] = {6685, 149, 2, 160}, + [CHAN_ENUM_6705] = {6705, 153, 2, 160}, + [CHAN_ENUM_6725] = {6725, 157, 2, 160}, + [CHAN_ENUM_6745] = {6745, 161, 2, 160}, + [CHAN_ENUM_6765] = {6765, 165, 2, 160}, + [CHAN_ENUM_6785] = {6785, 169, 2, 160}, + [CHAN_ENUM_6805] = {6805, 173, 2, 160}, + [CHAN_ENUM_6825] = {6825, 177, 2, 160}, + [CHAN_ENUM_6845] = {6845, 181, 2, 160}, + [CHAN_ENUM_6865] = {6865, 185, 2, 160}, + [CHAN_ENUM_6885] = {6885, 189, 2, 160}, + [CHAN_ENUM_6905] = {6905, 193, 2, 160}, + [CHAN_ENUM_6925] = {6925, 197, 2, 160}, + [CHAN_ENUM_6945] = {6945, 201, 2, 160}, + [CHAN_ENUM_6965] = {6965, 205, 2, 160}, + [CHAN_ENUM_6985] = {6985, 209, 2, 160}, + [CHAN_ENUM_7005] = {7005, 213, 2, 160}, + [CHAN_ENUM_7025] = {7025, 217, 2, 160}, + [CHAN_ENUM_7045] = {7045, 221, 2, 160}, + [CHAN_ENUM_7065] = {7065, 225, 2, 160}, + [CHAN_ENUM_7085] = {7085, 229, 2, 160}, + [CHAN_ENUM_7105] = {7105, 233, 2, 160} +#endif /* CONFIG_BAND_6GHZ */ }; static const struct chan_map channel_map_eu[NUM_CHANNELS] = { @@ -346,6 +407,67 @@ static const struct chan_map channel_map_eu[NUM_CHANNELS] = { [CHAN_ENUM_5910] = {5910, 182, 2, 160}, [CHAN_ENUM_5915] = {5915, 183, 2, 160}, [CHAN_ENUM_5920] = {5920, 184, 2, 160}, +#ifdef CONFIG_BAND_6GHZ + [CHAN_ENUM_5945] = {5945, 1, 2, 160}, + [CHAN_ENUM_5965] = {5965, 5, 2, 160}, + [CHAN_ENUM_5985] = {5985, 9, 2, 160}, + [CHAN_ENUM_6005] = {6005, 13, 2, 160}, + [CHAN_ENUM_6025] = {6025, 17, 2, 160}, + [CHAN_ENUM_6045] = {6045, 21, 2, 160}, + [CHAN_ENUM_6065] = {6065, 25, 2, 160}, + [CHAN_ENUM_6085] = {6085, 29, 2, 160}, + [CHAN_ENUM_6105] = {6105, 33, 2, 160}, + [CHAN_ENUM_6125] = {6125, 37, 2, 160}, + [CHAN_ENUM_6145] = {6145, 41, 2, 160}, + [CHAN_ENUM_6165] = {6165, 45, 2, 160}, + [CHAN_ENUM_6185] = {6185, 49, 2, 160}, + [CHAN_ENUM_6205] = {6205, 53, 2, 160}, + [CHAN_ENUM_6225] = {6225, 57, 2, 160}, + [CHAN_ENUM_6245] = {6245, 61, 2, 160}, + [CHAN_ENUM_6265] = {6265, 65, 2, 160}, + [CHAN_ENUM_6285] = {6285, 69, 2, 160}, + [CHAN_ENUM_6305] = {6305, 73, 2, 160}, + [CHAN_ENUM_6325] = {6325, 77, 2, 160}, + [CHAN_ENUM_6345] = {6345, 81, 2, 160}, + [CHAN_ENUM_6365] = {6365, 85, 2, 160}, + [CHAN_ENUM_6385] = {6385, 89, 2, 160}, + [CHAN_ENUM_6405] = {6405, 93, 2, 160}, + [CHAN_ENUM_6425] = {6425, 97, 2, 160}, + [CHAN_ENUM_6445] = {6445, 101, 2, 160}, + [CHAN_ENUM_6465] = {6465, 105, 2, 160}, + [CHAN_ENUM_6485] = {6485, 109, 2, 160}, + [CHAN_ENUM_6505] = {6505, 113, 2, 160}, + [CHAN_ENUM_6525] = {6525, 117, 2, 160}, + [CHAN_ENUM_6545] = {6545, 121, 2, 160}, + [CHAN_ENUM_6565] = {6565, 125, 2, 160}, + [CHAN_ENUM_6585] = {6585, 129, 2, 160}, + [CHAN_ENUM_6605] = {6605, 133, 2, 160}, + [CHAN_ENUM_6625] = {6625, 137, 2, 160}, + [CHAN_ENUM_6645] = {6645, 141, 2, 160}, + [CHAN_ENUM_6665] = {6665, 145, 2, 160}, + [CHAN_ENUM_6685] = {6685, 149, 2, 160}, + [CHAN_ENUM_6705] = {6705, 153, 2, 160}, + [CHAN_ENUM_6725] = {6725, 157, 2, 160}, + [CHAN_ENUM_6745] = {6745, 161, 2, 160}, + [CHAN_ENUM_6765] = {6765, 165, 2, 160}, + [CHAN_ENUM_6785] = {6785, 169, 2, 160}, + [CHAN_ENUM_6805] = {6805, 173, 2, 160}, + [CHAN_ENUM_6825] = {6825, 177, 2, 160}, + [CHAN_ENUM_6845] = {6845, 181, 2, 160}, + [CHAN_ENUM_6865] = {6865, 185, 2, 160}, + [CHAN_ENUM_6885] = {6885, 189, 2, 160}, + [CHAN_ENUM_6905] = {6905, 193, 2, 160}, + [CHAN_ENUM_6925] = {6925, 197, 2, 160}, + [CHAN_ENUM_6945] = {6945, 201, 2, 160}, + [CHAN_ENUM_6965] = {6965, 205, 2, 160}, + [CHAN_ENUM_6985] = {6985, 209, 2, 160}, + [CHAN_ENUM_7005] = {7005, 213, 2, 160}, + [CHAN_ENUM_7025] = {7025, 217, 2, 160}, + [CHAN_ENUM_7045] = {7045, 221, 2, 160}, + [CHAN_ENUM_7065] = {7065, 225, 2, 160}, + [CHAN_ENUM_7085] = {7085, 229, 2, 160}, + [CHAN_ENUM_7105] = {7105, 233, 2, 160} +#endif /* CONFIG_BAND_6GHZ */ }; static const struct chan_map channel_map_jp[NUM_CHANNELS] = { @@ -448,6 +570,67 @@ static const struct chan_map channel_map_jp[NUM_CHANNELS] = { [CHAN_ENUM_5910] = {5910, INVALID_CHANNEL_NUM, 2, 160}, [CHAN_ENUM_5915] = {5915, INVALID_CHANNEL_NUM, 2, 160}, [CHAN_ENUM_5920] = {5920, INVALID_CHANNEL_NUM, 2, 160}, +#ifdef CONFIG_BAND_6GHZ + [CHAN_ENUM_5945] = {5945, 1, 2, 160}, + [CHAN_ENUM_5965] = {5965, 5, 2, 160}, + [CHAN_ENUM_5985] = {5985, 9, 2, 160}, + [CHAN_ENUM_6005] = {6005, 13, 2, 160}, + [CHAN_ENUM_6025] = {6025, 17, 2, 160}, + [CHAN_ENUM_6045] = {6045, 21, 2, 160}, + [CHAN_ENUM_6065] = {6065, 25, 2, 160}, + [CHAN_ENUM_6085] = {6085, 29, 2, 160}, + [CHAN_ENUM_6105] = {6105, 33, 2, 160}, + [CHAN_ENUM_6125] = {6125, 37, 2, 160}, + [CHAN_ENUM_6145] = {6145, 41, 2, 160}, + [CHAN_ENUM_6165] = {6165, 45, 2, 160}, + [CHAN_ENUM_6185] = {6185, 49, 2, 160}, + [CHAN_ENUM_6205] = {6205, 53, 2, 160}, + [CHAN_ENUM_6225] = {6225, 57, 2, 160}, + [CHAN_ENUM_6245] = {6245, 61, 2, 160}, + [CHAN_ENUM_6265] = {6265, 65, 2, 160}, + [CHAN_ENUM_6285] = {6285, 69, 2, 160}, + [CHAN_ENUM_6305] = {6305, 73, 2, 160}, + [CHAN_ENUM_6325] = {6325, 77, 2, 160}, + [CHAN_ENUM_6345] = {6345, 81, 2, 160}, + [CHAN_ENUM_6365] = {6365, 85, 2, 160}, + [CHAN_ENUM_6385] = {6385, 89, 2, 160}, + [CHAN_ENUM_6405] = {6405, 93, 2, 160}, + [CHAN_ENUM_6425] = {6425, 97, 2, 160}, + [CHAN_ENUM_6445] = {6445, 101, 2, 160}, + [CHAN_ENUM_6465] = {6465, 105, 2, 160}, + [CHAN_ENUM_6485] = {6485, 109, 2, 160}, + [CHAN_ENUM_6505] = {6505, 113, 2, 160}, + [CHAN_ENUM_6525] = {6525, 117, 2, 160}, + [CHAN_ENUM_6545] = {6545, 121, 2, 160}, + [CHAN_ENUM_6565] = {6565, 125, 2, 160}, + [CHAN_ENUM_6585] = {6585, 129, 2, 160}, + [CHAN_ENUM_6605] = {6605, 133, 2, 160}, + [CHAN_ENUM_6625] = {6625, 137, 2, 160}, + [CHAN_ENUM_6645] = {6645, 141, 2, 160}, + [CHAN_ENUM_6665] = {6665, 145, 2, 160}, + [CHAN_ENUM_6685] = {6685, 149, 2, 160}, + [CHAN_ENUM_6705] = {6705, 153, 2, 160}, + [CHAN_ENUM_6725] = {6725, 157, 2, 160}, + [CHAN_ENUM_6745] = {6745, 161, 2, 160}, + [CHAN_ENUM_6765] = {6765, 165, 2, 160}, + [CHAN_ENUM_6785] = {6785, 169, 2, 160}, + [CHAN_ENUM_6805] = {6805, 173, 2, 160}, + [CHAN_ENUM_6825] = {6825, 177, 2, 160}, + [CHAN_ENUM_6845] = {6845, 181, 2, 160}, + [CHAN_ENUM_6865] = {6865, 185, 2, 160}, + [CHAN_ENUM_6885] = {6885, 189, 2, 160}, + [CHAN_ENUM_6905] = {6905, 193, 2, 160}, + [CHAN_ENUM_6925] = {6925, 197, 2, 160}, + [CHAN_ENUM_6945] = {6945, 201, 2, 160}, + [CHAN_ENUM_6965] = {6965, 205, 2, 160}, + [CHAN_ENUM_6985] = {6985, 209, 2, 160}, + [CHAN_ENUM_7005] = {7005, 213, 2, 160}, + [CHAN_ENUM_7025] = {7025, 217, 2, 160}, + [CHAN_ENUM_7045] = {7045, 221, 2, 160}, + [CHAN_ENUM_7065] = {7065, 225, 2, 160}, + [CHAN_ENUM_7085] = {7085, 229, 2, 160}, + [CHAN_ENUM_7105] = {7105, 233, 2, 160} +#endif /* CONFIG_BAND_6GHZ */ }; static const struct chan_map channel_map_global[NUM_CHANNELS] = { @@ -550,6 +733,67 @@ static const struct chan_map channel_map_global[NUM_CHANNELS] = { [CHAN_ENUM_5910] = {5910, INVALID_CHANNEL_NUM, 2, 160}, [CHAN_ENUM_5915] = {5915, INVALID_CHANNEL_NUM, 2, 160}, [CHAN_ENUM_5920] = {5920, INVALID_CHANNEL_NUM, 2, 160}, +#ifdef CONFIG_BAND_6GHZ + [CHAN_ENUM_5945] = {5945, 1, 2, 160}, + [CHAN_ENUM_5965] = {5965, 5, 2, 160}, + [CHAN_ENUM_5985] = {5985, 9, 2, 160}, + [CHAN_ENUM_6005] = {6005, 13, 2, 160}, + [CHAN_ENUM_6025] = {6025, 17, 2, 160}, + [CHAN_ENUM_6045] = {6045, 21, 2, 160}, + [CHAN_ENUM_6065] = {6065, 25, 2, 160}, + [CHAN_ENUM_6085] = {6085, 29, 2, 160}, + [CHAN_ENUM_6105] = {6105, 33, 2, 160}, + [CHAN_ENUM_6125] = {6125, 37, 2, 160}, + [CHAN_ENUM_6145] = {6145, 41, 2, 160}, + [CHAN_ENUM_6165] = {6165, 45, 2, 160}, + [CHAN_ENUM_6185] = {6185, 49, 2, 160}, + [CHAN_ENUM_6205] = {6205, 53, 2, 160}, + [CHAN_ENUM_6225] = {6225, 57, 2, 160}, + [CHAN_ENUM_6245] = {6245, 61, 2, 160}, + [CHAN_ENUM_6265] = {6265, 65, 2, 160}, + [CHAN_ENUM_6285] = {6285, 69, 2, 160}, + [CHAN_ENUM_6305] = {6305, 73, 2, 160}, + [CHAN_ENUM_6325] = {6325, 77, 2, 160}, + [CHAN_ENUM_6345] = {6345, 81, 2, 160}, + [CHAN_ENUM_6365] = {6365, 85, 2, 160}, + [CHAN_ENUM_6385] = {6385, 89, 2, 160}, + [CHAN_ENUM_6405] = {6405, 93, 2, 160}, + [CHAN_ENUM_6425] = {6425, 97, 2, 160}, + [CHAN_ENUM_6445] = {6445, 101, 2, 160}, + [CHAN_ENUM_6465] = {6465, 105, 2, 160}, + [CHAN_ENUM_6485] = {6485, 109, 2, 160}, + [CHAN_ENUM_6505] = {6505, 113, 2, 160}, + [CHAN_ENUM_6525] = {6525, 117, 2, 160}, + [CHAN_ENUM_6545] = {6545, 121, 2, 160}, + [CHAN_ENUM_6565] = {6565, 125, 2, 160}, + [CHAN_ENUM_6585] = {6585, 129, 2, 160}, + [CHAN_ENUM_6605] = {6605, 133, 2, 160}, + [CHAN_ENUM_6625] = {6625, 137, 2, 160}, + [CHAN_ENUM_6645] = {6645, 141, 2, 160}, + [CHAN_ENUM_6665] = {6665, 145, 2, 160}, + [CHAN_ENUM_6685] = {6685, 149, 2, 160}, + [CHAN_ENUM_6705] = {6705, 153, 2, 160}, + [CHAN_ENUM_6725] = {6725, 157, 2, 160}, + [CHAN_ENUM_6745] = {6745, 161, 2, 160}, + [CHAN_ENUM_6765] = {6765, 165, 2, 160}, + [CHAN_ENUM_6785] = {6785, 169, 2, 160}, + [CHAN_ENUM_6805] = {6805, 173, 2, 160}, + [CHAN_ENUM_6825] = {6825, 177, 2, 160}, + [CHAN_ENUM_6845] = {6845, 181, 2, 160}, + [CHAN_ENUM_6865] = {6865, 185, 2, 160}, + [CHAN_ENUM_6885] = {6885, 189, 2, 160}, + [CHAN_ENUM_6905] = {6905, 193, 2, 160}, + [CHAN_ENUM_6925] = {6925, 197, 2, 160}, + [CHAN_ENUM_6945] = {6945, 201, 2, 160}, + [CHAN_ENUM_6965] = {6965, 205, 2, 160}, + [CHAN_ENUM_6985] = {6985, 209, 2, 160}, + [CHAN_ENUM_7005] = {7005, 213, 2, 160}, + [CHAN_ENUM_7025] = {7025, 217, 2, 160}, + [CHAN_ENUM_7045] = {7045, 221, 2, 160}, + [CHAN_ENUM_7065] = {7065, 225, 2, 160}, + [CHAN_ENUM_7085] = {7085, 229, 2, 160}, + [CHAN_ENUM_7105] = {7105, 233, 2, 160} +#endif /* CONFIG_BAND_6GHZ */ }; static const struct chan_map channel_map_china[NUM_CHANNELS] = { @@ -652,6 +896,67 @@ static const struct chan_map channel_map_china[NUM_CHANNELS] = { [CHAN_ENUM_5910] = {5910, INVALID_CHANNEL_NUM, 2, 160}, [CHAN_ENUM_5915] = {5915, INVALID_CHANNEL_NUM, 2, 160}, [CHAN_ENUM_5920] = {5920, INVALID_CHANNEL_NUM, 2, 160}, +#ifdef CONFIG_BAND_6GHZ + [CHAN_ENUM_5945] = {5945, 1, 2, 160}, + [CHAN_ENUM_5965] = {5965, 5, 2, 160}, + [CHAN_ENUM_5985] = {5985, 9, 2, 160}, + [CHAN_ENUM_6005] = {6005, 13, 2, 160}, + [CHAN_ENUM_6025] = {6025, 17, 2, 160}, + [CHAN_ENUM_6045] = {6045, 21, 2, 160}, + [CHAN_ENUM_6065] = {6065, 25, 2, 160}, + [CHAN_ENUM_6085] = {6085, 29, 2, 160}, + [CHAN_ENUM_6105] = {6105, 33, 2, 160}, + [CHAN_ENUM_6125] = {6125, 37, 2, 160}, + [CHAN_ENUM_6145] = {6145, 41, 2, 160}, + [CHAN_ENUM_6165] = {6165, 45, 2, 160}, + [CHAN_ENUM_6185] = {6185, 49, 2, 160}, + [CHAN_ENUM_6205] = {6205, 53, 2, 160}, + [CHAN_ENUM_6225] = {6225, 57, 2, 160}, + [CHAN_ENUM_6245] = {6245, 61, 2, 160}, + [CHAN_ENUM_6265] = {6265, 65, 2, 160}, + [CHAN_ENUM_6285] = {6285, 69, 2, 160}, + [CHAN_ENUM_6305] = {6305, 73, 2, 160}, + [CHAN_ENUM_6325] = {6325, 77, 2, 160}, + [CHAN_ENUM_6345] = {6345, 81, 2, 160}, + [CHAN_ENUM_6365] = {6365, 85, 2, 160}, + [CHAN_ENUM_6385] = {6385, 89, 2, 160}, + [CHAN_ENUM_6405] = {6405, 93, 2, 160}, + [CHAN_ENUM_6425] = {6425, 97, 2, 160}, + [CHAN_ENUM_6445] = {6445, 101, 2, 160}, + [CHAN_ENUM_6465] = {6465, 105, 2, 160}, + [CHAN_ENUM_6485] = {6485, 109, 2, 160}, + [CHAN_ENUM_6505] = {6505, 113, 2, 160}, + [CHAN_ENUM_6525] = {6525, 117, 2, 160}, + [CHAN_ENUM_6545] = {6545, 121, 2, 160}, + [CHAN_ENUM_6565] = {6565, 125, 2, 160}, + [CHAN_ENUM_6585] = {6585, 129, 2, 160}, + [CHAN_ENUM_6605] = {6605, 133, 2, 160}, + [CHAN_ENUM_6625] = {6625, 137, 2, 160}, + [CHAN_ENUM_6645] = {6645, 141, 2, 160}, + [CHAN_ENUM_6665] = {6665, 145, 2, 160}, + [CHAN_ENUM_6685] = {6685, 149, 2, 160}, + [CHAN_ENUM_6705] = {6705, 153, 2, 160}, + [CHAN_ENUM_6725] = {6725, 157, 2, 160}, + [CHAN_ENUM_6745] = {6745, 161, 2, 160}, + [CHAN_ENUM_6765] = {6765, 165, 2, 160}, + [CHAN_ENUM_6785] = {6785, 169, 2, 160}, + [CHAN_ENUM_6805] = {6805, 173, 2, 160}, + [CHAN_ENUM_6825] = {6825, 177, 2, 160}, + [CHAN_ENUM_6845] = {6845, 181, 2, 160}, + [CHAN_ENUM_6865] = {6865, 185, 2, 160}, + [CHAN_ENUM_6885] = {6885, 189, 2, 160}, + [CHAN_ENUM_6905] = {6905, 193, 2, 160}, + [CHAN_ENUM_6925] = {6925, 197, 2, 160}, + [CHAN_ENUM_6945] = {6945, 201, 2, 160}, + [CHAN_ENUM_6965] = {6965, 205, 2, 160}, + [CHAN_ENUM_6985] = {6985, 209, 2, 160}, + [CHAN_ENUM_7005] = {7005, 213, 2, 160}, + [CHAN_ENUM_7025] = {7025, 217, 2, 160}, + [CHAN_ENUM_7045] = {7045, 221, 2, 160}, + [CHAN_ENUM_7065] = {7065, 225, 2, 160}, + [CHAN_ENUM_7085] = {7085, 229, 2, 160}, + [CHAN_ENUM_7105] = {7105, 233, 2, 160} +#endif /* CONFIG_BAND_6GHZ */ }; #endif @@ -1910,6 +2215,13 @@ bool reg_is_5ghz_ch_freq(uint32_t freq) return REG_IS_5GHZ_FREQ(freq); } +#ifdef CONFIG_BAND_6GHZ +bool reg_is_6ghz_chan_freq(uint16_t freq) +{ + return REG_IS_6GHZ_FREQ(freq); +} +#endif + #ifndef CONFIG_LEGACY_CHAN_ENUM bool reg_is_49ghz_freq(uint32_t freq) { diff --git a/umac/regulatory/core/src/reg_services_common.h b/umac/regulatory/core/src/reg_services_common.h index 5525208025..aac6b2966e 100644 --- a/umac/regulatory/core/src/reg_services_common.h +++ b/umac/regulatory/core/src/reg_services_common.h @@ -62,6 +62,11 @@ (((freq) >= channel_map[MIN_5GHZ_CHANNEL].center_freq) && \ ((freq) <= channel_map[MAX_5GHZ_CHANNEL].center_freq)) +#ifdef CONFIG_BAND_6GHZ +#define REG_MIN_6GHZ_CH_FREQ channel_map[MIN_6GHZ_CHANNEL].center_freq +#define REG_MAX_6GHZ_CH_FREQ channel_map[MAX_6GHZ_CHANNEL].center_freq +#endif /*CONFIG_BAND_6GHZ*/ + #define REG_CH_NUM(ch_enum) channel_map[ch_enum].chan_num #define REG_CH_TO_FREQ(ch_enum) channel_map[ch_enum].center_freq @@ -424,7 +429,34 @@ bool reg_is_24ghz_ch_freq(uint32_t freq); * * Return: true if channel frequency is 5GHz, else false */ -bool reg_is_5ghz_ch_freq(uint32_t chan); +bool reg_is_5ghz_ch_freq(uint32_t freq); + +#ifdef CONFIG_BAND_6GHZ +/** + * reg_is_6ghz_chan_freq() - Check if the given channel frequency is 6GHz + * @freq: Channel frequency + * + * Return: true if channel frequency is 6GHz, else false + */ +bool reg_is_6ghz_chan_freq(uint16_t freq); + +/** + * REG_IS_6GHZ_FREQ() - Check if the given channel frequency is 6GHz + * @freq: Channel frequency + * + * Return: true if channel frequency is 6GHz, else false + */ +static inline bool REG_IS_6GHZ_FREQ(uint16_t freq) +{ + return ((freq >= REG_MIN_6GHZ_CH_FREQ) && + (freq <= REG_MAX_6GHZ_CH_FREQ)); +} +#else +static inline bool reg_is_6ghz_chan_freq(uint16_t freq) +{ + return false; +} +#endif /* CONFIG_BAND_6GHZ */ #ifndef CONFIG_LEGACY_CHAN_ENUM /** diff --git a/umac/regulatory/dispatcher/inc/reg_services_public_struct.h b/umac/regulatory/dispatcher/inc/reg_services_public_struct.h index 376a32c4a3..3bf9d162ea 100644 --- a/umac/regulatory/dispatcher/inc/reg_services_public_struct.h +++ b/umac/regulatory/dispatcher/inc/reg_services_public_struct.h @@ -403,6 +403,65 @@ enum channel_enum { * @CHAN_ENUM_5910: channel with freq 5910 * @CHAN_ENUM_5915: channel with freq 5915 * @CHAN_ENUM_5920: channel with freq 5920 + * @CHAN_ENUM_5945: channel with freq 5945 + * @CHAN_ENUM_5965: channel with freq 5965 + * @CHAN_ENUM_5985: channel with freq 5985 + * @CHAN_ENUM_6005: channel with freq 6005 + * @CHAN_ENUM_6025: channel with freq 6025 + * @CHAN_ENUM_6045: channel with freq 6045 + * @CHAN_ENUM_6065: channel with freq 6065 + * @CHAN_ENUM_6085: channel with freq 6085 + * @CHAN_ENUM_6105: channel with freq 6105 + * @CHAN_ENUM_6125: channel with freq 6125 + * @CHAN_ENUM_6145: channel with freq 6145 + * @CHAN_ENUM_6165: channel with freq 6165 + * @CHAN_ENUM_6185: channel with freq 6185 + * @CHAN_ENUM_6205: channel with freq 6205 + * @CHAN_ENUM_6225: channel with freq 6225 + * @CHAN_ENUM_6245: channel with freq 6245 + * @CHAN_ENUM_6265: channel with freq 6265 + * @CHAN_ENUM_6285: channel with freq 6285 + * @CHAN_ENUM_6305: channel with freq 6305 + * @CHAN_ENUM_6325: channel with freq 6325 + * @CHAN_ENUM_6345: channel with freq 6345 + * @CHAN_ENUM_6365: channel with freq 6365 + * @CHAN_ENUM_6385: channel with freq 6385 + * @CHAN_ENUM_6405: channel with freq 6405 + * @CHAN_ENUM_6425: channel with freq 6425 + * @CHAN_ENUM_6445: channel with freq 6445 + * @CHAN_ENUM_6465: channel with freq 6465 + * @CHAN_ENUM_6485: channel with freq 6485 + * @CHAN_ENUM_6505: channel with freq 6505 + * @CHAN_ENUM_6525: channel with freq 6525 + * @CHAN_ENUM_6545: channel with freq 6545 + * @CHAN_ENUM_6565: channel with freq 6565 + * @CHAN_ENUM_6585: channel with freq 6585 + * @CHAN_ENUM_6605: channel with freq 6605 + * @CHAN_ENUM_6625: channel with freq 6625 + * @CHAN_ENUM_6645: channel with freq 6645 + * @CHAN_ENUM_6665: channel with freq 6665 + * @CHAN_ENUM_6685: channel with freq 6685 + * @CHAN_ENUM_6705: channel with freq 6705 + * @CHAN_ENUM_6725: channel with freq 6725 + * @CHAN_ENUM_6745: channel with freq 6745 + * @CHAN_ENUM_6765: channel with freq 6765 + * @CHAN_ENUM_6785: channel with freq 6785 + * @CHAN_ENUM_6805: channel with freq 6805 + * @CHAN_ENUM_6825: channel with freq 6825 + * @CHAN_ENUM_6845: channel with freq 6845 + * @CHAN_ENUM_6865: channel with freq 6865 + * @CHAN_ENUM_6885: channel with freq 6885 + * @CHAN_ENUM_6905: channel with freq 6905 + * @CHAN_ENUM_6925: channel with freq 6925 + * @CHAN_ENUM_6945: channel with freq 6945 + * @CHAN_ENUM_6965: channel with freq 6965 + * @CHAN_ENUM_6985: channel with freq 6985 + * @CHAN_ENUM_7005: channel with freq 7005 + * @CHAN_ENUM_7025: channel with freq 7025 + * @CHAN_ENUM_7045: channel with freq 7045 + * @CHAN_ENUM_7065: channel with freq 7065 + * @CHAN_ENUM_7085: channel with freq 7085 + * @CHAN_ENUM_7105: channel with freq 7105 */ enum channel_enum { CHAN_ENUM_2412, @@ -505,6 +564,67 @@ enum channel_enum { CHAN_ENUM_5910, CHAN_ENUM_5915, CHAN_ENUM_5920, +#ifdef CONFIG_BAND_6GHZ + CHAN_ENUM_5945, + CHAN_ENUM_5965, + CHAN_ENUM_5985, + CHAN_ENUM_6005, + CHAN_ENUM_6025, + CHAN_ENUM_6045, + CHAN_ENUM_6065, + CHAN_ENUM_6085, + CHAN_ENUM_6105, + CHAN_ENUM_6125, + CHAN_ENUM_6145, + CHAN_ENUM_6165, + CHAN_ENUM_6185, + CHAN_ENUM_6205, + CHAN_ENUM_6225, + CHAN_ENUM_6245, + CHAN_ENUM_6265, + CHAN_ENUM_6285, + CHAN_ENUM_6305, + CHAN_ENUM_6325, + CHAN_ENUM_6345, + CHAN_ENUM_6365, + CHAN_ENUM_6385, + CHAN_ENUM_6405, + CHAN_ENUM_6425, + CHAN_ENUM_6445, + CHAN_ENUM_6465, + CHAN_ENUM_6485, + CHAN_ENUM_6505, + CHAN_ENUM_6525, + CHAN_ENUM_6545, + CHAN_ENUM_6565, + CHAN_ENUM_6585, + CHAN_ENUM_6605, + CHAN_ENUM_6625, + CHAN_ENUM_6645, + CHAN_ENUM_6665, + CHAN_ENUM_6685, + CHAN_ENUM_6705, + CHAN_ENUM_6725, + CHAN_ENUM_6745, + CHAN_ENUM_6765, + CHAN_ENUM_6785, + CHAN_ENUM_6805, + CHAN_ENUM_6825, + CHAN_ENUM_6845, + CHAN_ENUM_6865, + CHAN_ENUM_6885, + CHAN_ENUM_6905, + CHAN_ENUM_6925, + CHAN_ENUM_6945, + CHAN_ENUM_6965, + CHAN_ENUM_6985, + CHAN_ENUM_7005, + CHAN_ENUM_7025, + CHAN_ENUM_7045, + CHAN_ENUM_7065, + CHAN_ENUM_7085, + CHAN_ENUM_7105, +#endif /* CONFIG_BAND_6GHZ */ NUM_CHANNELS, @@ -520,6 +640,12 @@ enum channel_enum { MAX_5GHZ_CHANNEL = CHAN_ENUM_5920, NUM_5GHZ_CHANNELS = (MAX_5GHZ_CHANNEL - MIN_5GHZ_CHANNEL + 1), +#ifdef CONFIG_BAND_6GHZ + MIN_6GHZ_CHANNEL = CHAN_ENUM_5945, + MAX_6GHZ_CHANNEL = CHAN_ENUM_7105, + NUM_6GHZ_CHANNELS = (MAX_6GHZ_CHANNEL - MIN_6GHZ_CHANNEL + 1), +#endif /* CONFIG_BAND_6GHZ */ + MIN_DSRC_CHANNEL = CHAN_ENUM_5850, MAX_DSRC_CHANNEL = CHAN_ENUM_5920, NUM_DSRC_CHANNELS = (MAX_DSRC_CHANNEL - MIN_DSRC_CHANNEL + 1), diff --git a/umac/regulatory/dispatcher/inc/wlan_reg_services_api.h b/umac/regulatory/dispatcher/inc/wlan_reg_services_api.h index b3a7d32908..9c1998ffa2 100644 --- a/umac/regulatory/dispatcher/inc/wlan_reg_services_api.h +++ b/umac/regulatory/dispatcher/inc/wlan_reg_services_api.h @@ -94,6 +94,24 @@ bool wlan_reg_is_24ghz_ch_freq(uint32_t freq); #define WLAN_REG_IS_5GHZ_CH_FREQ(freq) wlan_reg_is_5ghz_ch_freq(freq) bool wlan_reg_is_5ghz_ch_freq(uint32_t freq); +#define WLAN_REG_IS_6GHZ_CHAN_FREQ(freq) wlan_reg_is_6ghz_chan_freq(freq) + +#ifdef CONFIG_BAND_6GHZ +/** + * wlan_reg_is_6ghz_chan_freq() - Check if the given channel frequency is 6GHz + * @freq: Channel frequency + * + * Return: true if channel frequency is 6GHz, else false + */ + +bool wlan_reg_is_6ghz_chan_freq(uint16_t freq); +#else +static inline bool wlan_reg_is_6ghz_chan_freq(uint16_t freq) +{ + return false; +} +#endif + #ifndef CONFIG_LEGACY_CHAN_ENUM /** * wlan_reg_is_49ghz_freq() - Check if the given channel frequency is 4.9GHz diff --git a/umac/regulatory/dispatcher/src/wlan_reg_services_api.c b/umac/regulatory/dispatcher/src/wlan_reg_services_api.c index 5b91725212..727d8742b2 100644 --- a/umac/regulatory/dispatcher/src/wlan_reg_services_api.c +++ b/umac/regulatory/dispatcher/src/wlan_reg_services_api.c @@ -666,6 +666,12 @@ bool wlan_reg_is_5ghz_ch_freq(uint32_t freq) return reg_is_5ghz_ch_freq(freq); } +#ifdef CONFIG_BAND_6GHZ +bool wlan_reg_is_6ghz_chan_freq(uint16_t freq) +{ + return reg_is_6ghz_chan_freq(freq); +} +#endif #ifndef CONFIG_LEGACY_CHAN_ENUM bool wlan_reg_is_49ghz_freq(uint32_t freq) {