linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [BUG] iwlwifi need to correct channels info
@ 2011-01-28 15:41 Stanislaw Gruszka
  2011-01-28 18:06 ` Johannes Berg
  0 siblings, 1 reply; 6+ messages in thread
From: Stanislaw Gruszka @ 2011-01-28 15:41 UTC (permalink / raw)
  To: Wey-Yi Guy; +Cc: Intel Linux Wireless, linux-wireless

After commit 59eb21a6504731fc16db4cf9463065dd61093e08
"cfg80211: Extend channel to frequency mapping for 802.11j"
5GHz networks are not seen on scan results.

I think above commit is correct, but we have broken channel
information on iwlwifi (freq is 0 on 5GHz channels):

Channel 1 Freq=2412[2.4GHz] valid flag=0x20
Channel 2 Freq=2417[2.4GHz] valid flag=0x20
Channel 3 Freq=2422[2.4GHz] valid flag=0x20
Channel 4 Freq=2427[2.4GHz] valid flag=0x20
Channel 5 Freq=2432[2.4GHz] valid flag=0x0
Channel 6 Freq=2437[2.4GHz] valid flag=0x0
Channel 7 Freq=2442[2.4GHz] valid flag=0x0
Channel 8 Freq=2447[2.4GHz] valid flag=0x10
Channel 9 Freq=2452[2.4GHz] valid flag=0x10
Channel 10 Freq=2457[2.4GHz] valid flag=0x10
Channel 11 Freq=2462[2.4GHz] valid flag=0x10
Channel 12 Freq=2467[2.4GHz] valid flag=0x36
Channel 13 Freq=2472[2.4GHz] valid flag=0x36
Channel 36 Freq=0[5.2GHz] valid flag=0x26
Channel 40 Freq=0[5.2GHz] valid flag=0x16
Channel 44 Freq=0[5.2GHz] valid flag=0x26
Channel 48 Freq=0[5.2GHz] valid flag=0x16
Channel 52 Freq=0[5.2GHz] valid flag=0x2E
Channel 56 Freq=0[5.2GHz] valid flag=0x1E
Channel 60 Freq=0[5.2GHz] valid flag=0x2E
Channel 64 Freq=0[5.2GHz] valid flag=0x1E
Channel 100 Freq=0[5.2GHz] valid flag=0x2E
Channel 104 Freq=0[5.2GHz] valid flag=0x1E
Channel 108 Freq=0[5.2GHz] valid flag=0x2E
Channel 112 Freq=0[5.2GHz] valid flag=0x1E
Channel 116 Freq=0[5.2GHz] valid flag=0x2E
Channel 120 Freq=0[5.2GHz] valid flag=0x1E
Channel 124 Freq=0[5.2GHz] valid flag=0x2E
Channel 128 Freq=0[5.2GHz] valid flag=0x1E
Channel 132 Freq=0[5.2GHz] valid flag=0x2E
Channel 136 Freq=0[5.2GHz] valid flag=0x1E
Channel 140 Freq=0[5.2GHz] valid flag=0x3E
Channel 149 Freq=0[5.2GHz] valid flag=0x26
Channel 153 Freq=0[5.2GHz] valid flag=0x16
Channel 157 Freq=0[5.2GHz] valid flag=0x26
Channel 161 Freq=0[5.2GHz] valid flag=0x16
Channel 165 Freq=0[5.2GHz] valid flag=0x36

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [BUG] iwlwifi need to correct channels info
  2011-01-28 15:41 [BUG] iwlwifi need to correct channels info Stanislaw Gruszka
@ 2011-01-28 18:06 ` Johannes Berg
  2011-01-31  9:38   ` Stanislaw Gruszka
  2011-01-31 10:44   ` Bruno Randolf
  0 siblings, 2 replies; 6+ messages in thread
From: Johannes Berg @ 2011-01-28 18:06 UTC (permalink / raw)
  To: Stanislaw Gruszka
  Cc: Wey-Yi Guy, Intel Linux Wireless, linux-wireless, bruno randolf

On Fri, 2011-01-28 at 16:41 +0100, Stanislaw Gruszka wrote:
> After commit 59eb21a6504731fc16db4cf9463065dd61093e08
> "cfg80211: Extend channel to frequency mapping for 802.11j"
> 5GHz networks are not seen on scan results.
> 
> I think above commit is correct, but we have broken channel
> information on iwlwifi (freq is 0 on 5GHz channels):

No, the above commit is buggy -- it assumes sband->band is set when it
isn't. Does this fix it?

Bruno can you please verify you haven't made that mistake elsewhere?

johannes

--- wireless-testing.orig/drivers/net/wireless/iwlwifi/iwl-core.c	2011-01-28 19:01:01.000000000 +0100
+++ wireless-testing/drivers/net/wireless/iwlwifi/iwl-core.c	2011-01-28 19:04:43.000000000 +0100
@@ -213,6 +213,8 @@ int iwlcore_init_geos(struct iwl_priv *p
 	priv->ieee_rates = rates;
 
 	for (i = 0;  i < priv->channel_count; i++) {
+		enum ieee80211_band band;
+
 		ch = &priv->channel_info[i];
 
 		/* FIXME: might be removed if scan is OK */
@@ -220,15 +222,15 @@ int iwlcore_init_geos(struct iwl_priv *p
 			continue;
 
 		if (is_channel_a_band(ch))
-			sband =  &priv->bands[IEEE80211_BAND_5GHZ];
+			band = IEEE80211_BAND_5GHZ;
 		else
-			sband =  &priv->bands[IEEE80211_BAND_2GHZ];
+			band = IEEE80211_BAND_2GHZ;
+		sband =  &priv->bands[band];
 
 		geo_ch = &sband->channels[sband->n_channels++];
 
 		geo_ch->center_freq =
-				ieee80211_channel_to_frequency(ch->channel,
-							       sband->band);
+			ieee80211_channel_to_frequency(ch->channel, band);
 		geo_ch->max_power = ch->max_power_avg;
 		geo_ch->max_antenna_gain = 0xff;
 		geo_ch->hw_value = ch->channel;



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [BUG] iwlwifi need to correct channels info
  2011-01-28 18:06 ` Johannes Berg
@ 2011-01-31  9:38   ` Stanislaw Gruszka
  2011-01-31 10:53     ` Johannes Berg
  2011-01-31 10:44   ` Bruno Randolf
  1 sibling, 1 reply; 6+ messages in thread
From: Stanislaw Gruszka @ 2011-01-31  9:38 UTC (permalink / raw)
  To: Johannes Berg
  Cc: Wey-Yi Guy, Intel Linux Wireless, linux-wireless, bruno randolf

On Fri, Jan 28, 2011 at 07:06:09PM +0100, Johannes Berg wrote:
> On Fri, 2011-01-28 at 16:41 +0100, Stanislaw Gruszka wrote:
> > After commit 59eb21a6504731fc16db4cf9463065dd61093e08
> > "cfg80211: Extend channel to frequency mapping for 802.11j"
> > 5GHz networks are not seen on scan results.
> > 
> > I think above commit is correct, but we have broken channel
> > information on iwlwifi (freq is 0 on 5GHz channels):
> 
> No, the above commit is buggy -- it assumes sband->band is set when it
> isn't. 
But it should be, no? It seems we initialize it nowhere, but it's
used in iwl-*-rs.c

BTW:
Is iwl_eeprom_band_2[] array correct? It have 7, 8, 11, 12 channels entries
on 5GHz.

Can we get rid of /* FIXME: might be removed if scan is OK */ ?

> Does this fix it?

I tested on 3945, it fix freq=0 on messages. But what about something
slightly different? Use ch->band already set in iwl_init_channel_map()
and initialize sband->band.

diff --git a/drivers/net/wireless/iwlwifi/iwl-core.c b/drivers/net/wireless/iwlwifi/iwl-core.c
index 92724cb..1c1da6f 100644
--- a/drivers/net/wireless/iwlwifi/iwl-core.c
+++ b/drivers/net/wireless/iwlwifi/iwl-core.c
@@ -190,6 +190,7 @@ int iwlcore_init_geos(struct iwl_priv *priv)
 
 	/* 5.2GHz channels start after the 2.4GHz channels */
 	sband = &priv->bands[IEEE80211_BAND_5GHZ];
+	sband->band = IEEE80211_BAND_5GHZ;
 	sband->channels = &channels[ARRAY_SIZE(iwl_eeprom_band_1)];
 	/* just OFDM */
 	sband->bitrates = &rates[IWL_FIRST_OFDM_RATE];
@@ -200,6 +201,7 @@ int iwlcore_init_geos(struct iwl_priv *priv)
 					 IEEE80211_BAND_5GHZ);
 
 	sband = &priv->bands[IEEE80211_BAND_2GHZ];
+	sband->band = IEEE80211_BAND_2GHZ;
 	sband->channels = channels;
 	/* OFDM & CCK */
 	sband->bitrates = rates;
@@ -219,16 +221,12 @@ int iwlcore_init_geos(struct iwl_priv *priv)
 		if (!is_channel_valid(ch))
 			continue;
 
-		if (is_channel_a_band(ch))
-			sband =  &priv->bands[IEEE80211_BAND_5GHZ];
-		else
-			sband =  &priv->bands[IEEE80211_BAND_2GHZ];
+		sband =  &priv->bands[ch->band];
 
 		geo_ch = &sband->channels[sband->n_channels++];
 
 		geo_ch->center_freq =
-				ieee80211_channel_to_frequency(ch->channel,
-							       sband->band);
+			ieee80211_channel_to_frequency(ch->channel, ch->band);
 		geo_ch->max_power = ch->max_power_avg;
 		geo_ch->max_antenna_gain = 0xff;
 		geo_ch->hw_value = ch->channel;

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [BUG] iwlwifi need to correct channels info
  2011-01-28 18:06 ` Johannes Berg
  2011-01-31  9:38   ` Stanislaw Gruszka
@ 2011-01-31 10:44   ` Bruno Randolf
  1 sibling, 0 replies; 6+ messages in thread
From: Bruno Randolf @ 2011-01-31 10:44 UTC (permalink / raw)
  To: Johannes Berg
  Cc: Stanislaw Gruszka, Wey-Yi Guy, Intel Linux Wireless,
	linux-wireless

On Saturday 29 January 2011 03:06:09 Johannes Berg wrote:
> On Fri, 2011-01-28 at 16:41 +0100, Stanislaw Gruszka wrote:
> > After commit 59eb21a6504731fc16db4cf9463065dd61093e08
> > "cfg80211: Extend channel to frequency mapping for 802.11j"
> > 5GHz networks are not seen on scan results.
> > 
> > I think above commit is correct, but we have broken channel
> 
> > information on iwlwifi (freq is 0 on 5GHz channels):
> No, the above commit is buggy -- it assumes sband->band is set when it
> isn't. Does this fix it?
> 
> Bruno can you please verify you haven't made that mistake elsewhere?

Honestly, I can't. Really sorry.

bruno

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [BUG] iwlwifi need to correct channels info
  2011-01-31  9:38   ` Stanislaw Gruszka
@ 2011-01-31 10:53     ` Johannes Berg
  2011-01-31 11:33       ` Stanislaw Gruszka
  0 siblings, 1 reply; 6+ messages in thread
From: Johannes Berg @ 2011-01-31 10:53 UTC (permalink / raw)
  To: Stanislaw Gruszka
  Cc: Wey-Yi Guy, Intel Linux Wireless, linux-wireless, bruno randolf

On Mon, 2011-01-31 at 10:38 +0100, Stanislaw Gruszka wrote:

> > No, the above commit is buggy -- it assumes sband->band is set when it
> > isn't. 
> But it should be, no? It seems we initialize it nowhere, but it's
> used in iwl-*-rs.c

Yes, but it'll be set by cfg80211 when you register the wiphy as well.
This code is just special because it's before registration.

> BTW:
> Is iwl_eeprom_band_2[] array correct? It have 7, 8, 11, 12 channels entries
> on 5GHz.

Huh, not sure.

> Can we get rid of /* FIXME: might be removed if scan is OK */ ?

Not sure either.

> > Does this fix it?
> 
> I tested on 3945, it fix freq=0 on messages. But what about something
> slightly different? Use ch->band already set in iwl_init_channel_map()
> and initialize sband->band.

Sure, looks fine too.

johannes


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [BUG] iwlwifi need to correct channels info
  2011-01-31 10:53     ` Johannes Berg
@ 2011-01-31 11:33       ` Stanislaw Gruszka
  0 siblings, 0 replies; 6+ messages in thread
From: Stanislaw Gruszka @ 2011-01-31 11:33 UTC (permalink / raw)
  To: Johannes Berg
  Cc: Wey-Yi Guy, Intel Linux Wireless, linux-wireless, bruno randolf

On Mon, Jan 31, 2011 at 11:53:08AM +0100, Johannes Berg wrote:
> > I tested on 3945, it fix freq=0 on messages. But what about something
> > slightly different? Use ch->band already set in iwl_init_channel_map()
> > and initialize sband->band.
> 
> Sure, looks fine too.

I'll remove sband->band assignments since cfg80211 initialize this
and post it.

Stanislaw

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2011-01-31 11:33 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-01-28 15:41 [BUG] iwlwifi need to correct channels info Stanislaw Gruszka
2011-01-28 18:06 ` Johannes Berg
2011-01-31  9:38   ` Stanislaw Gruszka
2011-01-31 10:53     ` Johannes Berg
2011-01-31 11:33       ` Stanislaw Gruszka
2011-01-31 10:44   ` Bruno Randolf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).