mirror of https://gitee.com/openkylin/linux.git
staging: vt6655: parse bb vga code out of device_intr.
Reordering the code and reversing the priv->byBBVGANew verses priv->byBBVGACurrent check and using dev_dbg for pr_debug. Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
187e2a8180
commit
64e4fd5142
|
@ -1008,6 +1008,58 @@ static void device_free_tx_buf(struct vnt_private *pDevice, PSTxDesc pDesc)
|
|||
pTDInfo->byFlags = 0;
|
||||
}
|
||||
|
||||
static void vnt_check_bb_vga(struct vnt_private *priv)
|
||||
{
|
||||
long dbm;
|
||||
int i;
|
||||
|
||||
if (!priv->bUpdateBBVGA)
|
||||
return;
|
||||
|
||||
if (priv->hw->conf.flags & IEEE80211_CONF_OFFCHANNEL)
|
||||
return;
|
||||
|
||||
if (!(priv->vif->bss_conf.assoc && priv->uCurrRSSI))
|
||||
return;
|
||||
|
||||
RFvRSSITodBm(priv, (u8)priv->uCurrRSSI, &dbm);
|
||||
|
||||
for (i = 0; i < BB_VGA_LEVEL; i++) {
|
||||
if (dbm < priv->ldBmThreshold[i]) {
|
||||
priv->byBBVGANew = priv->abyBBVGA[i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (priv->byBBVGANew == priv->byBBVGACurrent) {
|
||||
priv->uBBVGADiffCount = 1;
|
||||
return;
|
||||
}
|
||||
|
||||
priv->uBBVGADiffCount++;
|
||||
|
||||
if (priv->uBBVGADiffCount == 1) {
|
||||
/* first VGA diff gain */
|
||||
BBvSetVGAGainOffset(priv, priv->byBBVGANew);
|
||||
|
||||
dev_dbg(&priv->pcid->dev,
|
||||
"First RSSI[%d] NewGain[%d] OldGain[%d] Count[%d]\n",
|
||||
(int)dbm, priv->byBBVGANew,
|
||||
priv->byBBVGACurrent,
|
||||
(int)priv->uBBVGADiffCount);
|
||||
}
|
||||
|
||||
if (priv->uBBVGADiffCount >= BB_VGA_CHANGE_THRESHOLD) {
|
||||
dev_dbg(&priv->pcid->dev,
|
||||
"RSSI[%d] NewGain[%d] OldGain[%d] Count[%d]\n",
|
||||
(int)dbm, priv->byBBVGANew,
|
||||
priv->byBBVGACurrent,
|
||||
(int)priv->uBBVGADiffCount);
|
||||
|
||||
BBvSetVGAGainOffset(priv, priv->byBBVGANew);
|
||||
}
|
||||
}
|
||||
|
||||
static irqreturn_t device_intr(int irq, void *dev_instance)
|
||||
{
|
||||
struct vnt_private *pDevice = dev_instance;
|
||||
|
@ -1015,7 +1067,6 @@ static irqreturn_t device_intr(int irq, void *dev_instance)
|
|||
unsigned long dwMIBCounter = 0;
|
||||
unsigned char byOrgPageSel = 0;
|
||||
int handled = 0;
|
||||
int ii = 0;
|
||||
unsigned long flags;
|
||||
|
||||
MACvReadISR(pDevice->PortOffset, &pDevice->dwIsr);
|
||||
|
@ -1059,44 +1110,8 @@ static irqreturn_t device_intr(int irq, void *dev_instance)
|
|||
|
||||
if (pDevice->dwIsr & ISR_TBTT) {
|
||||
if (pDevice->vif &&
|
||||
pDevice->op_mode != NL80211_IFTYPE_ADHOC) {
|
||||
if (pDevice->bUpdateBBVGA &&
|
||||
!(pDevice->hw->conf.flags & IEEE80211_CONF_OFFCHANNEL) &&
|
||||
pDevice->vif->bss_conf.assoc &&
|
||||
pDevice->uCurrRSSI) {
|
||||
long ldBm;
|
||||
|
||||
RFvRSSITodBm(pDevice, (unsigned char) pDevice->uCurrRSSI, &ldBm);
|
||||
for (ii = 0; ii < BB_VGA_LEVEL; ii++) {
|
||||
if (ldBm < pDevice->ldBmThreshold[ii]) {
|
||||
pDevice->byBBVGANew = pDevice->abyBBVGA[ii];
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (pDevice->byBBVGANew != pDevice->byBBVGACurrent) {
|
||||
pDevice->uBBVGADiffCount++;
|
||||
if (pDevice->uBBVGADiffCount == 1) {
|
||||
// first VGA diff gain
|
||||
BBvSetVGAGainOffset(pDevice, pDevice->byBBVGANew);
|
||||
pr_debug("First RSSI[%d] NewGain[%d] OldGain[%d] Count[%d]\n",
|
||||
(int)ldBm,
|
||||
pDevice->byBBVGANew,
|
||||
pDevice->byBBVGACurrent,
|
||||
(int)pDevice->uBBVGADiffCount);
|
||||
}
|
||||
if (pDevice->uBBVGADiffCount >= BB_VGA_CHANGE_THRESHOLD) {
|
||||
pr_debug("RSSI[%d] NewGain[%d] OldGain[%d] Count[%d]\n",
|
||||
(int)ldBm,
|
||||
pDevice->byBBVGANew,
|
||||
pDevice->byBBVGACurrent,
|
||||
(int)pDevice->uBBVGADiffCount);
|
||||
BBvSetVGAGainOffset(pDevice, pDevice->byBBVGANew);
|
||||
}
|
||||
} else {
|
||||
pDevice->uBBVGADiffCount = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
pDevice->op_mode != NL80211_IFTYPE_ADHOC)
|
||||
vnt_check_bb_vga(pDevice);
|
||||
|
||||
pDevice->bBeaconSent = false;
|
||||
if (pDevice->bEnablePSMode)
|
||||
|
|
Loading…
Reference in New Issue