From 8afceb1e6a3b6361c7c2456ef488ee9c6db7b370 Mon Sep 17 00:00:00 2001
From: Michael Buesch <mbuesch@freenet.de>
Date: Sat, 25 Mar 2006 17:04:41 +0100
Subject: [PATCH] [PATCH] bcm43xx: fix the remaining sparse warnings.

Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
---
 drivers/net/wireless/bcm43xx/bcm43xx_main.c |  4 ++--
 drivers/net/wireless/bcm43xx/bcm43xx_phy.c  | 11 ++++++++---
 2 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/drivers/net/wireless/bcm43xx/bcm43xx_main.c b/drivers/net/wireless/bcm43xx/bcm43xx_main.c
index ac9a8dd1ab8f..7c1d72fc6289 100644
--- a/drivers/net/wireless/bcm43xx/bcm43xx_main.c
+++ b/drivers/net/wireless/bcm43xx/bcm43xx_main.c
@@ -2509,7 +2509,7 @@ static int bcm43xx_validate_chip(struct bcm43xx_private *bcm)
 	return -ENODEV;
 }
 
-void bcm43xx_init_struct_phyinfo(struct bcm43xx_phyinfo *phy)
+static void bcm43xx_init_struct_phyinfo(struct bcm43xx_phyinfo *phy)
 {
 	/* Initialize a "phyinfo" structure. The structure is already
 	 * zeroed out.
@@ -2521,7 +2521,7 @@ void bcm43xx_init_struct_phyinfo(struct bcm43xx_phyinfo *phy)
 	spin_lock_init(&phy->lock);
 }
 
-void bcm43xx_init_struct_radioinfo(struct bcm43xx_radioinfo *radio)
+static void bcm43xx_init_struct_radioinfo(struct bcm43xx_radioinfo *radio)
 {
 	/* Initialize a "radioinfo" structure. The structure is already
 	 * zeroed out.
diff --git a/drivers/net/wireless/bcm43xx/bcm43xx_phy.c b/drivers/net/wireless/bcm43xx/bcm43xx_phy.c
index 054c64e462fb..4ab17a7f7e91 100644
--- a/drivers/net/wireless/bcm43xx/bcm43xx_phy.c
+++ b/drivers/net/wireless/bcm43xx/bcm43xx_phy.c
@@ -1057,9 +1057,14 @@ static void bcm43xx_phy_initg(struct bcm43xx_private *bcm)
 			bcm43xx_phy_write(bcm, 0x002F, 0x0202);
 	}
 
-	if ((bcm->sprom.boardflags & BCM43xx_BFL_RSSI) == 0) {
-		FIXME();//FIXME: 0x7FFFFFFF should be 16-bit !
-		bcm43xx_nrssi_hw_update(bcm, (u16)0x7FFFFFFF);
+	if (!(bcm->sprom.boardflags & BCM43xx_BFL_RSSI)) {
+		/* The specs state to update the NRSSI LT with
+		 * the value 0x7FFFFFFF here. I think that is some weird
+		 * compiler optimization in the original driver.
+		 * Essentially, what we do here is resetting all NRSSI LT
+		 * entries to -32 (see the limit_value() in nrssi_hw_update())
+		 */
+		bcm43xx_nrssi_hw_update(bcm, 0xFFFF);
 		bcm43xx_calc_nrssi_threshold(bcm);
 	} else if (phy->connected) {
 		if (radio->nrssi[0] == -1000) {
-- 
GitLab