From: Sedat Dilek <sedat.dilek@googlemail.com>
To: reinette chatre <reinette.chatre@intel.com>
Cc: "Kolekar, Abhijeet" <abhijeet.kolekar@intel.com>,
Maxim Levitsky <maximlevitsky@gmail.com>,
linux-wireless <linux-wireless@vger.kernel.org>,
iwlwifi maling list <ipw3945-devel@lists.sourceforge.net>
Subject: Re: IWL3945 problems in 2.6.35-rc1
Date: Thu, 3 Jun 2010 11:18:30 +0200 [thread overview]
Message-ID: <AANLkTinDduWj_BbLINeMmF3hChf4x2znxDLhWDDJzQqY@mail.gmail.com> (raw)
In-Reply-To: <1275544803.2091.30386.camel@rchatre-DESK>
The good news at first:
Your patch applies against 2.6.35-rc1 vanilla (tested with linux-2.6 GIT).
BUT....
This patch should be renamed to "iwl3945-fix-internal-scan-2.6.35-rc1.patch".
It differs from the one in iwiwifi-2.6 (see below).
Thus, I said to myself let's dig deeper into it.
First, here is my GIT workflow (I use linux-2.6 rcX, later pull in
wireless-2.6 and finally iwlwifi-2.6 master GIT)
[CODE]
$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
$ git reset --hard v2.6.35-rc1
$ git pull git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git
master:wireless-2.6
$ git pull http://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-2.6.git
master:iwlwifi-2.6
[/CODE]
If I do so, I get NON-iwlwifi related stuff pulled in and that should
not be the case?
I am not a git tool expert, there might be some magic tricks I do not know.
Thanks for any hints on git tool :-).
It would be very helpfull (if you want people to follow iwlwifi
development) to have something similiar like in linux-wireless GIT
trees - just a proposal:
iwlwifi-2.6 -> wireless-2.6 -> net-2.6 -> linux-2.6
iwlwifi-next-2.6 -> wireless-next-2.6 -> net-next-2.6 -> linux-next
iwlwifi-testing -> wireless-testing
As I said I am no git expert, so I don't know if you want to setup 3
diverse GIT repsoitories (as John did for wireless-* trees) or have 3
different GIT branches within existing iwlwifi-2.6 GIT repository as
in drm-2.6 [1].
Me thinks your (re)base in development should be the counterpart in
wireless GIT tree (see above).
Just my two coins.
Kind Regards,
- Sedat -
[1] "drm git branches revisited"
http://article.gmane.org/gmane.comp.video.dri.devel/40626
[ GIT PULL iwlwifi-2.6 master ]
...
Merge made by recursive.
Documentation/feature-removal-schedule.txt | 20 +
drivers/net/wireless/ath/ath9k/ar5008_phy.c | 2 +
drivers/net/wireless/iwlwifi/Kconfig | 6 +-
drivers/net/wireless/iwlwifi/iwl-1000.c | 2 +
drivers/net/wireless/iwlwifi/iwl-3945-debugfs.c | 28 +-
drivers/net/wireless/iwlwifi/iwl-3945.c | 198 +-------
drivers/net/wireless/iwlwifi/iwl-4965.c | 87 +++-
drivers/net/wireless/iwlwifi/iwl-5000.c | 60 ++-
drivers/net/wireless/iwlwifi/iwl-6000.c | 345 ++++++++++++-
drivers/net/wireless/iwlwifi/iwl-agn-debugfs.c | 91 ++--
drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c | 26 +-
drivers/net/wireless/iwlwifi/iwl-agn-lib.c | 255 +++-------
drivers/net/wireless/iwlwifi/iwl-agn-tx.c | 72 ++-
drivers/net/wireless/iwlwifi/iwl-agn-ucode.c | 123 +++++
drivers/net/wireless/iwlwifi/iwl-agn.c | 635 +++++++++++++++--------
drivers/net/wireless/iwlwifi/iwl-agn.h | 34 ++
drivers/net/wireless/iwlwifi/iwl-commands.h | 3 +-
drivers/net/wireless/iwlwifi/iwl-core.c | 301 +++++------
drivers/net/wireless/iwlwifi/iwl-core.h | 25 +-
drivers/net/wireless/iwlwifi/iwl-debugfs.c | 94 ++---
drivers/net/wireless/iwlwifi/iwl-dev.h | 84 ++--
drivers/net/wireless/iwlwifi/iwl-helpers.h | 27 +
drivers/net/wireless/iwlwifi/iwl-rx.c | 63 ++--
drivers/net/wireless/iwlwifi/iwl-scan.c | 40 +-
drivers/net/wireless/iwlwifi/iwl-sta.c | 76 ++--
drivers/net/wireless/iwlwifi/iwl-sta.h | 29 +
drivers/net/wireless/iwlwifi/iwl-tx.c | 17 +-
drivers/net/wireless/iwlwifi/iwl3945-base.c | 195 +++----
drivers/net/wireless/libertas_tf/main.c | 1 -
drivers/net/wireless/rt2x00/rt2800usb.c | 2 +-
localversion-wireless | 1 +
net/mac80211/scan.c | 1 +
32 files changed, 1782 insertions(+), 1161 deletions(-)
create mode 100644 localversion-wireless
$ diff -Naur iwl3945-fix-internal-scan-2.6.35-rc1.patch
iwl3945-fix-internal-scan-from-iwlwifi-2.6.patch
--- iwl3945-fix-internal-scan-2.6.35-rc1.patch 2010-06-03
10:13:25.000000000 +0200
+++ iwl3945-fix-internal-scan-from-iwlwifi-2.6.patch 2010-06-03
10:41:08.435292314 +0200
@@ -1,27 +1,4 @@
-From patchwork Thu Jun 3 06:00:03 2010
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Subject: IWL3945 problems in 2.6.35-rc1
-Date: Thu, 03 Jun 2010 06:00:03 -0000
-From: reinette chatre <reinette.chatre@intel.com>
-X-Patchwork-Id: 104010
-Message-Id: <1275544803.2091.30386.camel@rchatre-DESK>
-To: "sedat.dilek@gmail.com" <sedat.dilek@gmail.com>
-Cc: "Kolekar, Abhijeet" <abhijeet.kolekar@intel.com>,
- Maxim Levitsky <maximlevitsky@gmail.com>,
- linux-wireless <linux-wireless@vger.kernel.org>,
- iwlwifi maling list <ipw3945-devel@lists.sourceforge.net>
-
-On Wed, 2010-06-02 at 01:35 -0700, Sedat Dilek wrote:
-> This patch seems to be done against iwlwifi-2.6 GIT master.
->
-> Can you please offer a patch against vanilla 2.6.35-rc1 as requested
-> so we can try and give feedback?
-
-Sorry that you did not get this. Please try this patch:
-
->From 364614af1fbabe2989bb3e1434d50255a631546b Mon Sep 17 00:00:00 2001
+From 364614af1fbabe2989bb3e1434d50255a631546b Mon Sep 17 00:00:00 2001
From: Abhijeet Kolekar <abhijeet.kolekar@intel.com>
Date: Wed, 2 Jun 2010 21:15:10 -0700
Subject: [PATCH] iwl3945: fix internal scan
@@ -34,9 +11,8 @@
Signed-off-by: Abhijeet Kolekar <abhijeet.kolekar@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
-
---
-drivers/net/wireless/iwlwifi/iwl-agn-lib.c | 30 +-------------
+ drivers/net/wireless/iwlwifi/iwl-agn-lib.c | 30 +-------------
drivers/net/wireless/iwlwifi/iwl-core.c | 39 ++++++++++++++++++
drivers/net/wireless/iwlwifi/iwl-core.h | 2 +
drivers/net/wireless/iwlwifi/iwl3945-base.c | 56 +++++++++++++++++++++++++-
@@ -152,9 +128,9 @@
int iwl_set_rxon_channel(struct iwl_priv *priv, struct ieee80211_channel *ch);
+u8 iwl_get_single_channel_number(struct iwl_priv *priv,
+ enum ieee80211_band band);
- void iwl_set_rxon_ht(struct iwl_priv *priv, struct iwl_ht_config *ht_conf);
- u8 iwl_is_ht40_tx_allowed(struct iwl_priv *priv,
- struct ieee80211_sta_ht_cap *sta_ht_inf);
+ void iwl_set_flags_for_band(struct iwl_priv *priv,
+ enum ieee80211_band band,
+ struct ieee80211_vif *vif);
diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c
b/drivers/net/wireless/iwlwifi/iwl3945-base.c
index a527895..2366394 100644
--- a/drivers/net/wireless/iwlwifi/iwl3945-base.c
@@ -229,3 +205,6 @@
if (scan->channel_count == 0) {
IWL_DEBUG_SCAN(priv, "channel count %d\n", scan->channel_count);
+--
+1.7.1
+
--- EOT ---
On Thu, Jun 3, 2010 at 8:00 AM, reinette chatre
<reinette.chatre@intel.com> wrote:
> On Wed, 2010-06-02 at 01:35 -0700, Sedat Dilek wrote:
>> This patch seems to be done against iwlwifi-2.6 GIT master.
>>
>> Can you please offer a patch against vanilla 2.6.35-rc1 as requested
>> so we can try and give feedback?
>
> Sorry that you did not get this. Please try this patch:
>
> >From 364614af1fbabe2989bb3e1434d50255a631546b Mon Sep 17 00:00:00 2001
> From: Abhijeet Kolekar <abhijeet.kolekar@intel.com>
> Date: Wed, 2 Jun 2010 21:15:10 -0700
> Subject: [PATCH] iwl3945: fix internal scan
>
> Port of internal scan to iwl3945 missed introduction
> of iwl3945_get_single_channel_for_scan.
>
> Fix the following bug by introducing the iwl3945_get_single_channel_for_scan
> http://bugzilla.intellinuxwireless.org/show_bug.cgi?id=2208
>
> Signed-off-by: Abhijeet Kolekar <abhijeet.kolekar@intel.com>
> Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
> ---
> drivers/net/wireless/iwlwifi/iwl-agn-lib.c | 30 +-------------
> drivers/net/wireless/iwlwifi/iwl-core.c | 39 ++++++++++++++++++
> drivers/net/wireless/iwlwifi/iwl-core.h | 2 +
> drivers/net/wireless/iwlwifi/iwl3945-base.c | 56 +++++++++++++++++++++++++-
> 4 files changed, 96 insertions(+), 31 deletions(-)
>
> diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-lib.c b/drivers/net/wireless/iwlwifi/iwl-agn-lib.c
> index 59aeb2e..ac4031e 100644
> --- a/drivers/net/wireless/iwlwifi/iwl-agn-lib.c
> +++ b/drivers/net/wireless/iwlwifi/iwl-agn-lib.c
> @@ -1031,10 +1031,9 @@ static int iwl_get_single_channel_for_scan(struct iwl_priv *priv,
> struct iwl_scan_channel *scan_ch)
> {
> const struct ieee80211_supported_band *sband;
> - const struct iwl_channel_info *ch_info;
> u16 passive_dwell = 0;
> u16 active_dwell = 0;
> - int i, added = 0;
> + int added = 0;
> u16 channel = 0;
>
> sband = iwl_get_hw_mode(priv, band);
> @@ -1049,32 +1048,7 @@ static int iwl_get_single_channel_for_scan(struct iwl_priv *priv,
> if (passive_dwell <= active_dwell)
> passive_dwell = active_dwell + 1;
>
> - /* only scan single channel, good enough to reset the RF */
> - /* pick the first valid not in-use channel */
> - if (band == IEEE80211_BAND_5GHZ) {
> - for (i = 14; i < priv->channel_count; i++) {
> - if (priv->channel_info[i].channel !=
> - le16_to_cpu(priv->staging_rxon.channel)) {
> - channel = priv->channel_info[i].channel;
> - ch_info = iwl_get_channel_info(priv,
> - band, channel);
> - if (is_channel_valid(ch_info))
> - break;
> - }
> - }
> - } else {
> - for (i = 0; i < 14; i++) {
> - if (priv->channel_info[i].channel !=
> - le16_to_cpu(priv->staging_rxon.channel)) {
> - channel =
> - priv->channel_info[i].channel;
> - ch_info = iwl_get_channel_info(priv,
> - band, channel);
> - if (is_channel_valid(ch_info))
> - break;
> - }
> - }
> - }
> + channel = iwl_get_single_channel_number(priv, band);
> if (channel) {
> scan_ch->channel = cpu_to_le16(channel);
> scan_ch->type = SCAN_CHANNEL_TYPE_PASSIVE;
> diff --git a/drivers/net/wireless/iwlwifi/iwl-core.c b/drivers/net/wireless/iwlwifi/iwl-core.c
> index 3ed3dbf..11b20ba 100644
> --- a/drivers/net/wireless/iwlwifi/iwl-core.c
> +++ b/drivers/net/wireless/iwlwifi/iwl-core.c
> @@ -855,6 +855,45 @@ void iwl_set_rxon_chain(struct iwl_priv *priv)
> }
> EXPORT_SYMBOL(iwl_set_rxon_chain);
>
> +/* Return valid channel */
> +u8 iwl_get_single_channel_number(struct iwl_priv *priv,
> + enum ieee80211_band band)
> +{
> + const struct iwl_channel_info *ch_info;
> + int i;
> + u8 channel = 0;
> +
> + /* only scan single channel, good enough to reset the RF */
> + /* pick the first valid not in-use channel */
> + if (band == IEEE80211_BAND_5GHZ) {
> + for (i = 14; i < priv->channel_count; i++) {
> + if (priv->channel_info[i].channel !=
> + le16_to_cpu(priv->staging_rxon.channel)) {
> + channel = priv->channel_info[i].channel;
> + ch_info = iwl_get_channel_info(priv,
> + band, channel);
> + if (is_channel_valid(ch_info))
> + break;
> + }
> + }
> + } else {
> + for (i = 0; i < 14; i++) {
> + if (priv->channel_info[i].channel !=
> + le16_to_cpu(priv->staging_rxon.channel)) {
> + channel =
> + priv->channel_info[i].channel;
> + ch_info = iwl_get_channel_info(priv,
> + band, channel);
> + if (is_channel_valid(ch_info))
> + break;
> + }
> + }
> + }
> +
> + return channel;
> +}
> +EXPORT_SYMBOL(iwl_get_single_channel_number);
> +
> /**
> * iwl_set_rxon_channel - Set the phymode and channel values in staging RXON
> * @phymode: MODE_IEEE80211A sets to 5.2GHz; all else set to 2.4GHz
> diff --git a/drivers/net/wireless/iwlwifi/iwl-core.h b/drivers/net/wireless/iwlwifi/iwl-core.h
> index 87dd573..244d163 100644
> --- a/drivers/net/wireless/iwlwifi/iwl-core.h
> +++ b/drivers/net/wireless/iwlwifi/iwl-core.h
> @@ -347,6 +347,8 @@ int iwl_check_rxon_cmd(struct iwl_priv *priv);
> int iwl_full_rxon_required(struct iwl_priv *priv);
> void iwl_set_rxon_chain(struct iwl_priv *priv);
> int iwl_set_rxon_channel(struct iwl_priv *priv, struct ieee80211_channel *ch);
> +u8 iwl_get_single_channel_number(struct iwl_priv *priv,
> + enum ieee80211_band band);
> void iwl_set_rxon_ht(struct iwl_priv *priv, struct iwl_ht_config *ht_conf);
> u8 iwl_is_ht40_tx_allowed(struct iwl_priv *priv,
> struct ieee80211_sta_ht_cap *sta_ht_inf);
> diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c b/drivers/net/wireless/iwlwifi/iwl3945-base.c
> index a527895..2366394 100644
> --- a/drivers/net/wireless/iwlwifi/iwl3945-base.c
> +++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c
> @@ -1785,6 +1785,49 @@ static void iwl3945_irq_tasklet(struct iwl_priv *priv)
> #endif
> }
>
> +static int iwl3945_get_single_channel_for_scan(struct iwl_priv *priv,
> + struct ieee80211_vif *vif,
> + enum ieee80211_band band,
> + struct iwl3945_scan_channel *scan_ch)
> +{
> + const struct ieee80211_supported_band *sband;
> + u16 passive_dwell = 0;
> + u16 active_dwell = 0;
> + int added = 0;
> + u8 channel = 0;
> +
> + sband = iwl_get_hw_mode(priv, band);
> + if (!sband) {
> + IWL_ERR(priv, "invalid band\n");
> + return added;
> + }
> +
> + active_dwell = iwl_get_active_dwell_time(priv, band, 0);
> + passive_dwell = iwl_get_passive_dwell_time(priv, band, vif);
> +
> + if (passive_dwell <= active_dwell)
> + passive_dwell = active_dwell + 1;
> +
> +
> + channel = iwl_get_single_channel_number(priv, band);
> +
> + if (channel) {
> + scan_ch->channel = channel;
> + scan_ch->type = 0; /* passive */
> + scan_ch->active_dwell = cpu_to_le16(active_dwell);
> + scan_ch->passive_dwell = cpu_to_le16(passive_dwell);
> + /* Set txpower levels to defaults */
> + scan_ch->tpc.dsp_atten = 110;
> + if (band == IEEE80211_BAND_5GHZ)
> + scan_ch->tpc.tx_gain = ((1 << 5) | (3 << 3)) | 3;
> + else
> + scan_ch->tpc.tx_gain = ((1 << 5) | (5 << 3));
> + added++;
> + } else
> + IWL_ERR(priv, "no valid channel found\n");
> + return added;
> +}
> +
> static int iwl3945_get_channels_for_scan(struct iwl_priv *priv,
> enum ieee80211_band band,
> u8 is_active, u8 n_probes,
> @@ -2935,9 +2978,16 @@ void iwl3945_request_scan(struct iwl_priv *priv, struct ieee80211_vif *vif)
> /* select Rx antennas */
> scan->flags |= iwl3945_get_antenna_flags(priv);
>
> - scan->channel_count =
> - iwl3945_get_channels_for_scan(priv, band, is_active, n_probes,
> - (void *)&scan->data[le16_to_cpu(scan->tx_cmd.len)], vif);
> + if (priv->is_internal_short_scan) {
> + scan->channel_count =
> + iwl3945_get_single_channel_for_scan(priv, vif, band,
> + (void *)&scan->data[le16_to_cpu(
> + scan->tx_cmd.len)]);
> + } else {
> + scan->channel_count =
> + iwl3945_get_channels_for_scan(priv, band, is_active, n_probes,
> + (void *)&scan->data[le16_to_cpu(scan->tx_cmd.len)], vif);
> + }
>
> if (scan->channel_count == 0) {
> IWL_DEBUG_SCAN(priv, "channel count %d\n", scan->channel_count);
> --
> 1.7.0.4
>
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
next prev parent reply other threads:[~2010-06-03 9:18 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-06-01 12:25 IWL3945 problems in 2.6.35-rc1 Maxim Levitsky
2010-06-01 14:57 ` Maxim Levitsky
2010-06-01 15:21 ` Sedat Dilek
2010-06-01 18:12 ` Maxim Levitsky
2010-06-02 16:53 ` Maxim Levitsky
2010-06-02 18:01 ` Sedat Dilek
2010-06-01 19:03 ` Abhijeet Kolekar
2010-06-01 19:59 ` Maxim Levitsky
2010-06-02 8:35 ` Sedat Dilek
2010-06-03 6:00 ` reinette chatre
2010-06-03 9:18 ` Sedat Dilek [this message]
2010-06-03 15:55 ` reinette chatre
2010-06-18 9:28 ` Johannes Berg
2010-06-18 10:19 ` Maxim Levitsky
2010-06-18 10:30 ` Johannes Berg
2010-06-18 10:40 ` Maxim Levitsky
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=AANLkTinDduWj_BbLINeMmF3hChf4x2znxDLhWDDJzQqY@mail.gmail.com \
--to=sedat.dilek@googlemail.com \
--cc=abhijeet.kolekar@intel.com \
--cc=ipw3945-devel@lists.sourceforge.net \
--cc=linux-wireless@vger.kernel.org \
--cc=maximlevitsky@gmail.com \
--cc=reinette.chatre@intel.com \
--cc=sedat.dilek@gmail.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;
as well as URLs for NNTP newsgroup(s).