* Re: iwlwifi: Intel 3945ABG speed issues finally identified.
From: John W. Linville @ 2010-12-23 14:00 UTC (permalink / raw)
To: Eric Appleman; +Cc: linux-wireless
In-Reply-To: <loom.20101223T071403-99@post.gmane.org>
On Thu, Dec 23, 2010 at 06:15:18AM +0000, Eric Appleman wrote:
> I spent most of the day bisecting and testing numerous kernels and my work has
> finally paid off.
>
> I've found 2 candidate commits.
>
> a6866ac93e6cb68091326e80b4fa4619a5957644
> 1402364162afbaac1b8a74ee21aeb013e817ac7d
>
> iwl3945 definitely broke between 2.6.35-rc2 and -rc3.
On Thu, Dec 23, 2010 at 08:39:32AM +0000, Eric Appleman wrote:
> 2 more commits that I missed
>
> 7d47618a2ade0cb6d8a0b2597029c383c1662fa0
> 6db6340c42d027b6364d49fa99d69019aca24de4
Did you revert any/all of these patches? Can you quantify what effect
that had?
John
--
John W. Linville Someday the world will need a hero, and you
linville@tuxdriver.com might be all we have. Be ready.
^ permalink raw reply
* [PATCH v2] iwlagn: fix scan tx antenna setting on 5Ghz band
From: Stanislaw Gruszka @ 2010-12-23 14:12 UTC (permalink / raw)
To: Wey-Yi Guy, Intel Linux Wireless; +Cc: linux-wireless, Stanislaw Gruszka
Looks that we do not set correctly antennas when scanning
on 5Ghz band and when bluetooth is enabled, because
priv->cfg->scan_tx_antennas[band] is only defined for
IEEE80211_BAND_2GHZ.
To fix we check band before limiting antennas to first one.
This allow to remove hard coded cfg->scan_tx_antennas[band].
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
---
v1 -> v2:
- limit tx scan antennas only on 2GHz band
- remove not needed struct iwl_cfg field
drivers/net/wireless/iwlwifi/iwl-6000.c | 7 +------
drivers/net/wireless/iwlwifi/iwl-agn-lib.c | 14 +++++---------
drivers/net/wireless/iwlwifi/iwl-core.h | 1 -
3 files changed, 6 insertions(+), 16 deletions(-)
diff --git a/drivers/net/wireless/iwlwifi/iwl-6000.c b/drivers/net/wireless/iwlwifi/iwl-6000.c
index f4bec32..af505bc 100644
--- a/drivers/net/wireless/iwlwifi/iwl-6000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-6000.c
@@ -596,12 +596,7 @@ struct iwl_cfg iwl6005_2bg_cfg = {
.need_dc_calib = true, \
.need_temp_offset_calib = true, \
.led_mode = IWL_LED_RF_STATE, \
- .adv_pm = true, \
- /* \
- *Due to bluetooth, we transmit 2.4 GHz probes \
- * only on antenna A \
- */ \
- .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A
+ .adv_pm = true \
struct iwl_cfg iwl6030_2agn_cfg = {
.name = "Intel(R) Centrino(R) Advanced-N 6230 AGN",
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-lib.c b/drivers/net/wireless/iwlwifi/iwl-agn-lib.c
index 4bc82fc..3dee87e 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn-lib.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-lib.c
@@ -1492,15 +1492,11 @@ int iwlagn_request_scan(struct iwl_priv *priv, struct ieee80211_vif *vif)
if (priv->cfg->scan_rx_antennas[band])
rx_ant = priv->cfg->scan_rx_antennas[band];
- if (priv->cfg->scan_tx_antennas[band])
- scan_tx_antennas = priv->cfg->scan_tx_antennas[band];
-
- if (priv->cfg->bt_params &&
- priv->cfg->bt_params->advanced_bt_coexist &&
- priv->bt_full_concurrent) {
- /* operated as 1x1 in full concurrency mode */
- scan_tx_antennas = first_antenna(
- priv->cfg->scan_tx_antennas[band]);
+ if (band == IEEE80211_BAND_2GHZ &&
+ priv->cfg->bt_params &&
+ priv->cfg->bt_params->advanced_bt_coexist) {
+ /* transmit 2.4 GHz probes only on first antenna */
+ scan_tx_antennas = first_antenna(scan_tx_antennas);
}
priv->scan_tx_ant[band] = iwl_toggle_tx_ant(priv, priv->scan_tx_ant[band],
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.h b/drivers/net/wireless/iwlwifi/iwl-core.h
index f80685a..a347437 100644
--- a/drivers/net/wireless/iwlwifi/iwl-core.h
+++ b/drivers/net/wireless/iwlwifi/iwl-core.h
@@ -411,7 +411,6 @@ struct iwl_cfg {
const bool need_dc_calib; /* if used set to true */
const bool need_temp_offset_calib; /* if used set to true */
u8 scan_rx_antennas[IEEE80211_NUM_BANDS];
- u8 scan_tx_antennas[IEEE80211_NUM_BANDS];
enum iwl_led_mode led_mode;
const bool adv_pm;
const bool rx_with_siso_diversity;
--
1.7.1
^ permalink raw reply related
* [PATCH v2] iwlagn: enable only rfkill interrupt when device is down
From: Stanislaw Gruszka @ 2010-12-23 11:38 UTC (permalink / raw)
To: Johannes Berg
Cc: Wey-Yi Guy, Intel Linux Wireless, Helmut Schaa, linux-wireless,
stable
In-Reply-To: <1293038839.3531.24.camel@jlt3.sipsolutions.net>
Since commit 6cd0b1cb872b3bf9fc5de4536404206ab74bafdd "iwlagn: fix
hw-rfkill while the interface is down", we enable interrupts when
device is not ready to receive them. However hardware, when it is in
some inconsistent state, can generate other than rfkill interrupts
and crash the system. I can reproduce crash with "kernel BUG at
drivers/net/wireless/iwlwifi/iwl-agn.c:1010!" message, when forcing
firmware restarts.
To fix only enable rfkill interrupt when down device and after probe.
I checked patch on laptop with 5100 device, rfkill change is still
passed to user space when device is down.
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Cc: stable@kernel.org
Acked-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
---
v1 -> v2: fix topic (thanks to Johannes for correct my English :)
drivers/net/wireless/iwlwifi/iwl-agn.c | 9 +++++----
drivers/net/wireless/iwlwifi/iwl-helpers.h | 6 ++++++
2 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
index d407547..f5bd584 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
@@ -3280,9 +3280,10 @@ void iwlagn_mac_stop(struct ieee80211_hw *hw)
flush_workqueue(priv->workqueue);
- /* enable interrupts again in order to receive rfkill changes */
+ /* User space software may expect getting rfkill changes
+ * even if interface is down */
iwl_write32(priv, CSR_INT, 0xFFFFFFFF);
- iwl_enable_interrupts(priv);
+ iwl_enable_rfkill_int(priv);
IWL_DEBUG_MAC80211(priv, "leave\n");
}
@@ -4190,14 +4191,14 @@ static int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
* 8. Enable interrupts and read RFKILL state
*********************************************/
- /* enable interrupts if needed: hw bug w/a */
+ /* enable rfkill interrupt: hw bug w/a */
pci_read_config_word(priv->pci_dev, PCI_COMMAND, &pci_cmd);
if (pci_cmd & PCI_COMMAND_INTX_DISABLE) {
pci_cmd &= ~PCI_COMMAND_INTX_DISABLE;
pci_write_config_word(priv->pci_dev, PCI_COMMAND, pci_cmd);
}
- iwl_enable_interrupts(priv);
+ iwl_enable_rfkill_int(priv);
/* If platform's RF_KILL switch is NOT set to KILL */
if (iwl_read32(priv, CSR_GP_CNTRL) & CSR_GP_CNTRL_REG_FLAG_HW_RF_KILL_SW)
diff --git a/drivers/net/wireless/iwlwifi/iwl-helpers.h b/drivers/net/wireless/iwlwifi/iwl-helpers.h
index 3f5bedd..8821f08 100644
--- a/drivers/net/wireless/iwlwifi/iwl-helpers.h
+++ b/drivers/net/wireless/iwlwifi/iwl-helpers.h
@@ -148,6 +148,12 @@ static inline void iwl_disable_interrupts(struct iwl_priv *priv)
IWL_DEBUG_ISR(priv, "Disabled interrupts\n");
}
+static inline void iwl_enable_rfkill_int(struct iwl_priv *priv)
+{
+ IWL_DEBUG_ISR(priv, "Enabling rfkill interrupt\n");
+ iwl_write32(priv, CSR_INT_MASK, CSR_INT_BIT_RF_KILL);
+}
+
static inline void iwl_enable_interrupts(struct iwl_priv *priv)
{
IWL_DEBUG_ISR(priv, "Enabling interrupts\n");
--
1.7.1
^ permalink raw reply related
* Re: [PATCH v2 01/18] wl1271: Add AP related configuration to conf_drv_settings
From: Arik Nemtsov @ 2010-12-23 11:05 UTC (permalink / raw)
To: Luciano Coelho; +Cc: linux-wireless
In-Reply-To: <1293049334.14423.1.camel@powerslave>
On Wed, Dec 22, 2010 at 22:22, Luciano Coelho <luciano.coelho@nokia.com> wrote:
> On Wed, 2010-12-22 at 16:27 +0200, ext Arik Nemtsov wrote:
>> Rate class configuration has been split up for AP and STA modes.
>> Template related configuration likewise separated.
>>
>> Signed-off-by: Arik Nemtsov <arik@wizery.com>
>> ---
>
> [...]
>
>> @@ -153,6 +153,45 @@ static struct conf_drv_settings default_conf = {
>> .tx_op_limit = 1504,
>> },
>> },
>> + .ap_rc_conf = {
>> + [0] = {
>> + .enabled_rates = 0x1EFF,
>> + .short_retry_limit = 10,
>> + .long_retry_limit = 10,
>> + .aflags = 0,
>> + },
>> + [1] = {
>> + .enabled_rates = 0x1EFF,
>> + .short_retry_limit = 10,
>> + .long_retry_limit = 10,
>> + .aflags = 0,
>> + },
>> + [2] = {
>> + .enabled_rates = 0x1EFF,
>> + .short_retry_limit = 10,
>> + .long_retry_limit = 10,
>> + .aflags = 0,
>> + },
>> + [3] = {
>> + .enabled_rates = 0x1EFF,
>> + .short_retry_limit = 10,
>> + .long_retry_limit = 10,
>> + .aflags = 0,
>> + },
>> + },
>> + .ap_mgmt_conf = {
>> + .enabled_rates = 0x7,
>> + .short_retry_limit = 10,
>> + .long_retry_limit = 10,
>> + .aflags = 0,
>> + },
>> + .ap_bcst_conf = {
>> + .enabled_rates = 0x1,
>> + .short_retry_limit = 10,
>> + .long_retry_limit = 10,
>> + .aflags = 0,
>> + },
>> +
>
> All the enabled_rates values here look quite magic. Is there any way
> these could be changed to macros or something more descriptive?
These are simply bitmasks of enabled rates. I can change these to
definitions and add some explanation about the limitations (basically
the FW supports up to 12 rates).
>
> Also, how do you deal with the different basic rates used by 11bg and
> 11a?
Currently AP mode is not supported for 11a. Obviously we'd need
different rate configuration there. This is controlled by the NVS file
right now, but its a good idea to hard-code only 11bg support for
AP-mode. We expect users to have only one NVS file on the device, and
we do want 11a support for STA.
Also looking at the rate config part made me realize that
"basic_rate_set" is not updated where it should be in AP mode. I'll
fix this as well.
Regards,
Arik
^ permalink raw reply
* Re: Backporting wl1271 driver to kernel-2.6.32 using compat-wireless
From: Elvis Dowson @ 2010-12-23 9:44 UTC (permalink / raw)
To: Linux Wireless Mailing List
In-Reply-To: <4D1266FA.7080305@hauke-m.de>
On Dec 23, 2010, at 1:00 AM, Hauke Mehrtens wrote:
> You also have to backport the CONFIG_WL12XX_PLATFORM_DATA and activate
> it in your kernel config, wl1271_sdio depends on that.
Has anyone on the list backported CONFIG_WL12XX_PLATFORM_DATA to
2.6.32, and got wl1271_sdio.ko to build?
Elvis Dowson
^ permalink raw reply
* Re: iwlwifi: Intel 3945ABG speed issues finally identified.
From: Eric Appleman @ 2010-12-23 8:39 UTC (permalink / raw)
To: linux-wireless
In-Reply-To: <loom.20101223T071403-99@post.gmane.org>
2 more commits that I missed
7d47618a2ade0cb6d8a0b2597029c383c1662fa0
6db6340c42d027b6364d49fa99d69019aca24de4
^ permalink raw reply
* Re: [PATCH v2 08/18] wl1271: Add AP related definitions to HOST-FW interface
From: Arik Nemtsov @ 2010-12-23 8:05 UTC (permalink / raw)
To: Luciano Coelho; +Cc: linux-wireless
In-Reply-To: <1293053782.14423.51.camel@powerslave>
On Wed, Dec 22, 2010 at 23:36, Luciano Coelho <luciano.coelho@nokia.com> wrote:
> On Wed, 2010-12-22 at 16:27 +0200, ext Arik Nemtsov wrote:
>> Change structures in a non-destructive manner. This means no
>> changes in size or location of existing members used by STA.
>>
>> Signed-off-by: Arik Nemtsov <arik@wizery.com>
>> ---
>
> [...]
>
>> diff --git a/drivers/net/wireless/wl12xx/rx.h b/drivers/net/wireless/wl12xx/rx.h
>> index 3abb26f..19fd591 100644
>> --- a/drivers/net/wireless/wl12xx/rx.h
>> +++ b/drivers/net/wireless/wl12xx/rx.h
>> @@ -86,10 +86,11 @@
>> /*
>> * RX Descriptor status
>> *
>> - * Bits 0-2 - status
>> - * Bits 3-7 - reserved
>> + * Bits 0-2 - error code
>> + * Bits 3-5 - process_id tag (AP mode FW)
>> + * Bits 6-7 - reserved
>> */
>> -#define WL1271_RX_DESC_STATUS_MASK 0x07
>> +#define WL1271_RX_DESC_STATUS_MASK 0x03
>
> What happened with bit 2?
You're right. Actually ported over a bug from the original TI driver.
Since only errors 1-3 are defined this still works. But its a bug
anyway. Will revert.
Regards,
Arik
^ permalink raw reply
* Re: [PATCH v2 07/18] wl1271: AP specific RX filter configuration
From: Arik Nemtsov @ 2010-12-23 7:58 UTC (permalink / raw)
To: Luciano Coelho; +Cc: linux-wireless
In-Reply-To: <1293053386.14423.46.camel@powerslave>
On Wed, Dec 22, 2010 at 23:29, Luciano Coelho <luciano.coelho@nokia.com> wrote:
> On Wed, 2010-12-22 at 16:27 +0200, ext Arik Nemtsov wrote:
>> Set filters according to the mode of operation.
>>
>> Signed-off-by: Arik Nemtsov <arik@wizery.com>
>> ---
>
> [...]
>
>> diff --git a/drivers/net/wireless/wl12xx/boot.h b/drivers/net/wireless/wl12xx/boot.h
>> index d67dcff..5f19a40 100644
>> --- a/drivers/net/wireless/wl12xx/boot.h
>> +++ b/drivers/net/wireless/wl12xx/boot.h
>> @@ -69,4 +69,7 @@ struct wl1271_static_data {
>> #define FREF_CLK_POLARITY_BITS 0xfffff8ff
>> #define CLK_REQ_OUTN_SEL 0x700
>>
>> +/* Functions from wl1271_main.c */
>> +void wl1271_set_default_filters(struct wl1271 *wl);
>> +
>
> This is not good. Can't this be defined in rx.c and rx.h instead?
Good point. Will do.
Regards,
Arik
^ permalink raw reply
* Re: [linux-pm] subtle pm_runtime_put_sync race and sdio functions
From: Ohad Ben-Cohen @ 2010-12-23 7:51 UTC (permalink / raw)
To: Rafael J. Wysocki
Cc: Alan Stern, linux-pm, Johannes Berg, linux-wireless, linux-mmc,
Ido Yariv, Kevin Hilman
In-Reply-To: <201012191122.09581.rjw@sisk.pl>
On Sun, Dec 19, 2010 at 12:22 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
> That said, I think we may do something different that perhaps will make your
> life somewhat easier.
...
> So, I think we can add a "runtime only" flag working as described above.
That will definitely solve the suspend/resume issue we're having.
But due to /sys/devices/.../power/control, we will still have to
bypass runtime PM for this particular device.
We need a way to unconditionally power down the device, and as long as
runtime PM can be disabled by the user, we can't use it.
Thanks,
Ohad.
^ permalink raw reply
* Re: [PATCH v2 05/18] wl1271: AP mode - workaround for FW bug on station remove
From: Arik Nemtsov @ 2010-12-23 7:51 UTC (permalink / raw)
To: Luciano Coelho; +Cc: linux-wireless
In-Reply-To: <1293052778.14423.43.camel@powerslave>
On Wed, Dec 22, 2010 at 23:19, Luciano Coelho <luciano.coelho@nokia.com> wrote:
> On Wed, 2010-12-22 at 16:27 +0200, ext Arik Nemtsov wrote:
>> Sometimes an event indicating station removal is not sent up by
>> firmware. We work around this by always indicating success in when
>> a wait for the event timeouts.
>>
>> Temporary workaround until a FW fix is introduced.
>>
>> Signed-off-by: Arik Nemtsov <arik@wizery.com>
>> ---
>
> [...]
>
>> @@ -1108,9 +1122,11 @@ int wl1271_cmd_remove_sta(struct wl1271 *wl, u8 hlid)
>> goto out_free;
>> }
>>
>> - ret = wl1271_cmd_wait_for_event(wl, STA_REMOVE_COMPLETE_EVENT_ID);
>> - if (ret < 0)
>> - wl1271_error("cmd remove sta event completion error");
>> + /*
>> + * We are ok with a timeout here. The event is sometimes not sent
>> + * due to a firmware bug.
>> + */
>> + wl1271_cmd_wait_for_event_or_timeout(wl, STA_REMOVE_COMPLETE_EVENT_ID);
>
> Why wait for the event at all then?
>
Well the bug is pretty rare (something like 1 in 100). Most of the
time we get the event immediately. This way a station can reconnect
very quickly in most cases.
Regards,
Arik
^ permalink raw reply
* Re: [PATCH v2 04/18] wl1271: AP-mode high level commands
From: Arik Nemtsov @ 2010-12-23 7:48 UTC (permalink / raw)
To: Luciano Coelho; +Cc: linux-wireless
In-Reply-To: <1293052614.14423.42.camel@powerslave>
On Wed, Dec 22, 2010 at 23:16, Luciano Coelho <luciano.coelho@nokia.com> wrote:
> On Wed, 2010-12-22 at 16:27 +0200, ext Arik Nemtsov wrote:
>> Add commands to start/stop BSS, add/remove STA and configure encryption
>> keys. Split the encryption commands "set key" and "set default key" into
>> AP and STA specific versions.
>>
>> Signed-off-by: Arik Nemtsov <arik@wizery.com>
>> ---
>
> [...]
>
>> @@ -850,3 +943,178 @@ out_free:
>> out:
>> return ret;
>> }
>> +
>> +int wl1271_cmd_start_bss(struct wl1271 *wl)
>> +{
>> + struct wl1271_cmd_bss_start *cmd;
>> + struct ieee80211_bss_conf *bss_conf = &wl->vif->bss_conf;
>> + int ret;
>> +
>> + wl1271_debug(DEBUG_CMD, "cmd start bss");
>> +
>> + /*
>> + * FIXME: We currently do not support hidden SSID. The real SSID
>> + * should be fetched from mac80211 first.
>> + */
>> + if (wl->ssid_len == 0) {
>> + wl1271_warning("Hidden SSID currently not supported for AP");
>> + return -EINVAL;
>> + }
>> +
>> + cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
>> + if (!cmd) {
>> + ret = -ENOMEM;
>> + goto out;
>> + }
>
> Please decide if you want to return directly here or set ret and goto
> out. For consistency, I'd suggest to set ret and goto out, since this
> is how (most of) the rest of the code does.
Fixed.
>
>
>> +int wl1271_cmd_add_sta(struct wl1271 *wl, struct ieee80211_sta *sta, u8 hlid)
>> +{
>> + struct wl1271_cmd_add_sta *cmd;
>> + int ret;
>> +
>> + wl1271_debug(DEBUG_CMD, "cmd add sta %d", (int)hlid);
>> +
>> + cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
>> + if (!cmd) {
>> + ret = -ENOMEM;
>> + goto out;
>> + }
>> +
>> + /* currently we don't support UAPSD */
>> + memset(cmd->psd_type, 0, sizeof(cmd->psd_type));
>> + cmd->sp_len = 0;
>
> No need to memset, since you're kzalloc'ing anyway. I guess just a good
> comment here is enough.
Fixed.
>
>
>> diff --git a/drivers/net/wireless/wl12xx/cmd.h b/drivers/net/wireless/wl12xx/cmd.h
>> index 2a1d9db..02f843c 100644
>> --- a/drivers/net/wireless/wl12xx/cmd.h
>> +++ b/drivers/net/wireless/wl12xx/cmd.h
>> @@ -54,12 +54,20 @@ struct sk_buff *wl1271_cmd_build_ap_probe_req(struct wl1271 *wl,
>> int wl1271_cmd_build_arp_rsp(struct wl1271 *wl, __be32 ip_addr);
>> int wl1271_build_qos_null_data(struct wl1271 *wl);
>> int wl1271_cmd_build_klv_null_data(struct wl1271 *wl);
>> -int wl1271_cmd_set_default_wep_key(struct wl1271 *wl, u8 id);
>> -int wl1271_cmd_set_key(struct wl1271 *wl, u16 action, u8 id, u8 key_type,
>> +int wl1271_cmd_set_sta_default_wep_key(struct wl1271 *wl, u8 id);
>> +int wl1271_cmd_set_ap_default_wep_key(struct wl1271 *wl, u8 id);
>> +int wl1271_cmd_set_sta_key(struct wl1271 *wl, u16 action, u8 id, u8 key_type,
>> u8 key_size, const u8 *key, const u8 *addr,
>> u32 tx_seq_32, u16 tx_seq_16);
>
> Indentation?
>
>> +int wl1271_cmd_set_ap_key(struct wl1271 *wl, u16 action, u8 id, u8 key_type,
>> + u8 key_size, const u8 *key, u8 hlid, u32 tx_seq_32,
>> + u16 tx_seq_16);
>
> Ditto.
>
Corrected indentations.
Regards,
Arik
^ permalink raw reply
* Re: [PATCH v2 02/18] wl1271: AP mode - AP specific CMD_CONFIGURE sub-commands
From: Arik Nemtsov @ 2010-12-23 6:48 UTC (permalink / raw)
To: Luciano Coelho; +Cc: linux-wireless
In-Reply-To: <1293050660.14423.20.camel@powerslave>
On Wed, Dec 22, 2010 at 22:44, Luciano Coelho <luciano.coelho@nokia.com> wrote:
>
> On Wed, 2010-12-22 at 16:27 +0200, ext Arik Nemtsov wrote:
> > Add AP max retries and rate policy configuration.
> > Rename STA rate policy configuration function.
> >
> > Signed-off-by: Arik Nemtsov <arik@wizery.com>
> > ---
>
> [...]
>
> > diff --git a/drivers/net/wireless/wl12xx/acx.h b/drivers/net/wireless/wl12xx/acx.h
> > index 9cbc3f4..d2a68bf 100644
> > --- a/drivers/net/wireless/wl12xx/acx.h
> > +++ b/drivers/net/wireless/wl12xx/acx.h
>
> [...]
>
> > + __le32 rate_policy_idx; /* The index of the rate policy */
>
> This comment is quite useless. ;)
Removed :)
>
> > @@ -1062,6 +1072,19 @@ struct wl1271_acx_fw_tsf_information {
> > u8 padding[3];
> > } __packed;
> >
> > +#define WL1271_AP_MAX_TX_RETRY 100
>
> Should this be part of the conf.h settings? Should it be made more
> easily configurable?
Actually this configures the FW for sending up an event once the
number of TX retries was exceeded. For now this event is masked out
and we just set to to a sane minimum (to prevent the FW from working
too hard sending these events).
Recently Johannes sent patches that allow this to be hooked up to
hostapd and actually disassociate the station -
http://www.spinics.net/lists/linux-wireless/msg59831.html
When this is implemented we should perhaps make this easily
configurable. For now conf.h sounds like a good place.
Regards,
Arik
^ permalink raw reply
* iwlwifi: Intel 3945ABG speed issues finally identified.
From: Eric Appleman @ 2010-12-23 6:15 UTC (permalink / raw)
To: linux-wireless
I spent most of the day bisecting and testing numerous kernels and my work has
finally paid off.
I've found 2 candidate commits.
a6866ac93e6cb68091326e80b4fa4619a5957644
1402364162afbaac1b8a74ee21aeb013e817ac7d
iwl3945 definitely broke between 2.6.35-rc2 and -rc3.
^ permalink raw reply
* Re: Backporting wl1271 driver to kernel-2.6.32 using compat-wireless
From: Ohad Ben-Cohen @ 2010-12-23 5:52 UTC (permalink / raw)
To: Elvis Dowson; +Cc: Hauke Mehrtens, Linux Wireless Mailing List
In-Reply-To: <9AD18479-91B8-42DB-8D81-2AF11DD05405@mac.com>
On Wed, Dec 22, 2010 at 11:07 PM, Elvis Dowson <elvis.dowson@mac.com> wrote:
> I was just thinking, run-time PM never made it to 2.6.32 right ?
It did.
> So, I might not need to add those run-time PM patches ?
You must, otherwise there is no way to power SDIO cards up and down..
^ permalink raw reply
* pull request: bluetooth-next-2.6 2010-12-23
From: Gustavo F. Padovan @ 2010-12-23 3:05 UTC (permalink / raw)
To: linville; +Cc: linux-wireless, linux-bluetooth
Hi John,
Here are my last set of patches to 2.6.38. Biggest feature is the new
Bluetooth Management Interface, which intends to replace all HCI raw access
from bluetoothd. That interface is still disabled by default. However you can
enable it via a module parameter.
The other two patches from me is simple fixes in the stack. Tracey's patch is
already in net-next and I only pushed it to solve a merge conflict.
This time I'm using a link to my git tree inside master.kernel.org,
git.kernel.org is really slow today.
Please pull or let me know any problems. Thanks.
The following changes since commit 5c4bc1ce917d93ce8f7dd498fbec6881b3d7743a:
rtlwifi: Fix large packet issue (2010-12-22 15:45:52 -0500)
are available in the git repository at:
master.kernel.org:/pub/scm/linux/kernel/git/padovan/bluetooth-next-2.6.git master
Gustavo F. Padovan (2):
Bluetooth: Don't accept ConfigReq if we aren't in the BT_CONFIG state
Bluetooth: Improve handling of HCI control channel in bind
Johan Hedberg (9):
Bluetooth: Add Bluetooth Management interface definitions
Bluetooth: Add initial Bluetooth Management interface callbacks
Bluetooth: Make hci_send_to_sock usable for management control sockets
Bluetooth: Add error handling for managment command handlers
Bluetooth: Add read_version management command
Bluetooth: Add read_index_list management command
Bluetooth: Add read_info management command
Bluetooth: Add management events for controller addition & removal
Bluetooth: Fix __hci_request synchronization for hci_open_dev
Tracey Dent (1):
Net: bluetooth: Makefile: Remove deprecated kbuild goal definitions
include/net/bluetooth/bluetooth.h | 1 +
include/net/bluetooth/hci.h | 4 +
include/net/bluetooth/hci_core.h | 9 +-
include/net/bluetooth/mgmt.h | 87 +++++++++++
net/bluetooth/Makefile | 2 +-
net/bluetooth/hci_core.c | 17 ++-
net/bluetooth/hci_event.c | 33 +++--
net/bluetooth/hci_sock.c | 52 ++++++-
net/bluetooth/l2cap.c | 8 +-
net/bluetooth/mgmt.c | 308 +++++++++++++++++++++++++++++++++++++
10 files changed, 498 insertions(+), 23 deletions(-)
create mode 100644 include/net/bluetooth/mgmt.h
create mode 100644 net/bluetooth/mgmt.c
--
Gustavo F. Padovan
http://profusion.mobi
^ permalink raw reply
* Re: [PATCH v3 1/2] ath9k_hw: Fix incorrect macversion and macrev checks
From: Luis R. Rodriguez @ 2010-12-23 2:07 UTC (permalink / raw)
To: Senthil Balasubramanian
Cc: Luis Rodriguez, linville@tuxdriver.com,
linux-wireless@vger.kernel.org, Stable Kernel
In-Reply-To: <20101223020439.GC4215@senthil-lnx.users.atheros.com>
On Wed, Dec 22, 2010 at 9:04 PM, Senthil Balasubramanian
<senthilkumar@atheros.com> wrote:
> On Thu, Dec 23, 2010 at 07:25:42AM +0530, Senthilkumar Balasubramanian wrote:
>> On Wed, Dec 22, 2010 at 09:22:06PM +0530, Luis R. Rodriguez wrote:
>> > On Wed, Dec 22, 2010 at 10:44 AM, Senthil Balasubramanian
>> > <senthilkumar@atheros.com> wrote:
>> > > There are few places where we are checking for macversion and revsions
>> > > before RTC is powered ON. However we are reading the macversion and
>> > > revisions only after RTC is powered ON and so both macversion and
>> > > revisions are actully zero and this leads to incorrect srev checks
>> > >
>> > > Incorrect srev checks can cause registers to be configured wrongly and can
>> > > cause unexpected behavior. Fixing this seems to address the ASPM issue that
>> > > we have observed. The laptop becomes very slow and hangs mostly with ASPM L1
>> > > enabled without this fix.
>> >
>> > On what chipset? Or did we see this on one chipset and suspect it can
>> > affect others?
>> We have noticed on Merlin and it is obviously incorrect for other chipsets
> This should be read as "we have noticed this issue with ar9380/ar9382"
The reason I asked about the chipset is ar9380 stuff won't be relevant
for longterm 2.6.35.
Luis
^ permalink raw reply
* Re: [PATCH v3 1/2] ath9k_hw: Fix incorrect macversion and macrev checks
From: Senthil Balasubramanian @ 2010-12-23 2:04 UTC (permalink / raw)
To: Luis Rodriguez
Cc: Luis R. Rodriguez, linville@tuxdriver.com,
linux-wireless@vger.kernel.org, Stable Kernel
In-Reply-To: <20101223015542.GA4215@senthil-lnx.users.atheros.com>
On Thu, Dec 23, 2010 at 07:25:42AM +0530, Senthilkumar Balasubramanian wrote:
> On Wed, Dec 22, 2010 at 09:22:06PM +0530, Luis R. Rodriguez wrote:
> > On Wed, Dec 22, 2010 at 10:44 AM, Senthil Balasubramanian
> > <senthilkumar@atheros.com> wrote:
> > > There are few places where we are checking for macversion and revsions
> > > before RTC is powered ON. However we are reading the macversion and
> > > revisions only after RTC is powered ON and so both macversion and
> > > revisions are actully zero and this leads to incorrect srev checks
> > >
> > > Incorrect srev checks can cause registers to be configured wrongly and can
> > > cause unexpected behavior. Fixing this seems to address the ASPM issue that
> > > we have observed. The laptop becomes very slow and hangs mostly with ASPM L1
> > > enabled without this fix.
> >
> > On what chipset? Or did we see this on one chipset and suspect it can
> > affect others?
> We have noticed on Merlin and it is obviously incorrect for other chipsets
This should be read as "we have noticed this issue with ar9380/ar9382"
> also :-(. Please feel free to rephrase/rework on this patch if you think
> something is still lacking/missing...
> >
> > Luis
^ permalink raw reply
* Re: [PATCH v3 1/2] ath9k_hw: Fix incorrect macversion and macrev checks
From: Senthil Balasubramanian @ 2010-12-23 1:55 UTC (permalink / raw)
To: Luis R. Rodriguez
Cc: Senthilkumar Balasubramanian, linville@tuxdriver.com,
linux-wireless@vger.kernel.org, Stable Kernel
In-Reply-To: <AANLkTikGgSbAY1FRHNOoVmgVk3BKdvBtY+ir9y5BywW0@mail.gmail.com>
On Wed, Dec 22, 2010 at 09:22:06PM +0530, Luis R. Rodriguez wrote:
> On Wed, Dec 22, 2010 at 10:44 AM, Senthil Balasubramanian
> <senthilkumar@atheros.com> wrote:
> > There are few places where we are checking for macversion and revsions
> > before RTC is powered ON. However we are reading the macversion and
> > revisions only after RTC is powered ON and so both macversion and
> > revisions are actully zero and this leads to incorrect srev checks
> >
> > Incorrect srev checks can cause registers to be configured wrongly and can
> > cause unexpected behavior. Fixing this seems to address the ASPM issue that
> > we have observed. The laptop becomes very slow and hangs mostly with ASPM L1
> > enabled without this fix.
>
> On what chipset? Or did we see this on one chipset and suspect it can
> affect others?
We have noticed on Merlin and it is obviously incorrect for other chipsets
also :-(. Please feel free to rephrase/rework on this patch if you think
something is still lacking/missing...
>
> Luis
^ permalink raw reply
* Re: pull request: wireless-2.6 2010-12-22
From: David Miller @ 2010-12-23 1:35 UTC (permalink / raw)
To: linville; +Cc: linux-wireless, netdev, linux-kernel
In-Reply-To: <20101222195209.GD10046@tuxdriver.com>
From: "John W. Linville" <linville@tuxdriver.com>
Date: Wed, 22 Dec 2010 14:52:09 -0500
> Dave,
>
> Three more fixes intended for 2.6.37...
>
> The one from Johannes Berg avoids a NULL pointer dereference in the mesh
> code. The one from Johannes Stezenbach fixes bug 24892, which is a
> lock-up caused by rt2x00. Finally, you probably recognize the one from
> Meelis Roos which removes some log spam coming from hostap. These have
> all spent several days in linux-next without any adverse effects.
>
> Please let me know if there are problems!
Pulled, thanks John.
^ permalink raw reply
* Re: [PATCH] compat-wireless: build led support conditionally
From: Luis R. Rodriguez @ 2010-12-22 22:57 UTC (permalink / raw)
To: Hauke Mehrtens; +Cc: linux-wireless, mcgrof
In-Reply-To: <1293041434-3594-1-git-send-email-hauke@hauke-m.de>
On Wed, Dec 22, 2010 at 1:10 PM, Hauke Mehrtens <hauke@hauke-m.de> wrote:
> Do not build compat-wireless with LED support when the kernel does not
> contain a led subsystem.
> This fixes some compile problems when CONFIG_LEDS_TRIGGERS is not set.
>
> Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Patch applied and pushed, thanks!
Luis
^ permalink raw reply
* Re: [PATCH] compat: remove print_mac et al
From: Luis R. Rodriguez @ 2010-12-22 22:55 UTC (permalink / raw)
To: Johannes Berg; +Cc: linux-wireless@vger.kernel.org
In-Reply-To: <1293052265.3531.26.camel@jlt3.sipsolutions.net>
On Wed, Dec 22, 2010 at 4:11 PM, Johannes Berg
<johannes@sipsolutions.net> wrote:
> From: Johannes Berg <johannes.berg@intel.com>
>
> This has disappeared upstream and is no longer used.
>
> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Applied both patches, thanks!
Luis
^ permalink raw reply
* Re: [PATCH v2 08/18] wl1271: Add AP related definitions to HOST-FW interface
From: Luciano Coelho @ 2010-12-22 21:36 UTC (permalink / raw)
To: ext Arik Nemtsov; +Cc: linux-wireless
In-Reply-To: <1293028057-6212-9-git-send-email-arik@wizery.com>
On Wed, 2010-12-22 at 16:27 +0200, ext Arik Nemtsov wrote:
> Change structures in a non-destructive manner. This means no
> changes in size or location of existing members used by STA.
>
> Signed-off-by: Arik Nemtsov <arik@wizery.com>
> ---
[...]
> diff --git a/drivers/net/wireless/wl12xx/rx.h b/drivers/net/wireless/wl12xx/rx.h
> index 3abb26f..19fd591 100644
> --- a/drivers/net/wireless/wl12xx/rx.h
> +++ b/drivers/net/wireless/wl12xx/rx.h
> @@ -86,10 +86,11 @@
> /*
> * RX Descriptor status
> *
> - * Bits 0-2 - status
> - * Bits 3-7 - reserved
> + * Bits 0-2 - error code
> + * Bits 3-5 - process_id tag (AP mode FW)
> + * Bits 6-7 - reserved
> */
> -#define WL1271_RX_DESC_STATUS_MASK 0x07
> +#define WL1271_RX_DESC_STATUS_MASK 0x03
What happened with bit 2?
--
Cheers,
Luca.
^ permalink raw reply
* Re: [PATCH v2 07/18] wl1271: AP specific RX filter configuration
From: Luciano Coelho @ 2010-12-22 21:29 UTC (permalink / raw)
To: ext Arik Nemtsov; +Cc: linux-wireless
In-Reply-To: <1293028057-6212-8-git-send-email-arik@wizery.com>
On Wed, 2010-12-22 at 16:27 +0200, ext Arik Nemtsov wrote:
> Set filters according to the mode of operation.
>
> Signed-off-by: Arik Nemtsov <arik@wizery.com>
> ---
[...]
> diff --git a/drivers/net/wireless/wl12xx/boot.h b/drivers/net/wireless/wl12xx/boot.h
> index d67dcff..5f19a40 100644
> --- a/drivers/net/wireless/wl12xx/boot.h
> +++ b/drivers/net/wireless/wl12xx/boot.h
> @@ -69,4 +69,7 @@ struct wl1271_static_data {
> #define FREF_CLK_POLARITY_BITS 0xfffff8ff
> #define CLK_REQ_OUTN_SEL 0x700
>
> +/* Functions from wl1271_main.c */
> +void wl1271_set_default_filters(struct wl1271 *wl);
> +
This is not good. Can't this be defined in rx.c and rx.h instead?
--
Cheers,
Luca.
^ permalink raw reply
* Re: [PATCH v2 05/18] wl1271: AP mode - workaround for FW bug on station remove
From: Luciano Coelho @ 2010-12-22 21:19 UTC (permalink / raw)
To: ext Arik Nemtsov; +Cc: linux-wireless
In-Reply-To: <1293028057-6212-6-git-send-email-arik@wizery.com>
On Wed, 2010-12-22 at 16:27 +0200, ext Arik Nemtsov wrote:
> Sometimes an event indicating station removal is not sent up by
> firmware. We work around this by always indicating success in when
> a wait for the event timeouts.
>
> Temporary workaround until a FW fix is introduced.
>
> Signed-off-by: Arik Nemtsov <arik@wizery.com>
> ---
[...]
> @@ -1108,9 +1122,11 @@ int wl1271_cmd_remove_sta(struct wl1271 *wl, u8 hlid)
> goto out_free;
> }
>
> - ret = wl1271_cmd_wait_for_event(wl, STA_REMOVE_COMPLETE_EVENT_ID);
> - if (ret < 0)
> - wl1271_error("cmd remove sta event completion error");
> + /*
> + * We are ok with a timeout here. The event is sometimes not sent
> + * due to a firmware bug.
> + */
> + wl1271_cmd_wait_for_event_or_timeout(wl, STA_REMOVE_COMPLETE_EVENT_ID);
Why wait for the event at all then?
--
Cheers,
Luca.
^ permalink raw reply
* Re: [PATCH v2 04/18] wl1271: AP-mode high level commands
From: Luciano Coelho @ 2010-12-22 21:16 UTC (permalink / raw)
To: ext Arik Nemtsov; +Cc: linux-wireless
In-Reply-To: <1293028057-6212-5-git-send-email-arik@wizery.com>
On Wed, 2010-12-22 at 16:27 +0200, ext Arik Nemtsov wrote:
> Add commands to start/stop BSS, add/remove STA and configure encryption
> keys. Split the encryption commands "set key" and "set default key" into
> AP and STA specific versions.
>
> Signed-off-by: Arik Nemtsov <arik@wizery.com>
> ---
[...]
> @@ -850,3 +943,178 @@ out_free:
> out:
> return ret;
> }
> +
> +int wl1271_cmd_start_bss(struct wl1271 *wl)
> +{
> + struct wl1271_cmd_bss_start *cmd;
> + struct ieee80211_bss_conf *bss_conf = &wl->vif->bss_conf;
> + int ret;
> +
> + wl1271_debug(DEBUG_CMD, "cmd start bss");
> +
> + /*
> + * FIXME: We currently do not support hidden SSID. The real SSID
> + * should be fetched from mac80211 first.
> + */
> + if (wl->ssid_len == 0) {
> + wl1271_warning("Hidden SSID currently not supported for AP");
> + return -EINVAL;
> + }
> +
> + cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
> + if (!cmd) {
> + ret = -ENOMEM;
> + goto out;
> + }
Please decide if you want to return directly here or set ret and goto
out. For consistency, I'd suggest to set ret and goto out, since this
is how (most of) the rest of the code does.
> +int wl1271_cmd_add_sta(struct wl1271 *wl, struct ieee80211_sta *sta, u8 hlid)
> +{
> + struct wl1271_cmd_add_sta *cmd;
> + int ret;
> +
> + wl1271_debug(DEBUG_CMD, "cmd add sta %d", (int)hlid);
> +
> + cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
> + if (!cmd) {
> + ret = -ENOMEM;
> + goto out;
> + }
> +
> + /* currently we don't support UAPSD */
> + memset(cmd->psd_type, 0, sizeof(cmd->psd_type));
> + cmd->sp_len = 0;
No need to memset, since you're kzalloc'ing anyway. I guess just a good
comment here is enough.
> diff --git a/drivers/net/wireless/wl12xx/cmd.h b/drivers/net/wireless/wl12xx/cmd.h
> index 2a1d9db..02f843c 100644
> --- a/drivers/net/wireless/wl12xx/cmd.h
> +++ b/drivers/net/wireless/wl12xx/cmd.h
> @@ -54,12 +54,20 @@ struct sk_buff *wl1271_cmd_build_ap_probe_req(struct wl1271 *wl,
> int wl1271_cmd_build_arp_rsp(struct wl1271 *wl, __be32 ip_addr);
> int wl1271_build_qos_null_data(struct wl1271 *wl);
> int wl1271_cmd_build_klv_null_data(struct wl1271 *wl);
> -int wl1271_cmd_set_default_wep_key(struct wl1271 *wl, u8 id);
> -int wl1271_cmd_set_key(struct wl1271 *wl, u16 action, u8 id, u8 key_type,
> +int wl1271_cmd_set_sta_default_wep_key(struct wl1271 *wl, u8 id);
> +int wl1271_cmd_set_ap_default_wep_key(struct wl1271 *wl, u8 id);
> +int wl1271_cmd_set_sta_key(struct wl1271 *wl, u16 action, u8 id, u8 key_type,
> u8 key_size, const u8 *key, const u8 *addr,
> u32 tx_seq_32, u16 tx_seq_16);
Indentation?
> +int wl1271_cmd_set_ap_key(struct wl1271 *wl, u16 action, u8 id, u8 key_type,
> + u8 key_size, const u8 *key, u8 hlid, u32 tx_seq_32,
> + u16 tx_seq_16);
Ditto.
--
Cheers,
Luca.
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox