1e705c121SKalle Valo /****************************************************************************** 2e705c121SKalle Valo * 3e705c121SKalle Valo * This file is provided under a dual BSD/GPLv2 license. When using or 4e705c121SKalle Valo * redistributing this file, you may do so under either license. 5e705c121SKalle Valo * 6e705c121SKalle Valo * GPL LICENSE SUMMARY 7e705c121SKalle Valo * 8e705c121SKalle Valo * Copyright(c) 2008 - 2014 Intel Corporation. All rights reserved. 9e705c121SKalle Valo * 10e705c121SKalle Valo * This program is free software; you can redistribute it and/or modify 11e705c121SKalle Valo * it under the terms of version 2 of the GNU General Public License as 12e705c121SKalle Valo * published by the Free Software Foundation. 13e705c121SKalle Valo * 14e705c121SKalle Valo * This program is distributed in the hope that it will be useful, but 15e705c121SKalle Valo * WITHOUT ANY WARRANTY; without even the implied warranty of 16e705c121SKalle Valo * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 17e705c121SKalle Valo * General Public License for more details. 18e705c121SKalle Valo * 19e705c121SKalle Valo * You should have received a copy of the GNU General Public License 20e705c121SKalle Valo * along with this program; if not, write to the Free Software 21e705c121SKalle Valo * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, 22e705c121SKalle Valo * USA 23e705c121SKalle Valo * 24e705c121SKalle Valo * The full GNU General Public License is included in this distribution 25e705c121SKalle Valo * in the file called COPYING. 26e705c121SKalle Valo * 27e705c121SKalle Valo * Contact Information: 28d01c5366SEmmanuel Grumbach * Intel Linux Wireless <linuxwifi@intel.com> 29e705c121SKalle Valo * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 30e705c121SKalle Valo * 31e705c121SKalle Valo * BSD LICENSE 32e705c121SKalle Valo * 33e705c121SKalle Valo * Copyright(c) 2005 - 2014 Intel Corporation. All rights reserved. 34e705c121SKalle Valo * All rights reserved. 35e705c121SKalle Valo * 36e705c121SKalle Valo * Redistribution and use in source and binary forms, with or without 37e705c121SKalle Valo * modification, are permitted provided that the following conditions 38e705c121SKalle Valo * are met: 39e705c121SKalle Valo * 40e705c121SKalle Valo * * Redistributions of source code must retain the above copyright 41e705c121SKalle Valo * notice, this list of conditions and the following disclaimer. 42e705c121SKalle Valo * * Redistributions in binary form must reproduce the above copyright 43e705c121SKalle Valo * notice, this list of conditions and the following disclaimer in 44e705c121SKalle Valo * the documentation and/or other materials provided with the 45e705c121SKalle Valo * distribution. 46e705c121SKalle Valo * * Neither the name Intel Corporation nor the names of its 47e705c121SKalle Valo * contributors may be used to endorse or promote products derived 48e705c121SKalle Valo * from this software without specific prior written permission. 49e705c121SKalle Valo * 50e705c121SKalle Valo * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 51e705c121SKalle Valo * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 52e705c121SKalle Valo * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 53e705c121SKalle Valo * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 54e705c121SKalle Valo * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 55e705c121SKalle Valo * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 56e705c121SKalle Valo * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 57e705c121SKalle Valo * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 58e705c121SKalle Valo * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 59e705c121SKalle Valo * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 60e705c121SKalle Valo * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 61e705c121SKalle Valo *****************************************************************************/ 62e705c121SKalle Valo #ifndef __iwl_nvm_parse_h__ 63e705c121SKalle Valo #define __iwl_nvm_parse_h__ 64e705c121SKalle Valo 65e705c121SKalle Valo #include <net/cfg80211.h> 66e705c121SKalle Valo #include "iwl-eeprom-parse.h" 67e705c121SKalle Valo 68e705c121SKalle Valo /** 69e705c121SKalle Valo * iwl_parse_nvm_data - parse NVM data and return values 70e705c121SKalle Valo * 71e705c121SKalle Valo * This function parses all NVM values we need and then 72e705c121SKalle Valo * returns a (newly allocated) struct containing all the 73e705c121SKalle Valo * relevant values for driver use. The struct must be freed 74e705c121SKalle Valo * later with iwl_free_nvm_data(). 75e705c121SKalle Valo */ 76e705c121SKalle Valo struct iwl_nvm_data * 77*afd5b170SSara Sharon iwl_parse_nvm_data(struct iwl_trans *trans, const struct iwl_cfg *cfg, 78e705c121SKalle Valo const __le16 *nvm_hw, const __le16 *nvm_sw, 79e705c121SKalle Valo const __le16 *nvm_calib, const __le16 *regulatory, 80e705c121SKalle Valo const __le16 *mac_override, const __le16 *phy_sku, 81*afd5b170SSara Sharon u8 tx_chains, u8 rx_chains, bool lar_fw_supported); 82e705c121SKalle Valo 83e705c121SKalle Valo /** 84e705c121SKalle Valo * iwl_parse_mcc_info - parse MCC (mobile country code) info coming from FW 85e705c121SKalle Valo * 86e705c121SKalle Valo * This function parses the regulatory channel data received as a 87e705c121SKalle Valo * MCC_UPDATE_CMD command. It returns a newly allocation regulatory domain, 88e705c121SKalle Valo * to be fed into the regulatory core. An ERR_PTR is returned on error. 89e705c121SKalle Valo * If not given to the regulatory core, the user is responsible for freeing 90e705c121SKalle Valo * the regdomain returned here with kfree. 91e705c121SKalle Valo */ 92e705c121SKalle Valo struct ieee80211_regdomain * 93e705c121SKalle Valo iwl_parse_nvm_mcc_info(struct device *dev, const struct iwl_cfg *cfg, 94e705c121SKalle Valo int num_of_ch, __le32 *channels, u16 fw_mcc); 95e705c121SKalle Valo 96e705c121SKalle Valo #endif /* __iwl_nvm_parse_h__ */ 97