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/fw/api/phy.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) 2012-2014, 2019-2021 Intel Corporation
    4  * Copyright (C) 2013-2015 Intel Mobile Communications GmbH
    5  * Copyright (C) 2016-2017 Intel Deutschland GmbH
    6  */
    7 #ifndef __iwl_fw_api_phy_h__
    8 #define __iwl_fw_api_phy_h__
    9 
   10 /**
   11  * enum iwl_phy_ops_subcmd_ids - PHY group commands
   12  */
   13 enum iwl_phy_ops_subcmd_ids {
   14         /**
   15          * @CMD_DTS_MEASUREMENT_TRIGGER_WIDE:
   16          * Uses either &struct iwl_dts_measurement_cmd or
   17          * &struct iwl_ext_dts_measurement_cmd
   18          */
   19         CMD_DTS_MEASUREMENT_TRIGGER_WIDE = 0x0,
   20 
   21         /**
   22          * @CTDP_CONFIG_CMD: &struct iwl_mvm_ctdp_cmd
   23          */
   24         CTDP_CONFIG_CMD = 0x03,
   25 
   26         /**
   27          * @TEMP_REPORTING_THRESHOLDS_CMD: &struct temp_report_ths_cmd
   28          */
   29         TEMP_REPORTING_THRESHOLDS_CMD = 0x04,
   30 
   31         /**
   32          * @PER_CHAIN_LIMIT_OFFSET_CMD: &struct iwl_geo_tx_power_profiles_cmd
   33          */
   34         PER_CHAIN_LIMIT_OFFSET_CMD = 0x05,
   35 
   36         /**
   37          * @PER_PLATFORM_ANT_GAIN_CMD: &struct iwl_ppag_table_cmd
   38          */
   39         PER_PLATFORM_ANT_GAIN_CMD = 0x07,
   40 
   41         /**
   42          * @CT_KILL_NOTIFICATION: &struct ct_kill_notif
   43          */
   44         CT_KILL_NOTIFICATION = 0xFE,
   45 
   46         /**
   47          * @DTS_MEASUREMENT_NOTIF_WIDE:
   48          * &struct iwl_dts_measurement_notif_v1 or
   49          * &struct iwl_dts_measurement_notif_v2
   50          */
   51         DTS_MEASUREMENT_NOTIF_WIDE = 0xFF,
   52 };
   53 
   54 /* DTS measurements */
   55 
   56 enum iwl_dts_measurement_flags {
   57         DTS_TRIGGER_CMD_FLAGS_TEMP      = BIT(0),
   58         DTS_TRIGGER_CMD_FLAGS_VOLT      = BIT(1),
   59 };
   60 
   61 /**
   62  * struct iwl_dts_measurement_cmd - request DTS temp and/or voltage measurements
   63  *
   64  * @flags: indicates which measurements we want as specified in
   65  *      &enum iwl_dts_measurement_flags
   66  */
   67 struct iwl_dts_measurement_cmd {
   68         __le32 flags;
   69 } __packed; /* TEMPERATURE_MEASUREMENT_TRIGGER_CMD_S */
   70 
   71 /**
   72 * enum iwl_dts_control_measurement_mode - DTS measurement type
   73 * @DTS_AUTOMATIC: Automatic mode (full SW control). Provide temperature read
   74 *                 back (latest value. Not waiting for new value). Use automatic
   75 *                 SW DTS configuration.
   76 * @DTS_REQUEST_READ: Request DTS read. Configure DTS with manual settings,
   77 *                    trigger DTS reading and provide read back temperature read
   78 *                    when available.
   79 * @DTS_OVER_WRITE: over-write the DTS temperatures in the SW until next read
   80 * @DTS_DIRECT_WITHOUT_MEASURE: DTS returns its latest temperature result,
   81 *                              without measurement trigger.
   82 */
   83 enum iwl_dts_control_measurement_mode {
   84         DTS_AUTOMATIC                   = 0,
   85         DTS_REQUEST_READ                = 1,
   86         DTS_OVER_WRITE                  = 2,
   87         DTS_DIRECT_WITHOUT_MEASURE      = 3,
   88 };
   89 
   90 /**
   91 * enum iwl_dts_used - DTS to use or used for measurement in the DTS request
   92 * @DTS_USE_TOP: Top
   93 * @DTS_USE_CHAIN_A: chain A
   94 * @DTS_USE_CHAIN_B: chain B
   95 * @DTS_USE_CHAIN_C: chain C
   96 * @XTAL_TEMPERATURE: read temperature from xtal
   97 */
   98 enum iwl_dts_used {
   99         DTS_USE_TOP             = 0,
  100         DTS_USE_CHAIN_A         = 1,
  101         DTS_USE_CHAIN_B         = 2,
  102         DTS_USE_CHAIN_C         = 3,
  103         XTAL_TEMPERATURE        = 4,
  104 };
  105 
  106 /**
  107 * enum iwl_dts_bit_mode - bit-mode to use in DTS request read mode
  108 * @DTS_BIT6_MODE: bit 6 mode
  109 * @DTS_BIT8_MODE: bit 8 mode
  110 */
  111 enum iwl_dts_bit_mode {
  112         DTS_BIT6_MODE   = 0,
  113         DTS_BIT8_MODE   = 1,
  114 };
  115 
  116 /**
  117  * struct iwl_ext_dts_measurement_cmd - request extended DTS temp measurements
  118  * @control_mode: see &enum iwl_dts_control_measurement_mode
  119  * @temperature: used when over write DTS mode is selected
  120  * @sensor: set temperature sensor to use. See &enum iwl_dts_used
  121  * @avg_factor: average factor to DTS in request DTS read mode
  122  * @bit_mode: value defines the DTS bit mode to use. See &enum iwl_dts_bit_mode
  123  * @step_duration: step duration for the DTS
  124  */
  125 struct iwl_ext_dts_measurement_cmd {
  126         __le32 control_mode;
  127         __le32 temperature;
  128         __le32 sensor;
  129         __le32 avg_factor;
  130         __le32 bit_mode;
  131         __le32 step_duration;
  132 } __packed; /* XVT_FW_DTS_CONTROL_MEASUREMENT_REQUEST_API_S */
  133 
  134 /**
  135  * struct iwl_dts_measurement_notif_v1 - measurements notification
  136  *
  137  * @temp: the measured temperature
  138  * @voltage: the measured voltage
  139  */
  140 struct iwl_dts_measurement_notif_v1 {
  141         __le32 temp;
  142         __le32 voltage;
  143 } __packed; /* TEMPERATURE_MEASUREMENT_TRIGGER_NTFY_S_VER_1*/
  144 
  145 /**
  146  * struct iwl_dts_measurement_notif_v2 - measurements notification
  147  *
  148  * @temp: the measured temperature
  149  * @voltage: the measured voltage
  150  * @threshold_idx: the trip index that was crossed
  151  */
  152 struct iwl_dts_measurement_notif_v2 {
  153         __le32 temp;
  154         __le32 voltage;
  155         __le32 threshold_idx;
  156 } __packed; /* TEMPERATURE_MEASUREMENT_TRIGGER_NTFY_S_VER_2 */
  157 
  158 /**
  159  * struct iwl_dts_measurement_resp - measurements response
  160  *
  161  * @temp: the measured temperature
  162  */
  163 struct iwl_dts_measurement_resp {
  164         __le32 temp;
  165 } __packed; /* CMD_DTS_MEASUREMENT_RSP_API_S_VER_1 */
  166 
  167 /**
  168  * struct ct_kill_notif - CT-kill entry notification
  169  * This structure represent both versions of this notification.
  170  *
  171  * @temperature: the current temperature in celsius
  172  * @dts: only in v2: DTS that trigger the CT Kill bitmap:
  173  *                      bit 0: ToP master
  174  *                      bit 1: PA chain A master
  175  *                      bit 2: PA chain B master
  176  *                      bit 3: ToP slave
  177  *                      bit 4: PA chain A slave
  178  *                      bit 5: PA chain B slave)
  179  *                      bits 6,7: reserved (set to 0)
  180  * @scheme: only for v2: scheme that trigger the CT Kill (0-SW, 1-HW)
  181  */
  182 struct ct_kill_notif {
  183         __le16 temperature;
  184         u8 dts;
  185         u8 scheme;
  186 } __packed; /* CT_KILL_NOTIFICATION_API_S_VER_1, CT_KILL_NOTIFICATION_API_S_VER_2 */
  187 
  188 /**
  189 * enum ctdp_cmd_operation - CTDP command operations
  190 * @CTDP_CMD_OPERATION_START: update the current budget
  191 * @CTDP_CMD_OPERATION_STOP: stop ctdp
  192 * @CTDP_CMD_OPERATION_REPORT: get the average budget
  193 */
  194 enum iwl_mvm_ctdp_cmd_operation {
  195         CTDP_CMD_OPERATION_START        = 0x1,
  196         CTDP_CMD_OPERATION_STOP         = 0x2,
  197         CTDP_CMD_OPERATION_REPORT       = 0x4,
  198 };/* CTDP_CMD_OPERATION_TYPE_E */
  199 
  200 /**
  201  * struct iwl_mvm_ctdp_cmd - track and manage the FW power consumption budget
  202  *
  203  * @operation: see &enum iwl_mvm_ctdp_cmd_operation
  204  * @budget: the budget in milliwatt
  205  * @window_size: defined in API but not used
  206  */
  207 struct iwl_mvm_ctdp_cmd {
  208         __le32 operation;
  209         __le32 budget;
  210         __le32 window_size;
  211 } __packed;
  212 
  213 #define IWL_MAX_DTS_TRIPS       8
  214 
  215 /**
  216  * struct temp_report_ths_cmd - set temperature thresholds
  217  *
  218  * @num_temps: number of temperature thresholds passed
  219  * @thresholds: array with the thresholds to be configured
  220  */
  221 struct temp_report_ths_cmd {
  222         __le32 num_temps;
  223         __le16 thresholds[IWL_MAX_DTS_TRIPS];
  224 } __packed; /* GRP_PHY_TEMP_REPORTING_THRESHOLDS_CMD */
  225 
  226 #endif /* __iwl_fw_api_phy_h__ */

Cache object: ebfed4d521244ef94426a6d4ceee78cd


[ 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.