FreeBSD kernel ATH device code
ar5413.c File Reference
#include "opt_ah.h"
#include "ah.h"
#include "ah_internal.h"
#include "ah_eeprom_v3.h"
#include "ar5212/ar5212.h"
#include "ar5212/ar5212reg.h"
#include "ar5212/ar5212phy.h"
#include "ar5212/ar5212.ini"
Include dependency graph for ar5413.c:

Go to the source code of this file.

Data Structures

struct  ar5413State
 

Macros

#define AH_5212_5413
 
#define N(a)   (sizeof(a)/sizeof(a[0]))
 
#define AR5413(ah)   ((struct ar5413State *) AH5212(ah)->ah_rfHal)
 
#define RF_BANK_SETUP(_priv, _ix, _col)
 
#define VpdTable_L   priv->vpdTable_L
 
#define VpdTable_R   priv->vpdTable_R
 
#define VpdTable_I   priv->vpdTable_I
 

Functions

void ar5212ModifyRfBuffer (uint32_t *rfBuf, uint32_t reg32, uint32_t numBits, uint32_t firstBit, uint32_t column)
 
static void ar5413WriteRegs (struct ath_hal *ah, u_int modesIndex, u_int freqIndex, int writes)
 
static HAL_BOOL ar5413SetChannel (struct ath_hal *ah, const struct ieee80211_channel *chan)
 
static HAL_BOOL ar5413SetRfRegs (struct ath_hal *ah, const struct ieee80211_channel *chan, uint16_t modesIndex, uint16_t *rfXpdGain)
 
static uint32_t * ar5413GetRfBank (struct ath_hal *ah, int bank)
 
static void GetLowerUpperIndex (int16_t v, const uint16_t *lp, uint16_t listSize, uint32_t *vlo, uint32_t *vhi)
 
static HAL_BOOL ar5413FillVpdTable (uint32_t pdGainIdx, int16_t Pmin, int16_t Pmax, const int16_t *pwrList, const uint16_t *VpdList, uint16_t numIntercepts, uint16_t retVpdList[][64])
 
static int16_t interpolate_signed (uint16_t target, uint16_t srcLeft, uint16_t srcRight, int16_t targetLeft, int16_t targetRight)
 
static int ar5413getGainBoundariesAndPdadcsForPowers (struct ath_hal *ah, uint16_t channel, const RAW_DATA_STRUCT_2413 *pRawDataset, uint16_t pdGainOverlap_t2, int16_t *pMinCalPower, uint16_t pPdGainBoundaries[], uint16_t pPdGainValues[], uint16_t pPDADCValues[])
 
static HAL_BOOL ar5413SetPowerTable (struct ath_hal *ah, int16_t *minPower, int16_t *maxPower, const struct ieee80211_channel *chan, uint16_t *rfXpdGain)
 
static int16_t ar5413GetMinPower (struct ath_hal *ah, const RAW_DATA_PER_CHANNEL_2413 *data)
 
static int16_t ar5413GetMaxPower (struct ath_hal *ah, const RAW_DATA_PER_CHANNEL_2413 *data)
 
static HAL_BOOL ar5413GetChannelMaxMinPower (struct ath_hal *ah, const struct ieee80211_channel *chan, int16_t *maxPow, int16_t *minPow)
 
static void ar5413RfDetach (struct ath_hal *ah)
 
static HAL_BOOL ar5413RfAttach (struct ath_hal *ah, HAL_STATUS *status)
 
static HAL_BOOL ar5413Probe (struct ath_hal *ah)
 
 AH_RF (RF5413, ar5413Probe, ar5413RfAttach)
 

Macro Definition Documentation

◆ AH_5212_5413

#define AH_5212_5413

Definition at line 32 of file ar5413.c.

◆ AR5413

#define AR5413 (   ah)    ((struct ar5413State *) AH5212(ah)->ah_rfHal)

Definition at line 60 of file ar5413.c.

◆ N

#define N (   a)    (sizeof(a)/sizeof(a[0]))

Definition at line 35 of file ar5413.c.

◆ RF_BANK_SETUP

#define RF_BANK_SETUP (   _priv,
  _ix,
  _col 
)
Value:
do { \
int i; \
for (i = 0; i < N(ar5212Bank##_ix##_5413); i++) \
(_priv)->Bank##_ix##Data[i] = ar5212Bank##_ix##_5413[i][_col];\
} while (0)
#define N(a)
Definition: ar5413.c:35

◆ VpdTable_I

#define VpdTable_I   priv->vpdTable_I

◆ VpdTable_L

#define VpdTable_L   priv->vpdTable_L

◆ VpdTable_R

#define VpdTable_R   priv->vpdTable_R

Function Documentation

◆ AH_RF()

AH_RF ( RF5413  ,
ar5413Probe  ,
ar5413RfAttach   
)

◆ ar5212ModifyRfBuffer()

void ar5212ModifyRfBuffer ( uint32_t *  rfBuf,
uint32_t  reg32,
uint32_t  numBits,
uint32_t  firstBit,
uint32_t  column 
)

Definition at line 2674 of file ar5212_reset.c.

Referenced by ar5413SetRfRegs().

Here is the caller graph for this function:

◆ ar5413FillVpdTable()

static HAL_BOOL ar5413FillVpdTable ( uint32_t  pdGainIdx,
int16_t  Pmin,
int16_t  Pmax,
const int16_t *  pwrList,
const uint16_t *  VpdList,
uint16_t  numIntercepts,
uint16_t  retVpdList[][64] 
)
static

Definition at line 335 of file ar5413.c.

References AH_FALSE, AH_TRUE, and GetLowerUpperIndex().

Referenced by ar5413getGainBoundariesAndPdadcsForPowers().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ar5413GetChannelMaxMinPower()

static HAL_BOOL ar5413GetChannelMaxMinPower ( struct ath_hal ah,
const struct ieee80211_channel *  chan,
int16_t *  maxPow,
int16_t *  minPow 
)
static

Definition at line 683 of file ar5413.c.

References AH_FALSE, AH_NULL, AH_PRIVATE, AH_TRUE, ar5413GetMaxPower(), ar5413GetMinPower(), RAW_DATA_PER_CHANNEL_2413::channelValue, HALASSERT, headerInfo11A, headerInfo11B, headerInfo11G, RAW_DATA_STRUCT_2413::numChannels, and RAW_DATA_STRUCT_2413::pDataPerChannel.

Referenced by ar5413RfAttach().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ar5413getGainBoundariesAndPdadcsForPowers()

static int ar5413getGainBoundariesAndPdadcsForPowers ( struct ath_hal ah,
uint16_t  channel,
const RAW_DATA_STRUCT_2413 pRawDataset,
uint16_t  pdGainOverlap_t2,
int16_t *  pMinCalPower,
uint16_t  pPdGainBoundaries[],
uint16_t  pPdGainValues[],
uint16_t  pPDADCValues[] 
)
static

◆ ar5413GetMaxPower()

static int16_t ar5413GetMaxPower ( struct ath_hal ah,
const RAW_DATA_PER_CHANNEL_2413 data 
)
static

◆ ar5413GetMinPower()

static int16_t ar5413GetMinPower ( struct ath_hal ah,
const RAW_DATA_PER_CHANNEL_2413 data 
)
static

◆ ar5413GetRfBank()

static uint32_t * ar5413GetRfBank ( struct ath_hal ah,
int  bank 
)
static

Definition at line 267 of file ar5413.c.

References AH_NULL, AR5413, ar5413State::Bank1Data, ar5413State::Bank2Data, ar5413State::Bank3Data, ar5413State::Bank6Data, ar5413State::Bank7Data, HAL_DEBUG_ANY, HALASSERT, and HALDEBUG.

Referenced by ar5413RfAttach().

Here is the caller graph for this function:

◆ ar5413Probe()

static HAL_BOOL ar5413Probe ( struct ath_hal ah)
static

Definition at line 799 of file ar5413.c.

References IS_5413.

◆ ar5413RfAttach()

◆ ar5413RfDetach()

static void ar5413RfDetach ( struct ath_hal ah)
static

Definition at line 753 of file ar5413.c.

References AH5212, AH_NULL, ath_hal_5212::ah_rfHal, ath_hal_free(), and HALASSERT.

Referenced by ar5413RfAttach().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ar5413SetChannel()

static HAL_BOOL ar5413SetChannel ( struct ath_hal ah,
const struct ieee80211_channel *  chan 
)
static

Definition at line 80 of file ar5413.c.

References AH_FALSE, AH_MARK_SETCHANNEL, AH_PRIVATE, AH_TRUE, AR_PHY, AR_PHY_CCK_TX_CTRL, AR_PHY_CCK_TX_CTRL_JAPAN, ath_hal_gethwchannel(), ath_hal_reverseBits(), HAL_DEBUG_ANY, HALDEBUG, OS_MARK, OS_REG_READ, and OS_REG_WRITE.

Referenced by ar5413RfAttach().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ar5413SetPowerTable()

◆ ar5413SetRfRegs()

◆ ar5413WriteRegs()

static void ar5413WriteRegs ( struct ath_hal ah,
u_int  modesIndex,
u_int  freqIndex,
int  writes 
)
static

Definition at line 66 of file ar5413.c.

References HAL_INI_WRITE_ARRAY.

Referenced by ar5413RfAttach().

Here is the caller graph for this function:

◆ GetLowerUpperIndex()

static void GetLowerUpperIndex ( int16_t  v,
const uint16_t *  lp,
uint16_t  listSize,
uint32_t *  vlo,
uint32_t *  vhi 
)
static

Definition at line 290 of file ar5413.c.

Referenced by ar5413FillVpdTable(), and ar5413getGainBoundariesAndPdadcsForPowers().

Here is the caller graph for this function:

◆ interpolate_signed()

static int16_t interpolate_signed ( uint16_t  target,
uint16_t  srcLeft,
uint16_t  srcRight,
int16_t  targetLeft,
int16_t  targetRight 
)
static

Definition at line 377 of file ar5413.c.

Referenced by ar5413getGainBoundariesAndPdadcsForPowers().

Here is the caller graph for this function: