* [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-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
* 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
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 an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.