//------------------------------------------------------------------------------ // // 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 #include #include /* * converts ieee channel number to frequency */ u16 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. */ u32 wlan_freq2ieee(u16 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; }