3
0
mirror of https://git.kernel.org/pub/scm/network/wireless/iwd.git synced 2024-11-26 02:19:26 +01:00

band: add operating clases for 802.11ax

Obtained from the IEEE 802.11ax amendment, Table E-4
This commit is contained in:
James Prestwood 2022-02-25 09:58:00 -08:00 committed by Denis Kenzior
parent d3d449e287
commit 650cac7979

View File

@ -489,8 +489,8 @@ static int band_channel_info_get_bandwidth(const struct band_chandef *info)
struct operating_class_info {
uint32_t starting_frequency;
uint32_t flags;
uint8_t channel_set[20];
uint8_t center_frequencies[8];
uint8_t channel_set[60];
uint8_t center_frequencies[30];
uint16_t channel_spacing;
uint8_t operating_class;
};
@ -598,20 +598,20 @@ static const struct operating_class_info e4_operating_classes[] = {
{
.operating_class = 125,
.starting_frequency = 5000,
.channel_set = { 149, 153, 157, 161, 165, 169, 173},
.channel_set = { 149, 153, 157, 161, 165, 169, 173, 177 },
.channel_spacing = 20,
},
{
.operating_class = 126,
.starting_frequency = 5000,
.channel_set = { 149, 157, 165},
.channel_set = { 149, 157, 165, 173 },
.channel_spacing = 40,
.flags = PRIMARY_CHANNEL_LOWER,
},
{
.operating_class = 127,
.starting_frequency = 5000,
.channel_set = { 153, 161, 169 },
.channel_set = { 153, 161, 169, 177 },
.channel_spacing = 40,
.flags = PRIMARY_CHANNEL_UPPER,
},
@ -619,21 +619,68 @@ static const struct operating_class_info e4_operating_classes[] = {
.operating_class = 128,
.starting_frequency = 5000,
.channel_spacing = 80,
.center_frequencies = { 42, 58, 106, 122, 138, 155 },
.center_frequencies = { 42, 58, 106, 122, 138, 155, 171 },
},
{
.operating_class = 129,
.starting_frequency = 5000,
.channel_spacing = 160,
.center_frequencies = { 50, 114 },
.center_frequencies = { 50, 114, 163 },
},
{
.operating_class = 130,
.starting_frequency = 5000,
.channel_spacing = 80,
.center_frequencies = { 42, 58, 106, 122, 138, 155 },
.center_frequencies = { 42, 58, 106, 122, 138, 155, 171 },
.flags = PLUS80,
},
{
.operating_class = 131,
.starting_frequency = 5950,
.channel_spacing = 20,
.channel_set = { 1, 5, 9, 13, 17, 21, 25, 29, 33, 37, 41, 45,
49, 53, 57, 61, 65, 69, 73, 77, 81, 85, 89, 93,
97, 101, 105, 109, 113, 117, 121, 125, 129, 133,
137, 141, 145, 149, 153, 157, 161, 165, 169,
173, 177, 181, 185, 189, 193, 197, 201, 205,
209, 213, 217, 221, 225, 229, 233 },
},
{
.operating_class = 132,
.starting_frequency = 5950,
.channel_spacing = 40,
.center_frequencies = { 3, 11, 19, 27, 35, 43, 51, 59, 67, 75,
83, 91, 99, 107, 115, 123, 131, 139,
147, 155, 163, 171, 179, 187, 195, 203,
211, 219, 227 },
},
{
.operating_class = 133,
.starting_frequency = 5950,
.channel_spacing = 80,
.center_frequencies = { 7, 23, 39, 55, 71, 87, 103, 119, 135,
151, 167, 183, 199, 215 },
},
{
.operating_class = 134,
.starting_frequency = 5950,
.channel_spacing = 160,
.center_frequencies = { 15, 47, 79, 111, 143, 175, 207 },
},
{
.operating_class = 135,
.starting_frequency = 5950,
.channel_spacing = 80,
.center_frequencies = { 7, 23, 39, 55, 71, 87, 102, 119, 135,
151, 167, 183, 199, 215 },
.flags = PLUS80,
},
{
.operating_class = 136,
.starting_frequency = 5950,
.channel_spacing = 20,
.center_frequencies = { 2 },
}
};
static const struct operating_class_info *e4_find_opclass(uint32_t opclass)