Lines Matching +full:fractional +full:- +full:n

1 /*-
2 * SPDX-License-Identifier: ISC
4 * Copyright (c) 2008-2009 Sam Leffler, Errno Consulting
33 #define N(a) (sizeof(a)/sizeof(a[0])) macro
39 #define AR9280(ah) ((struct ar9280State *) AH5212(ah)->ah_rfHal)
49 (void) ath_hal_ini_write(ah, &AH5416(ah)->ah_ini_bb_rfgain, in ar9280WriteRegs()
81 OS_MARK(ah, AH_MARK_SETCHANNEL, chan->ic_freq); in ar9280SetChannel()
92 if (freq < 4800) { /* 2 GHz, fractional mode */ in ar9280SetChannel()
116 * Enable fractional mode for half/quarter rate in ar9280SetChannel()
134 /* Enable 2G (fractional) mode for channels which are 5MHz spaced */ in ar9280SetChannel()
137 * Workaround for talking on PSB non-5MHz channels; in ar9280SetChannel()
138 * the pre-Merlin chips only had a 2.5MHz channel in ar9280SetChannel()
154 * fractional frequencies in 5GHz mode. However in ar9280SetChannel()
160 * you must first ensure that you've re-certified the in ar9280SetChannel()
181 f = freq - 2; in ar9280SetChannel()
182 ch = (((f - 4800) * 10) / 25) + 1; in ar9280SetChannel()
188 // "channelSel=%d\n", in ar9280SetChannel()
211 AH_PRIVATE(ah)->ah_curchan = chan; in ar9280SetChannel()
222 HALDEBUG(ah, HAL_DEBUG_ANY, "%s: unknown RF Bank %d requested\n", in ar9280GetRfBank()
259 minGain = data->pDataPerXPD[0].xpd_gain;
261 if (data->pDataPerXPD[i].xpd_gain < minGain) {
263 minGain = data->pDataPerXPD[i].xpd_gain;
266 minPwr = data->pDataPerXPD[minIndex].pwr_t4[0];
267 minPcdac = data->pDataPerXPD[minIndex].pcdac[0];
269 if (data->pDataPerXPD[minIndex].pwr_t4[i] < minPwr) {
270 minPwr = data->pDataPerXPD[minIndex].pwr_t4[i];
271 minPcdac = data->pDataPerXPD[minIndex].pcdac[i];
274 retVal = minPwr - (minPcdac*2);
293 powerArray = ahp->ah_modePowerArray5112; in ar9280GetChannelMaxMinPower()
297 /* XXX - is this correct? Should we also use the same power for turbo G? */ in ar9280GetChannelMaxMinPower()
298 powerArray = ahp->ah_modePowerArray5112; in ar9280GetChannelMaxMinPower()
302 powerArray = ahp->ah_modePowerArray5112; in ar9280GetChannelMaxMinPower()
312 (chan->channel < data[0].channelValue) || in ar9280GetChannelMaxMinPower()
313 (chan->channel > data[numChannels-1].channelValue)) in ar9280GetChannelMaxMinPower()
318 (i<numChannels) && (chan->channel > data[i].channelValue); in ar9280GetChannelMaxMinPower()
320 totalD = data[i].channelValue - data[last].channelValue; in ar9280GetChannelMaxMinPower()
322 totalF = data[i].maxPower_t4 - data[last].maxPower_t4; in ar9280GetChannelMaxMinPower()
323 …*maxPow = (int8_t) ((totalF*(chan->channel-data[last].channelValue) + data[last].maxPower_t4*total… in ar9280GetChannelMaxMinPower()
325 totalMin = ar9280GetMinPower(ah,&data[i]) - ar9280GetMinPower(ah, &data[last]); in ar9280GetChannelMaxMinPower()
326 …*minPow = (int8_t) ((totalMin*(chan->channel-data[last].channelValue) + ar9280GetMinPower(ah, &dat… in ar9280GetChannelMaxMinPower()
329 if (chan->channel == data[i].channelValue) { in ar9280GetChannelMaxMinPower()
359 nf = 0 - ((nf ^ 0x1ff) + 1); in ar9280GetNoiseFloor()
361 "NF calibrated [ctl] [chain 0] is %d\n", nf); in ar9280GetNoiseFloor()
366 nf = 0 - ((nf ^ 0x1ff) + 1); in ar9280GetNoiseFloor()
368 "NF calibrated [ctl] [chain 1] is %d\n", nf); in ar9280GetNoiseFloor()
373 nf = 0 - ((nf ^ 0x1ff) + 1); in ar9280GetNoiseFloor()
375 "NF calibrated [ext] [chain 0] is %d\n", nf); in ar9280GetNoiseFloor()
380 nf = 0 - ((nf ^ 0x1ff) + 1); in ar9280GetNoiseFloor()
382 "NF calibrated [ext] [chain 1] is %d\n", nf); in ar9280GetNoiseFloor()
385 /* Chain 2 - invalid */ in ar9280GetNoiseFloor()
409 HALASSERT(ahp->ah_rfHal != AH_NULL); in ar9280RfDetach()
410 ath_hal_free(ahp->ah_rfHal); in ar9280RfDetach()
411 ahp->ah_rfHal = AH_NULL; in ar9280RfDetach()
420 HALDEBUG(ah, HAL_DEBUG_ATTACH, "%s: attach AR9280 radio\n", __func__); in ar9280RfAttach()
422 HALASSERT(ahp->ah_rfHal == AH_NULL); in ar9280RfAttach()
426 "%s: cannot allocate private state\n", __func__); in ar9280RfAttach()
430 priv->base.rfDetach = ar9280RfDetach; in ar9280RfAttach()
431 priv->base.writeRegs = ar9280WriteRegs; in ar9280RfAttach()
432 priv->base.getRfBank = ar9280GetRfBank; in ar9280RfAttach()
433 priv->base.setChannel = ar9280SetChannel; in ar9280RfAttach()
434 priv->base.setRfRegs = ar9280SetRfRegs; in ar9280RfAttach()
435 priv->base.setPowerTable = ar9280SetPowerTable; in ar9280RfAttach()
436 priv->base.getChannelMaxMinPower = ar9280GetChannelMaxMinPower; in ar9280RfAttach()
437 priv->base.getNfAdjust = ar9280GetNfAdjust; in ar9280RfAttach()
439 ahp->ah_pcdacTable = priv->pcdacTable; in ar9280RfAttach()
440 ahp->ah_pcdacTableSize = sizeof(priv->pcdacTable); in ar9280RfAttach()
441 ahp->ah_rfHal = &priv->base; in ar9280RfAttach()
446 AH_PRIVATE(ah)->ah_getNfAdjust = priv->base.getNfAdjust; in ar9280RfAttach()
447 AH_PRIVATE(ah)->ah_getNoiseFloor = ar9280GetNoiseFloor; in ar9280RfAttach()