diff --git a/drivers/net/wireless/b43/phy_n.c b/drivers/net/wireless/b43/phy_n.c
index b8b373ebc8b223edd8dd48538454afd5cb0b27ba..5d7ea60677a4bcb5ae10c6b16bd30df0d1253ba0 100644
--- a/drivers/net/wireless/b43/phy_n.c
+++ b/drivers/net/wireless/b43/phy_n.c
@@ -1849,7 +1849,7 @@ static void b43_nphy_rev2_rssi_cal(struct b43_wldev *dev, enum n_rssi_type type)
 		s32 currd;
 		for (vcm = 0; vcm < 4; vcm++) {
 			if (type == N_RSSI_NB)
-				currd = abs(results[vcm][i]);
+				currd = abs(results[vcm][i] - code * 8);
 			else
 				currd = abs(miniq[vcm][i / 2] - code * 8);