linux/drivers/net/wireless/intel/iwlwifi/dvm/devices.c

// SPDX-License-Identifier: GPL-2.0-only
/******************************************************************************
 *
 * Copyright(c) 2008 - 2014 Intel Corporation. All rights reserved.
 * Copyright (C) 2019 Intel Corporation
 *****************************************************************************/

#include <linux/units.h>

/*
 * DVM device-specific data & functions
 */
#include "iwl-io.h"
#include "iwl-prph.h"
#include "iwl-nvm-utils.h"

#include "agn.h"
#include "dev.h"
#include "commands.h"


/*
 * 1000 series
 * ===========
 */

/*
 * For 1000, use advance thermal throttling critical temperature threshold,
 * but legacy thermal management implementation for now.
 * This is for the reason of 1000 uCode using advance thermal throttling API
 * but not implement ct_kill_exit based on ct_kill exit temperature
 * so the thermal throttling will still based on legacy thermal throttling
 * management.
 * The code here need to be modified once 1000 uCode has the advanced thermal
 * throttling algorithm in place
 */
static void iwl1000_set_ct_threshold(struct iwl_priv *priv)
{}

/* NIC configuration for 1000 series */
static void iwl1000_nic_config(struct iwl_priv *priv)
{}

/**
 * iwl_beacon_time_mask_low - mask of lower 32 bit of beacon time
 * @priv: pointer to iwl_priv data structure
 * @tsf_bits: number of bits need to shift for masking)
 */
static inline u32 iwl_beacon_time_mask_low(struct iwl_priv *priv,
					   u16 tsf_bits)
{}

/**
 * iwl_beacon_time_mask_high - mask of higher 32 bit of beacon time
 * @priv: pointer to iwl_priv data structure
 * @tsf_bits: number of bits need to shift for masking)
 */
static inline u32 iwl_beacon_time_mask_high(struct iwl_priv *priv,
					    u16 tsf_bits)
{}

/*
 * extended beacon time format
 * time in usec will be changed into a 32-bit value in extended:internal format
 * the extended part is the beacon counts
 * the internal part is the time in usec within one beacon interval
 */
static u32 iwl_usecs_to_beacons(struct iwl_priv *priv, u32 usec,
				u32 beacon_interval)
{}

/* base is usually what we get from ucode with each received frame,
 * the same as HW timer counter counting down
 */
static __le32 iwl_add_beacon_time(struct iwl_priv *priv, u32 base,
			   u32 addon, u32 beacon_interval)
{}

static const struct iwl_sensitivity_ranges iwl1000_sensitivity =;

static void iwl1000_hw_set_hw_params(struct iwl_priv *priv)
{}

const struct iwl_dvm_cfg iwl_dvm_1000_cfg =;


/*
 * 2000 series
 * ===========
 */

static void iwl2000_set_ct_threshold(struct iwl_priv *priv)
{}

/* NIC configuration for 2000 series */
static void iwl2000_nic_config(struct iwl_priv *priv)
{}

static const struct iwl_sensitivity_ranges iwl2000_sensitivity =;

static void iwl2000_hw_set_hw_params(struct iwl_priv *priv)
{}

const struct iwl_dvm_cfg iwl_dvm_2000_cfg =;

const struct iwl_dvm_cfg iwl_dvm_105_cfg =;

static const struct iwl_dvm_bt_params iwl2030_bt_params =;

const struct iwl_dvm_cfg iwl_dvm_2030_cfg =;

/*
 * 5000 series
 * ===========
 */

/* NIC configuration for 5000 series */
static const struct iwl_sensitivity_ranges iwl5000_sensitivity =;

static const struct iwl_sensitivity_ranges iwl5150_sensitivity =;

#define IWL_5150_VOLTAGE_TO_TEMPERATURE_COEFF

static s32 iwl_temp_calib_to_offset(struct iwl_priv *priv)
{}

static void iwl5150_set_ct_threshold(struct iwl_priv *priv)
{}

static void iwl5000_set_ct_threshold(struct iwl_priv *priv)
{}

static void iwl5000_hw_set_hw_params(struct iwl_priv *priv)
{}

static void iwl5150_hw_set_hw_params(struct iwl_priv *priv)
{}

static void iwl5150_temperature(struct iwl_priv *priv)
{}

static int iwl5000_hw_channel_switch(struct iwl_priv *priv,
				     struct ieee80211_channel_switch *ch_switch)
{}

const struct iwl_dvm_cfg iwl_dvm_5000_cfg =;

const struct iwl_dvm_cfg iwl_dvm_5150_cfg =;



/*
 * 6000 series
 * ===========
 */

static void iwl6000_set_ct_threshold(struct iwl_priv *priv)
{}

/* NIC configuration for 6000 series */
static void iwl6000_nic_config(struct iwl_priv *priv)
{}

static const struct iwl_sensitivity_ranges iwl6000_sensitivity =;

static void iwl6000_hw_set_hw_params(struct iwl_priv *priv)
{}

static int iwl6000_hw_channel_switch(struct iwl_priv *priv,
				     struct ieee80211_channel_switch *ch_switch)
{}

const struct iwl_dvm_cfg iwl_dvm_6000_cfg =;

const struct iwl_dvm_cfg iwl_dvm_6005_cfg =;

const struct iwl_dvm_cfg iwl_dvm_6050_cfg =;

static const struct iwl_dvm_bt_params iwl6000_bt_params =;

const struct iwl_dvm_cfg iwl_dvm_6030_cfg =;