Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 64e4fd51 authored by Malcolm Priestley's avatar Malcolm Priestley Committed by Greg Kroah-Hartman
Browse files

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: default avatarMalcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 187e2a81
Loading
Loading
Loading
Loading
+54 −39
Original line number Diff line number Diff line
@@ -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)