Linux wireless drivers development
 help / color / mirror / Atom feed
From: "Lars Ericsson" <Lars_Ericsson@telia.com>
To: "'Ivo van Doorn'" <ivdoorn@gmail.com>
Cc: <linux-wireless@vger.kernel.org>, <users@rt2x00.serialmonkey.com>
Subject: RT61 antenna diversity in 2.6.30
Date: Mon, 13 Jul 2009 22:24:50 +0200	[thread overview]
Message-ID: <0DC66442F4FF4076964868A5ECAB9790@gotws1589> (raw)

Hi Ivo,

I recently moved from 2.6.26 to 2.6.30 with a HW that do 
SW antenna diversity with .26 but not with .30

I have found two problems:
1) The rt2x00mac_config() calls rt2x00lib_config_antenna() and reset the
rt2x00dev->default_ant.
2) The rt2x00lib_antenna_diversity_sample() does not update the sampled
antenna rssi.

I have applied the following patches to correct the problems:

1)
--- a/drivers/net/wireless/rt2x00/rt2x00link.c	2009-07-13
21:48:45.000000000 +0200
+++ b/drivers/net/wireless/rt2x00/rt2x00link.c	2009-07-13
21:52:42.000000000 +0200
@@ -146,8 +151,13 @@ static void rt2x00lib_antenna_diversity_
 {
 	struct link_ant *ant = &rt2x00dev->link.ant;
 	struct antenna_setup new_ant;
-	int sample_a = rt2x00link_antenna_get_rssi_history(rt2x00dev,
ANTENNA_A);
-	int sample_b = rt2x00link_antenna_get_rssi_history(rt2x00dev,
ANTENNA_B);
+	int rssi_curr, sample_a, sample_b;
+			
+	rssi_curr = rt2x00link_antenna_get_link_rssi(rt2x00dev);
+	rt2x00link_antenna_update_rssi_rx_history(rt2x00dev, rssi_curr);
+	
+	sample_a = rt2x00link_antenna_get_rssi_history(rt2x00dev,
ANTENNA_A);
+	sample_b = rt2x00link_antenna_get_rssi_history(rt2x00dev,
ANTENNA_B);
 
 	memcpy(&new_ant, &ant->active, sizeof(new_ant));
---

2)
--- a/drivers/net/wireless/rt2x00/rt2x00mac.c	2009-07-13
21:51:26.000000000 +0200
+++ b/drivers/net/wireless/rt2x00/rt2x00mac.c	2009-07-13
21:54:28.000000000 +0200
@@ -375,10 +375,12 @@ int rt2x00mac_config(struct ieee80211_hw
 		 * diversity. But for non-diversity configurations, we need
 		 * to have configured the correct state now.
 		 */
-		if (changed & IEEE80211_CONF_CHANGE_RADIO_ENABLED)
+		if (changed & IEEE80211_CONF_CHANGE_RADIO_ENABLED) {
+			rt2x00dev->link.ant.active = rt2x00dev->default_ant;
 			rt2x00lib_config_antenna(rt2x00dev,
-						 &rt2x00dev->default_ant);
-
+
&rt2x00dev->link.ant.active);
+		}
+		
 		/* Turn RX back on */
 		rt2x00lib_toggle_rx(rt2x00dev, STATE_RADIO_RX_ON);
 	} else {


Regards
Lars


             reply	other threads:[~2009-07-13 20:24 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-07-13 20:24 Lars Ericsson [this message]
2009-07-14 19:44 ` RT61 antenna diversity in 2.6.30 Ivo van Doorn

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=0DC66442F4FF4076964868A5ECAB9790@gotws1589 \
    --to=lars_ericsson@telia.com \
    --cc=ivdoorn@gmail.com \
    --cc=linux-wireless@vger.kernel.org \
    --cc=users@rt2x00.serialmonkey.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox