root/drivers/net/wireless/intel/iwlwifi/iwl-modparams.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. iwl_enable_rx_ampdu
  2. iwl_enable_tx_ampdu

   1 /******************************************************************************
   2  *
   3  * This file is provided under a dual BSD/GPLv2 license.  When using or
   4  * redistributing this file, you may do so under either license.
   5  *
   6  * GPL LICENSE SUMMARY
   7  *
   8  * Copyright(c) 2007 - 2014 Intel Corporation. All rights reserved.
   9  * Copyright(c) 2018 - 2019 Intel Corporation
  10  *
  11  * This program is free software; you can redistribute it and/or modify
  12  * it under the terms of version 2 of the GNU General Public License as
  13  * published by the Free Software Foundation.
  14  *
  15  * This program is distributed in the hope that it will be useful, but
  16  * WITHOUT ANY WARRANTY; without even the implied warranty of
  17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  18  * General Public License for more details.
  19  *
  20  * The full GNU General Public License is included in this distribution
  21  * in the file called COPYING.
  22  *
  23  * Contact Information:
  24  *  Intel Linux Wireless <linuxwifi@intel.com>
  25  * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
  26  *
  27  * BSD LICENSE
  28  *
  29  * Copyright(c) 2005 - 2014 Intel Corporation. All rights reserved.
  30  * Copyright(c) 2018 - 2019 Intel Corporation
  31  * All rights reserved.
  32  *
  33  * Redistribution and use in source and binary forms, with or without
  34  * modification, are permitted provided that the following conditions
  35  * are met:
  36  *
  37  *  * Redistributions of source code must retain the above copyright
  38  *    notice, this list of conditions and the following disclaimer.
  39  *  * Redistributions in binary form must reproduce the above copyright
  40  *    notice, this list of conditions and the following disclaimer in
  41  *    the documentation and/or other materials provided with the
  42  *    distribution.
  43  *  * Neither the name Intel Corporation nor the names of its
  44  *    contributors may be used to endorse or promote products derived
  45  *    from this software without specific prior written permission.
  46  *
  47  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  48  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  49  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
  50  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
  51  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  52  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  53  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  54  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  55  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  56  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  57  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  58  *
  59  *****************************************************************************/
  60 #ifndef __iwl_modparams_h__
  61 #define __iwl_modparams_h__
  62 
  63 #include <linux/types.h>
  64 #include <linux/spinlock.h>
  65 #include <linux/gfp.h>
  66 
  67 extern struct iwl_mod_params iwlwifi_mod_params;
  68 
  69 enum iwl_power_level {
  70         IWL_POWER_INDEX_1,
  71         IWL_POWER_INDEX_2,
  72         IWL_POWER_INDEX_3,
  73         IWL_POWER_INDEX_4,
  74         IWL_POWER_INDEX_5,
  75         IWL_POWER_NUM
  76 };
  77 
  78 enum iwl_disable_11n {
  79         IWL_DISABLE_HT_ALL       = BIT(0),
  80         IWL_DISABLE_HT_TXAGG     = BIT(1),
  81         IWL_DISABLE_HT_RXAGG     = BIT(2),
  82         IWL_ENABLE_HT_TXAGG      = BIT(3),
  83 };
  84 
  85 enum iwl_amsdu_size {
  86         IWL_AMSDU_DEF = 0,
  87         IWL_AMSDU_4K = 1,
  88         IWL_AMSDU_8K = 2,
  89         IWL_AMSDU_12K = 3,
  90         /* Add 2K at the end to avoid breaking current API */
  91         IWL_AMSDU_2K = 4,
  92 };
  93 
  94 enum iwl_uapsd_disable {
  95         IWL_DISABLE_UAPSD_BSS           = BIT(0),
  96         IWL_DISABLE_UAPSD_P2P_CLIENT    = BIT(1),
  97 };
  98 
  99 /**
 100  * struct iwl_mod_params
 101  *
 102  * Holds the module parameters
 103  *
 104  * @swcrypto: using hardware encryption, default = 0
 105  * @disable_11n: disable 11n capabilities, default = 0,
 106  *      use IWL_[DIS,EN]ABLE_HT_* constants
 107  * @amsdu_size: See &enum iwl_amsdu_size.
 108  * @fw_restart: restart firmware, default = 1
 109  * @bt_coex_active: enable bt coex, default = true
 110  * @led_mode: system default, default = 0
 111  * @power_save: enable power save, default = false
 112  * @power_level: power level, default = 1
 113  * @debug_level: levels are IWL_DL_*
 114  * @antenna_coupling: antenna coupling in dB, default = 0
 115  * @nvm_file: specifies a external NVM file
 116  * @uapsd_disable: disable U-APSD, see &enum iwl_uapsd_disable, default =
 117  *      IWL_DISABLE_UAPSD_BSS | IWL_DISABLE_UAPSD_P2P_CLIENT
 118  * @lar_disable: disable LAR (regulatory), default = 0
 119  * @fw_monitor: allow to use firmware monitor
 120  * @disable_11ac: disable VHT capabilities, default = false.
 121  * @remove_when_gone: remove an inaccessible device from the PCIe bus.
 122  * @enable_ini: enable new FW debug infratructure (INI TLVs)
 123  */
 124 struct iwl_mod_params {
 125         int swcrypto;
 126         unsigned int disable_11n;
 127         int amsdu_size;
 128         bool fw_restart;
 129         bool bt_coex_active;
 130         int led_mode;
 131         bool power_save;
 132         int power_level;
 133 #ifdef CONFIG_IWLWIFI_DEBUG
 134         u32 debug_level;
 135 #endif
 136         int antenna_coupling;
 137         char *nvm_file;
 138         u32 uapsd_disable;
 139         bool lar_disable;
 140         bool fw_monitor;
 141         bool disable_11ac;
 142         /**
 143          * @disable_11ax: disable HE capabilities, default = false
 144          */
 145         bool disable_11ax;
 146         bool remove_when_gone;
 147         bool enable_ini;
 148 };
 149 
 150 static inline bool iwl_enable_rx_ampdu(void)
 151 {
 152         if (iwlwifi_mod_params.disable_11n & IWL_DISABLE_HT_RXAGG)
 153                 return false;
 154         return true;
 155 }
 156 
 157 static inline bool iwl_enable_tx_ampdu(void)
 158 {
 159         if (iwlwifi_mod_params.disable_11n & IWL_DISABLE_HT_TXAGG)
 160                 return false;
 161         if (iwlwifi_mod_params.disable_11n & IWL_ENABLE_HT_TXAGG)
 162                 return true;
 163 
 164         /* enabled by default */
 165         return true;
 166 }
 167 
 168 #endif /* #__iwl_modparams_h__ */

/* [<][>][^][v][top][bottom][index][help] */