Lines Matching +full:20 +full:a

8  *      Unless you and Broadcom execute a separate written software license
14 * As a special exception, the copyright holders of this software give you
18 * the license of that module. An independent module is a module which is not
32 #define tolower(c) (bcm_isupper((c)) ? ((c) + 'a' - 'A') : (c))
62 * channel number of the 20MHz channel,
63 * or primary 20 MHz channel of 40MHz, 80MHz, 160MHz, 80+80MHz,
66 * (optional) 20, 40, 80, 160, 80+80, 240, 320, or 160+160. Default value is 20.
77 * non-overlapping and the primary 20MHz channel position is derived from its
85 * In its simplest form, it is a 20MHz channel number, with the implied band
98 * 5g8 20MHz 8 - -
99 * 52 20MHz 52 - -
112 * 2g8 20MHz 8 - -
113 * 8 20MHz 8 - -
114 * 6 20MHz 6 - -
126 "20",
135 320, 320, 20, 40, 80, 160, 160, 240
270 /* sb must be a index to a 20MHz channel in range */ in channel_to_sb()
312 /* The 6GHz center channels start at 7, and have a spacing of 16 */ in channel_6g_80mhz_to_id()
344 /* The 6GHz center channels start at 15, and have a spacing of 32 */ in channel_6g_160mhz_to_id()
360 /* The 6GHz center channels start at 23, and have a spacing of 48 */ in channel_6g_240mhz_to_id()
376 /* The 6GHz center channels start at 31, and have a spacing of 64 */ in channel_6g_320mhz_to_id()
400 /* The 6GHz center channels have a spacing of 48 in wf_chspec_6G_id240_to_ch()
436 /* The 6GHz center channels have a spacing of 64 in wf_chspec_6G_id320_to_ch()
493 * Given a chanspec and a string buffer, format the chanspec as a
572 /* if endp is the initial pointer value, then a number was not read */ in read_uint()
587 * @param a pointer to input string
592 wf_chspec_aton(const char *a) in wf_chspec_aton() argument
602 bw = 20; in wf_chspec_aton()
606 if (!read_uint(&a, &num)) in wf_chspec_aton()
608 /* if we are looking at a 'g', then the first number was a band */ in wf_chspec_aton()
609 c = tolower((int)a[0]); in wf_chspec_aton()
611 a++; /* consume the char */ in wf_chspec_aton()
624 if (!read_uint(&a, &pri_ch)) in wf_chspec_aton()
627 c = tolower((int)a[0]); in wf_chspec_aton()
636 /* default BW of 20MHz */ in wf_chspec_aton()
641 a ++; /* consume the 'u','l', or '/' */ in wf_chspec_aton()
655 if (!read_uint(&a, &bw)) in wf_chspec_aton()
659 if (bw == 20) { in wf_chspec_aton()
679 c = tolower((int)a[0]); in wf_chspec_aton()
681 /* if we have a 2g/40 channel, we should have a l/u spec now */ in wf_chspec_aton()
684 a ++; /* consume the u/l char */ in wf_chspec_aton()
697 while (a[0] == ' ') { in wf_chspec_aton()
698 a ++; in wf_chspec_aton()
702 if (a[0] != '\0') in wf_chspec_aton()
709 * a center channel (or two) and sideband. in wf_chspec_aton()
712 /* if a sb u/l string was given, just use that, in wf_chspec_aton()
723 /* if the bw is 20, only need the primary channel and band */ in wf_chspec_aton()
729 * will create the chanspec. 2G 40MHz is handled just above, assuming a {u,l} in wf_chspec_aton()
742 * Verify the chanspec is using a legal set of parameters, i.e. that the
743 * chanspec specified a band, bw, pri_sb and channel and that the
811 /* must be a valid band */ in BCMPOSTTRAPFN()
850 * Verify the chanspec specifies a valid channel according to 802.11.
854 * @return Returns TRUE if the chanspec is a valid 802.11 channel
884 * a valid band field, in wf_chspec_valid()
885 * a valid bandwidth for the band, in wf_chspec_valid()
886 * and a valid sub-band value for the bandwidth. in wf_chspec_valid()
890 * the 20MHz channel, in wf_chspec_valid()
926 /* 5G band 20MHz channel ranges with even (+4) channel spacing */
941 * @brief Initialize a chanspec iteration structure.
966 /* make sure the BW is unspecified (INVCHANSPEC), 20/40, in wf_chanspec_iter_init()
1005 /* if BW unspecified (INVCHANSPEC), start with 20 MHz */ in wf_chanspec_iter_firstchan()
1068 /* Return the new chanspec if a pointer was provided. in wf_chanspec_iter_next()
1079 * When the iterator completes a particular bandwidth, this function
1126 /* hit the end of 20M channels, go to 40M if bw was unspecified */ in wf_chanspec_iter_next_2g()
1137 /* move from lower primary 20 to upper */ in wf_chanspec_iter_next_2g()
1141 /* move to next 40M center and lower primary 20 */ in wf_chanspec_iter_next_2g()
1159 * The 5g iterator uses ranges of primary 20MHz channels, and the current BW, to create
1161 * When a 5g range is exhausted, wf_chanspec_iter_next_5g_range() is called to get the next
1174 * step to the next 20MHz channel and create the current BW in wf_chanspec_iter_next_5g()
1175 * channel with that new primary 20MHz. in wf_chanspec_iter_next_5g()
1179 /* there was a new range in the current BW, so start at the beginning */ in wf_chanspec_iter_next_5g()
1213 * Helper function to set up the next range of primary 20MHz channels to
1278 * The 6g iterator uses ranges of primary 20MHz channels, and the current BW, to create
1280 * Each BW in 6g has one contiguous range of primary 20MHz channels. When a range is
1293 * step to the next 20MHz channel and create the current BW in wf_chanspec_iter_next_6g()
1294 * channel with that new primary 20MHz. in wf_chanspec_iter_next_6g()
1298 /* try to create a valid channel of the current BW in wf_chanspec_iter_next_6g()
1299 * with a primary20 'ch' in wf_chanspec_iter_next_6g()
1359 * Verify that the channel is a valid 20MHz channel according to 802.11.
1361 * @param channel 20MHz channel number to validate
1378 /* We don't have an array of legal 20MHz 5G channels, but they are in wf_valid_20MHz_chan()
1411 /* Use the simple pattern of 6GHz 20MHz channels for validity check */ in wf_valid_20MHz_chan()
1424 * Verify that the center channel is a valid 40MHz center channel according to 802.11.
1461 * Verify that the center channel is a valid 80MHz center channel according to 802.11.
1487 * Verify that the center channel is a valid 160MHz center channel according to 802.11.
1519 * Verify that the center channel is a valid 240MHz center channel according to 802.11.
1542 * Verify that the center channel is a valid 320MHz center channel according to 802.11.
1584 * Create a 20MHz chanspec for the given band.
1586 * This function returns a 20MHz chanspec in the given band.
1588 * @param channel 20MHz channel number
1589 * @param band a chanspec band (e.g. WL_CHANSPEC_BAND_2G)
1591 * @return Returns a 20MHz chanspec, or IVNCHANSPEC in case of error.
1614 * Returns the chanspec for a 40MHz channel given the primary 20MHz channel number,
1617 * @param primary_channel primary 20Mhz channel
1624 * @return returns a 40MHz chanspec, or INVCHANSPEC in case of error
1633 * Will return -1 if not a valid pair for 40MHz in wf_create_40MHz_chspec()
1650 * Returns the chanspec for a 40MHz channel given the primary 20MHz channel number,
1651 * the sub-band for the primary 20MHz channel, and the band.
1653 * @param primary_channel primary 20Mhz channel
1654 * @param primary_subband sub-band of the 20MHz primary channel (chanspec_subband_t value)
1660 * @return returns a 40MHz chanspec, or INVCHANSPEC in case of error
1681 * Returns the chanspec for an 80MHz channel given the primary 20MHz channel number,
1684 * @param primary_channel primary 20Mhz channel
1700 * Will return -1 if not a valid pair for 80MHz in wf_create_80MHz_chspec()
1717 * Returns the chanspec for an 160MHz channel given the primary 20MHz channel number,
1720 * @param primary_channel primary 20Mhz channel
1735 * Will return -1 if not a valid pair for 160MHz in wf_create_160MHz_chspec()
1752 * Returns the chanspec for an 80+80MHz channel given the primary 20MHz channel number,
1755 * @param primary_channel primary 20 Mhz channel
1825 * Returns the chanspec for an 160+160MHz channel given the primary 20MHz channel number,
1828 * @param primary_channel primary 20 Mhz channel
1898 * Returns the chanspec for an 240MHz channel given the primary 20MHz channel number,
1901 * @param primary_channel primary 20 Mhz channel
1926 * Will return -1 if not a valid pair for 240MHz in wf_create_240MHz_chspec()
1946 * Returns the chanspec for an 320MHz channel given the primary 20MHz channel number,
1949 * @param primary_channel primary 20 Mhz channel
1977 * Will return -1 if not a valid pair for 320MHz in wf_create_320MHz_chspec()
1997 * Returns the chanspec given the primary 20MHz channel number,
1999 * must be 20, 40, 80, 160, 240 or 320 MHz.
2003 * @param primary_channel primary 20Mhz channel
2011 * @return returns a chanspec, or INVCHANSPEC in case of error
2021 /* 20MHz channels have matching center and primary channels */ in wf_create_chspec()
2036 /* if we have a good sub-band, assemble the chanspec, and use wf_chspec_valid() in wf_create_chspec()
2068 * Returns the chanspec given the primary 20MHz channel number,
2071 * @param primary_channel primary 20Mhz channel
2075 * @return returns a chanspec, or INVCHANSPEC in case of error
2077 * This function is a similar to wf_create_chspec() but does not require the
2078 * center_channel parameter. As a result, it can not create 40MHz channels on
2081 * This function supports creating 20MHz bandwidth chanspecs on any band.
2084 * have the same primary 20MHz channel. This function will return INVCHANSPEC
2085 * whenever called with a bandwidth of 40MHz or wider for the 2GHz band.
2087 * 5GHz and 6GHz bands have non-overlapping 40/80/160 MHz channels, so a
2088 * 20MHz primary channel uniquely specifies a wider channel in a given band.
2102 * and search for a center channel compatible with the given primary channel. in wf_create_chspec_from_primary()
2132 /* For 6GHz, use a formula to calculate the valid 40/80/160 center channel from in wf_create_chspec_from_primary()
2171 * Return the primary 20MHz channel.
2173 * This function returns the channel number of the primary 20MHz channel. For
2174 * 20MHz channels this is just the channel number. For 40MHz or wider channels
2175 * it is the primary 20MHz channel specified by the chanspec.
2179 * @return Returns the channel number of the primary 20MHz channel
2190 /* Is there a sideband ? */ in wf_chspec_primary20_chan()
2228 * Return the bandwidth string for a given chanspec
2235 * "320", "160+160", "20", "40", "80", "160", "80+80", "240"
2244 * Return the primary 20MHz chanspec of a given chanspec
2246 * This function returns the chanspec of the primary 20MHz channel. For 20MHz
2248 * chanspec of the primary 20MHz channel specified by the chanspec.
2252 * @return Returns the chanspec of the primary 20MHz channel
2262 /* Is there a sideband ? */ in wf_chspec_primary20_chspec()
2271 /* return chanspec given primary 20MHz channel and bandwidth
2327 * Return the primary 40MHz chanspec or a 40MHz or wider channel
2330 * The primary 40MHz channel is the 40MHz sub-band that contains the primary 20MHz channel.
2331 * The primary 20MHz channel of the returned 40MHz chanspec is the same as the primary 20MHz
2336 * @return Returns the chanspec of the primary 20MHz channel
2377 * Return the channel number for a given frequency and base frequency.
2382 * @return Returns a channel number > 0, or -1 on error
2404 * frequency is not a 2.4 GHz channel. For any other start factor the frequency
2407 * For a start_factor WF_CHAN_FACTOR_6_G, the frequency may be up to 7.205 MHz
2450 /* check that frequency is a 5MHz multiple from the base */ in wf_mhz2channel()
2457 * handled above as it is a non-5MHz offset in wf_mhz2channel()
2464 /* 6G has a higher channel range than 5G channelization specifies [1,200] */ in wf_mhz2channel()
2485 * The channel range of [1, 14] is only checked for a start_factor of
2496 * @return Returns a frequency in MHz
2533 * primary_channel - primary 20Mhz channel
2558 * find a 80MHz chanspec with the given center_channel that had a primary channel in wf_chspec_80()
2567 * primary_20mhz - Primary 20 MHz channel
2743 * For 20/40/80MHz chanspec, set ch[0] to be the center freq, and chan[1]=-1
2755 /* for 20, 40, and 80 Mhz */ in wf_chspec_get_80p80_channels()
2850 /* Populates array with all 20MHz side bands of a given chanspec_t in the following order:
2855 * Works with 20, 40, 80, and 160MHz chspec
2866 return; /* nothing more to do since 20MHz chspec */ in wf_get_all_ext()
2868 /* 20MHz EXT */ in wf_get_all_ext()
2877 GET_ALL_SB(t, &((pext)[2])); /* get the 20MHz side bands in 40MHz EXT */ in wf_get_all_ext()
2883 /* get the 20MHz side bands in 80MHz EXT (secondary) */ in wf_get_all_ext()
2889 * (Overlap: At least one 20MHz subband is common between the two chanspecs provided)