/* * Description: Set Tx power * * Parameters: * In: * dwIoBase - I/O base address * dwRFPowerTable - RF Tx Power Setting * Out: * none * * Return Value: true if succeeded; false if failed. * */ int vnt_rf_setpower(struct vnt_private *priv, u32 rate, u32 channel) { int ret = true; u8 power = priv->byCCKPwr; if (channel == 0) return -EINVAL; switch (rate) { case RATE_1M: case RATE_2M: case RATE_5M: case RATE_11M: power = priv->abyCCKPwrTbl[channel-1]; break; case RATE_6M: case RATE_9M: case RATE_18M: case RATE_24M: case RATE_36M: case RATE_48M: case RATE_54M: if (channel > CB_MAX_CHANNEL_24G) power = priv->abyOFDMAPwrTbl[channel-15]; else power = priv->abyOFDMPwrTbl[channel-1]; break; } ret = vnt_rf_set_txpower(priv, power, rate); return ret; }
/* Set Tx power by rate and channel number */ int vnt_rf_setpower(struct vnt_private *priv, u32 rate, u32 channel) { u8 power = priv->cck_pwr; if (channel == 0) return -EINVAL; switch (rate) { case RATE_1M: case RATE_2M: case RATE_5M: case RATE_11M: channel--; if (channel < sizeof(priv->cck_pwr_tbl)) power = priv->cck_pwr_tbl[channel]; break; case RATE_6M: case RATE_9M: case RATE_12M: case RATE_18M: case RATE_24M: case RATE_36M: case RATE_48M: case RATE_54M: if (channel > CB_MAX_CHANNEL_24G) power = priv->ofdm_a_pwr_tbl[channel-15]; else power = priv->ofdm_pwr_tbl[channel-1]; break; } return vnt_rf_set_txpower(priv, power, rate); }