The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/dev/iwlwifi/iwl-eeprom-parse.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
    2 /*
    3  * Copyright (C) 2005-2014, 2018 Intel Corporation
    4  * Copyright (C) 2015 Intel Mobile Communications GmbH
    5  */
    6 #ifndef __iwl_eeprom_parse_h__
    7 #define __iwl_eeprom_parse_h__
    8 
    9 #include <linux/types.h>
   10 #include <linux/if_ether.h>
   11 #include <net/cfg80211.h>
   12 #include "iwl-trans.h"
   13 
   14 struct iwl_nvm_data {
   15         int n_hw_addrs;
   16         u8 hw_addr[ETH_ALEN];
   17 
   18         u8 calib_version;
   19         __le16 calib_voltage;
   20 
   21         __le16 raw_temperature;
   22         __le16 kelvin_temperature;
   23         __le16 kelvin_voltage;
   24         __le16 xtal_calib[2];
   25 
   26         bool sku_cap_band_24ghz_enable;
   27         bool sku_cap_band_52ghz_enable;
   28         bool sku_cap_11n_enable;
   29         bool sku_cap_11ac_enable;
   30         bool sku_cap_11ax_enable;
   31         bool sku_cap_amt_enable;
   32         bool sku_cap_ipan_enable;
   33         bool sku_cap_mimo_disabled;
   34 
   35         u16 radio_cfg_type;
   36         u8 radio_cfg_step;
   37         u8 radio_cfg_dash;
   38         u8 radio_cfg_pnum;
   39         u8 valid_tx_ant, valid_rx_ant;
   40 
   41         u32 nvm_version;
   42         s8 max_tx_pwr_half_dbm;
   43 
   44         bool lar_enabled;
   45         bool vht160_supported;
   46         struct ieee80211_supported_band bands[NUM_NL80211_BANDS];
   47 
   48         /*
   49          * iftype data for low (2.4 GHz) and high (5 and 6 GHz) bands,
   50          * we can use the same for 5 and 6 GHz bands because they have
   51          * the same data
   52          */
   53         struct {
   54                 struct ieee80211_sband_iftype_data low[2];
   55                 struct ieee80211_sband_iftype_data high[2];
   56         } iftd;
   57 
   58         struct ieee80211_channel channels[];
   59 };
   60 
   61 /**
   62  * iwl_parse_eeprom_data - parse EEPROM data and return values
   63  *
   64  * @dev: device pointer we're parsing for, for debug only
   65  * @cfg: device configuration for parsing and overrides
   66  * @eeprom: the EEPROM data
   67  * @eeprom_size: length of the EEPROM data
   68  *
   69  * This function parses all EEPROM values we need and then
   70  * returns a (newly allocated) struct containing all the
   71  * relevant values for driver use. The struct must be freed
   72  * later with iwl_free_nvm_data().
   73  */
   74 struct iwl_nvm_data *
   75 iwl_parse_eeprom_data(struct iwl_trans *trans, const struct iwl_cfg *cfg,
   76                       const u8 *eeprom, size_t eeprom_size);
   77 
   78 int iwl_init_sband_channels(struct iwl_nvm_data *data,
   79                             struct ieee80211_supported_band *sband,
   80                             int n_channels, enum nl80211_band band);
   81 
   82 void iwl_init_ht_hw_capab(struct iwl_trans *trans,
   83                           struct iwl_nvm_data *data,
   84                           struct ieee80211_sta_ht_cap *ht_info,
   85                           enum nl80211_band band,
   86                           u8 tx_chains, u8 rx_chains);
   87 
   88 #endif /* __iwl_eeprom_parse_h__ */

Cache object: cc61d748ed4ccd3cb2aca7f8df049641


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.