* [PATCH 0/4] iwmc3200wifi updates for 2.6.33
@ 2009-12-03 10:40 Samuel Ortiz
2009-12-03 10:40 ` [PATCH 1/4] iwmc3200wifi: Update wiwi priority table Samuel Ortiz
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: Samuel Ortiz @ 2009-12-03 10:40 UTC (permalink / raw)
To: John Linville; +Cc: linux-wireless, Zhu Yi, Samuel Ortiz
Hi John,
Here is the last iwmc3200wifi update for 2.6.33, so all following 4 patches
are targeted at your wireless-testing tree.
This patchset aims at correctly enabling the iwmc3200 wimax-wifi (a.k.a. wiwi)
coexistence.
Samuel Ortiz (4):
iwmc3200wifi: Update wiwi priority table
iwmc3200wifi: Coex table command does not expect a response
iwmc3200wifi: Add wifi-wimax coexistence mode as a module parameter
iwmc3200wifi: Enable wimax core through module parameter
drivers/net/wireless/iwmc3200wifi/commands.c | 22 +++++++++++++---------
drivers/net/wireless/iwmc3200wifi/iwm.h | 1 -
drivers/net/wireless/iwmc3200wifi/main.c | 8 +++++---
3 files changed, 18 insertions(+), 13 deletions(-)
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 1/4] iwmc3200wifi: Update wiwi priority table
2009-12-03 10:40 [PATCH 0/4] iwmc3200wifi updates for 2.6.33 Samuel Ortiz
@ 2009-12-03 10:40 ` Samuel Ortiz
2009-12-03 10:40 ` [PATCH 2/4] iwmc3200wifi: Coex table command does not expect a response Samuel Ortiz
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Samuel Ortiz @ 2009-12-03 10:40 UTC (permalink / raw)
To: John Linville; +Cc: linux-wireless, Zhu Yi, Samuel Ortiz
This update follows the firmware engineers recommendations.
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
---
drivers/net/wireless/iwmc3200wifi/commands.c | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/net/wireless/iwmc3200wifi/commands.c b/drivers/net/wireless/iwmc3200wifi/commands.c
index bd06307..6a22711 100644
--- a/drivers/net/wireless/iwmc3200wifi/commands.c
+++ b/drivers/net/wireless/iwmc3200wifi/commands.c
@@ -122,18 +122,18 @@ static struct coex_event iwm_sta_xor_prio_tbl[COEX_EVENTS_NUM] =
static struct coex_event iwm_sta_cm_prio_tbl[COEX_EVENTS_NUM] =
{
{1, 1, 0, COEX_UNASSOC_IDLE_FLAGS},
- {4, 3, 0, COEX_UNASSOC_MANUAL_SCAN_FLAGS},
+ {4, 4, 0, COEX_UNASSOC_MANUAL_SCAN_FLAGS},
{3, 3, 0, COEX_UNASSOC_AUTO_SCAN_FLAGS},
- {5, 5, 0, COEX_CALIBRATION_FLAGS},
+ {6, 6, 0, COEX_CALIBRATION_FLAGS},
{3, 3, 0, COEX_PERIODIC_CALIBRATION_FLAGS},
- {5, 4, 0, COEX_CONNECTION_ESTAB_FLAGS},
+ {6, 5, 0, COEX_CONNECTION_ESTAB_FLAGS},
{4, 4, 0, COEX_ASSOCIATED_IDLE_FLAGS},
{4, 4, 0, COEX_ASSOC_MANUAL_SCAN_FLAGS},
{4, 4, 0, COEX_ASSOC_AUTO_SCAN_FLAGS},
{4, 4, 0, COEX_ASSOC_ACTIVE_LEVEL_FLAGS},
{1, 1, 0, COEX_RF_ON_FLAGS},
{1, 1, 0, COEX_RF_OFF_FLAGS},
- {6, 6, 0, COEX_STAND_ALONE_DEBUG_FLAGS},
+ {7, 7, 0, COEX_STAND_ALONE_DEBUG_FLAGS},
{5, 4, 0, COEX_IPAN_ASSOC_LEVEL_FLAGS},
{1, 1, 0, COEX_RSRVD1_FLAGS},
{1, 1, 0, COEX_RSRVD2_FLAGS}
--
1.6.3.3
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 2/4] iwmc3200wifi: Coex table command does not expect a response
2009-12-03 10:40 [PATCH 0/4] iwmc3200wifi updates for 2.6.33 Samuel Ortiz
2009-12-03 10:40 ` [PATCH 1/4] iwmc3200wifi: Update wiwi priority table Samuel Ortiz
@ 2009-12-03 10:40 ` Samuel Ortiz
2009-12-03 10:40 ` [PATCH 3/4] iwmc3200wifi: Add wifi-wimax coexistence mode as a module parameter Samuel Ortiz
2009-12-03 10:40 ` [PATCH 4/4] iwmc3200wifi: Enable wimax core through " Samuel Ortiz
3 siblings, 0 replies; 5+ messages in thread
From: Samuel Ortiz @ 2009-12-03 10:40 UTC (permalink / raw)
To: John Linville; +Cc: linux-wireless, Zhu Yi, Samuel Ortiz
When sending the wiwi coexistence priority table, we should not tell the LMAC
that we want a response.
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
---
drivers/net/wireless/iwmc3200wifi/commands.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/net/wireless/iwmc3200wifi/commands.c b/drivers/net/wireless/iwmc3200wifi/commands.c
index 6a22711..1a4b7fb 100644
--- a/drivers/net/wireless/iwmc3200wifi/commands.c
+++ b/drivers/net/wireless/iwmc3200wifi/commands.c
@@ -192,7 +192,7 @@ int iwm_send_prio_table(struct iwm_priv *iwm)
return iwm_send_lmac_ptrough_cmd(iwm, COEX_PRIORITY_TABLE_CMD,
&coex_table_cmd,
- sizeof(struct iwm_coex_prio_table_cmd), 1);
+ sizeof(struct iwm_coex_prio_table_cmd), 0);
}
int iwm_send_init_calib_cfg(struct iwm_priv *iwm, u8 calib_requested)
--
1.6.3.3
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 3/4] iwmc3200wifi: Add wifi-wimax coexistence mode as a module parameter
2009-12-03 10:40 [PATCH 0/4] iwmc3200wifi updates for 2.6.33 Samuel Ortiz
2009-12-03 10:40 ` [PATCH 1/4] iwmc3200wifi: Update wiwi priority table Samuel Ortiz
2009-12-03 10:40 ` [PATCH 2/4] iwmc3200wifi: Coex table command does not expect a response Samuel Ortiz
@ 2009-12-03 10:40 ` Samuel Ortiz
2009-12-03 10:40 ` [PATCH 4/4] iwmc3200wifi: Enable wimax core through " Samuel Ortiz
3 siblings, 0 replies; 5+ messages in thread
From: Samuel Ortiz @ 2009-12-03 10:40 UTC (permalink / raw)
To: John Linville; +Cc: linux-wireless, Zhu Yi, Samuel Ortiz
Wifi and wimax coexistence mode is set by wifi at boot time. There can be
several modes, defined by priority tables. User space components can decide
which one to select by writing to /sys/module/iwmc3200wifi/parameters/wiwi
with this patch, before bringing the interface up.
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
---
drivers/net/wireless/iwmc3200wifi/commands.c | 12 ++++++++----
drivers/net/wireless/iwmc3200wifi/iwm.h | 1 -
drivers/net/wireless/iwmc3200wifi/main.c | 1 -
3 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/drivers/net/wireless/iwmc3200wifi/commands.c b/drivers/net/wireless/iwmc3200wifi/commands.c
index 1a4b7fb..5520693 100644
--- a/drivers/net/wireless/iwmc3200wifi/commands.c
+++ b/drivers/net/wireless/iwmc3200wifi/commands.c
@@ -99,6 +99,10 @@ int iwm_send_wifi_if_cmd(struct iwm_priv *iwm, void *payload, u16 payload_size,
return ret;
}
+static int modparam_wiwi = COEX_MODE_CM;
+module_param_named(wiwi, modparam_wiwi, int, 0644);
+MODULE_PARM_DESC(wiwi, "Wifi-WiMAX coexistence: 1=SA, 2=XOR, 3=CM (default)");
+
static struct coex_event iwm_sta_xor_prio_tbl[COEX_EVENTS_NUM] =
{
{4, 3, 0, COEX_UNASSOC_IDLE_FLAGS},
@@ -148,7 +152,7 @@ int iwm_send_prio_table(struct iwm_priv *iwm)
coex_table_cmd.flags = COEX_FLAGS_STA_TABLE_VALID_MSK;
- switch (iwm->conf.coexist_mode) {
+ switch (modparam_wiwi) {
case COEX_MODE_XOR:
case COEX_MODE_CM:
coex_enabled = 1;
@@ -173,7 +177,7 @@ int iwm_send_prio_table(struct iwm_priv *iwm)
COEX_FLAGS_ASSOC_WAKEUP_UMASK_MSK |
COEX_FLAGS_UNASSOC_WAKEUP_UMASK_MSK;
- switch (iwm->conf.coexist_mode) {
+ switch (modparam_wiwi) {
case COEX_MODE_XOR:
memcpy(coex_table_cmd.sta_prio, iwm_sta_xor_prio_tbl,
sizeof(iwm_sta_xor_prio_tbl));
@@ -184,7 +188,7 @@ int iwm_send_prio_table(struct iwm_priv *iwm)
break;
default:
IWM_ERR(iwm, "Invalid coex_mode 0x%x\n",
- iwm->conf.coexist_mode);
+ modparam_wiwi);
break;
}
} else
@@ -396,7 +400,7 @@ int iwm_send_umac_config(struct iwm_priv *iwm, __le32 reset_flags)
return ret;
ret = iwm_umac_set_config_fix(iwm, UMAC_PARAM_TBL_CFG_FIX,
- CFG_COEX_MODE, iwm->conf.coexist_mode);
+ CFG_COEX_MODE, modparam_wiwi);
if (ret < 0)
return ret;
diff --git a/drivers/net/wireless/iwmc3200wifi/iwm.h b/drivers/net/wireless/iwmc3200wifi/iwm.h
index 8d091f9..5a26bb0 100644
--- a/drivers/net/wireless/iwmc3200wifi/iwm.h
+++ b/drivers/net/wireless/iwmc3200wifi/iwm.h
@@ -81,7 +81,6 @@ struct iwm_conf {
u32 assoc_timeout;
u32 roam_timeout;
u32 wireless_mode;
- u32 coexist_mode;
u8 ibss_band;
u8 ibss_channel;
diff --git a/drivers/net/wireless/iwmc3200wifi/main.c b/drivers/net/wireless/iwmc3200wifi/main.c
index 087f043..0ffb041 100644
--- a/drivers/net/wireless/iwmc3200wifi/main.c
+++ b/drivers/net/wireless/iwmc3200wifi/main.c
@@ -82,7 +82,6 @@ static struct iwm_conf def_iwm_conf = {
.roam_timeout = 10,
.wireless_mode = WIRELESS_MODE_11A | WIRELESS_MODE_11G |
WIRELESS_MODE_11N,
- .coexist_mode = COEX_MODE_CM,
/* IBSS */
.ibss_band = UMAC_BAND_2GHZ,
--
1.6.3.3
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 4/4] iwmc3200wifi: Enable wimax core through module parameter
2009-12-03 10:40 [PATCH 0/4] iwmc3200wifi updates for 2.6.33 Samuel Ortiz
` (2 preceding siblings ...)
2009-12-03 10:40 ` [PATCH 3/4] iwmc3200wifi: Add wifi-wimax coexistence mode as a module parameter Samuel Ortiz
@ 2009-12-03 10:40 ` Samuel Ortiz
3 siblings, 0 replies; 5+ messages in thread
From: Samuel Ortiz @ 2009-12-03 10:40 UTC (permalink / raw)
To: John Linville; +Cc: linux-wireless, Zhu Yi, Samuel Ortiz
When debugging the wifi firmware, we need to disable the wimax core to gain
some memory space. The default value will keep the wimax core enabled.
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
---
drivers/net/wireless/iwmc3200wifi/main.c | 7 +++++--
1 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/drivers/net/wireless/iwmc3200wifi/main.c b/drivers/net/wireless/iwmc3200wifi/main.c
index 0ffb041..7f34d6d 100644
--- a/drivers/net/wireless/iwmc3200wifi/main.c
+++ b/drivers/net/wireless/iwmc3200wifi/main.c
@@ -68,7 +68,6 @@ static struct iwm_conf def_iwm_conf = {
.ct_kill_exit = 110,
.reset_on_fatal_err = 1,
.auto_connect = 1,
- .wimax_not_present = 0,
.enable_qos = 1,
.mode = UMAC_MODE_BSS,
@@ -94,6 +93,10 @@ static int modparam_reset;
module_param_named(reset, modparam_reset, bool, 0644);
MODULE_PARM_DESC(reset, "reset on firmware errors (default 0 [not reset])");
+static int modparam_wimax_enable = 1;
+module_param_named(wimax_enable, modparam_wimax_enable, bool, 0644);
+MODULE_PARM_DESC(wimax_enable, "Enable wimax core (default 1 [wimax enabled])");
+
int iwm_mode_to_nl80211_iftype(int mode)
{
switch (mode) {
@@ -486,7 +489,7 @@ static int iwm_config_boot_params(struct iwm_priv *iwm)
int ret;
/* check Wimax is off and config debug monitor */
- if (iwm->conf.wimax_not_present) {
+ if (!modparam_wimax_enable) {
u32 data1 = 0x1f;
u32 addr1 = 0x606BE258;
--
1.6.3.3
^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2009-12-03 10:39 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-12-03 10:40 [PATCH 0/4] iwmc3200wifi updates for 2.6.33 Samuel Ortiz
2009-12-03 10:40 ` [PATCH 1/4] iwmc3200wifi: Update wiwi priority table Samuel Ortiz
2009-12-03 10:40 ` [PATCH 2/4] iwmc3200wifi: Coex table command does not expect a response Samuel Ortiz
2009-12-03 10:40 ` [PATCH 3/4] iwmc3200wifi: Add wifi-wimax coexistence mode as a module parameter Samuel Ortiz
2009-12-03 10:40 ` [PATCH 4/4] iwmc3200wifi: Enable wimax core through " Samuel Ortiz
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).