| //------------------------------------------------------------------------------ |
| // <copyright file="wlan_utils.c" company="Atheros"> |
| // Copyright (c) 2004-2010 Atheros Corporation. All rights reserved. |
| // |
| // |
| // Permission to use, copy, modify, and/or distribute this software for any |
| // purpose with or without fee is hereby granted, provided that the above |
| // copyright notice and this permission notice appear in all copies. |
| // |
| // THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
| // WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
| // MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
| // ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
| // WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
| // ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
| // OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
| // |
| // |
| //------------------------------------------------------------------------------ |
| //============================================================================== |
| // This module implements frequently used wlan utilies |
| // |
| // Author(s): ="Atheros" |
| //============================================================================== |
| #include <a_config.h> |
| #include <athdefs.h> |
| #include <a_types.h> |
| #include <a_osapi.h> |
| |
| /* |
| * converts ieee channel number to frequency |
| */ |
| A_UINT16 |
| wlan_ieee2freq(int chan) |
| { |
| if (chan == 14) { |
| return 2484; |
| } |
| if (chan < 14) { /* 0-13 */ |
| return (2407 + (chan*5)); |
| } |
| if (chan < 27) { /* 15-26 */ |
| return (2512 + ((chan-15)*20)); |
| } |
| return (5000 + (chan*5)); |
| } |
| |
| /* |
| * Converts MHz frequency to IEEE channel number. |
| */ |
| A_UINT32 |
| wlan_freq2ieee(A_UINT16 freq) |
| { |
| if (freq == 2484) |
| return 14; |
| if (freq < 2484) |
| return (freq - 2407) / 5; |
| if (freq < 5000) |
| return 15 + ((freq - 2512) / 20); |
| return (freq - 5000) / 5; |
| } |