Linux wireless drivers development
 help / color / mirror / Atom feed
* Re: linux-next: build failure after merge of the moduleh tree
From: Kalle Valo @ 2011-10-04  7:35 UTC (permalink / raw)
  To: Stephen Rothwell
  Cc: Paul Gortmaker, linux-next, linux-kernel, John W. Linville,
	linux-wireless
In-Reply-To: <20111004180333.44f741dc08063a918c9b581f@canb.auug.org.au>

On 10/04/2011 10:03 AM, Stephen Rothwell wrote:
> After merging the moduleh tree, today's linux-next build (x86_64
> allmodconfig) failed like this:
> 
> drivers/net/wireless/ath/ath6kl/debug.c:237:11: error: 'THIS_MODULE' undeclared here (not in a function)
> 
> Caused by commit 9a7308341b71 ("ath6kl: silence "invalid rate" warning")
> from the wireless tree interacting with the module.h split.
> 
> I added this patch:

John&Paul, how do we handle this patch?

> From: Stephen Rothwell <sfr@canb.auug.org.au>
> Date: Tue, 4 Oct 2011 18:01:03 +1100
> Subject: [PATCH] ath6kl: THIS_MODULES needs export.h
> 
> Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
> ---
>  drivers/net/wireless/ath/ath6kl/debug.c |    1 +
>  1 files changed, 1 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/net/wireless/ath/ath6kl/debug.c b/drivers/net/wireless/ath/ath6kl/debug.c
> index ba3f23d..7879b53 100644
> --- a/drivers/net/wireless/ath/ath6kl/debug.c
> +++ b/drivers/net/wireless/ath/ath6kl/debug.c
> @@ -19,6 +19,7 @@
>  #include <linux/circ_buf.h>
>  #include <linux/fs.h>
>  #include <linux/vmalloc.h>
> +#include <linux/export.h>
>  
>  #include "debug.h"
>  #include "target.h"

Kalle

^ permalink raw reply

* Re: rt2800pci - ksoftirq takes 100% CPU
From: Helmut Schaa @ 2011-10-04  7:42 UTC (permalink / raw)
  To: Loiseau Lucien; +Cc: linux-wireless
In-Reply-To: <20111001145007.GA2094@loiseau.cc>

On Sat, Oct 1, 2011 at 4:50 PM, Loiseau Lucien <loiseau.lucien@gmail.com> wrote:
> Hi there,
>
> I experience some trouble with my RaLink RT3090 Wireless 802.11n 1T/1R
> PCIe card. I'm trying to set a wireless access point with it. I'm
> running a Debian Squeeze with kernel 2.6.32-5-686.
>
> at first i was using the shipped rt2860sta but since it's not a mac80211
> driver, i couldn't use hostapd and iwconfig mode master was not working.
> I eventually installed different stable version of compat-wireless and
> ran the driver rt2800pci. If i could set a running access  point, i
> often end with an unloadable module whith a ksoftirq taking 100% of my
> CPU. Once this "ksoftirq" problem arises, there is no way to  unload the
> module.
>
> does anyone ever experience this card and make it work fine ?
> I can provide more information if needed.

Could you please check if you have [1] applied?

Thanks,
Helmut

[1] http://permalink.gmane.org/gmane.linux.kernel.wireless.general/74494

^ permalink raw reply

* Re: ath9k: irq storm after suspend/resume
From: Adrian Chadd @ 2011-10-04  7:58 UTC (permalink / raw)
  To: Clemens Buchacher; +Cc: Mohammed Shafi, linux-wireless
In-Reply-To: <20111003084823.GA1521@ecki.lan>

Right, this looks a bit evil. ;)

On 3 October 2011 16:48, Clemens Buchacher <drizzd@aon.at> wrote:

> for 1, 2, ..., 99, 128, 256:
> AR_INTR_SYNC_CAUSE: 0x00000000, AR_INTR_ASYNC_CAUSE: 0x00000000
> AR_IMR: 0xdeadbeef, AR_ISR: 0xdeadbeef

.. that says some part of the MAC is very asleep. But no interrupt
cause bits are set. So I bet it's a shared interrupt.

> for 512:
> AR_INTR_SYNC_CAUSE: 0x00000000, AR_INTR_ASYNC_CAUSE: 0x00000000
> AR_IMR: 0x00000000, AR_ISR: 0x00000208

That looks valid, but why are you receiving an interrupt here? Is it
some other device on a shared irq? Or a non-acked interrupt?
Ie - there's no sync/async cause bits set and IMR is 0, the status
bits are no tx pkt / no rx pkt. So that looks fine. You shouldn't have
received an interrupt.

> for 1024:
> AR_INTR_SYNC_CAUSE: 0x00000000, AR_INTR_ASYNC_CAUSE: 0x00000000
> AR_IMR: 0x81800964, AR_ISR: 0x00000008

.. hm,  why'd you receive an interrupt here? the ISR bits aren't set that way.
Again, I think this is another shared or non-acked interrupt coming in.

> for 2048:
> AR_INTR_SYNC_CAUSE: 0x00000000, AR_INTR_ASYNC_CAUSE: 0x00000000
> AR_IMR: 0xdeadbeef, AR_ISR: 0xdeadbeef
>
> for 2^12, 2^13, ..., 2^16
> AR_INTR_SYNC_CAUSE: 0x00020000, AR_INTR_ASYNC_CAUSE: 0x00000000
> AR_IMR: 0xdeadbeef, AR_ISR: 0xdeadbeef
>
> The last ones indeed correspond to AR_INTR_SYNC_MAC_SLEEP_ACCESS
> that you mentioned. Note that this output is interleaved with
> device initialization. So I don't know if that causes the register
> contents to become valid, or if it changes the contents.
>
> If I suspend/resume first, then load the module, then wait for 500
> ms after request_irq I get only zeroes, repeated 109 times:
>
> for 1, 2, ..., 99, 2^7, 2^8, ..., 2^16:
> AR_IMR: 0x00000000, AR_ISR: 0x00000000
> AR_INTR_SYNC_CAUSE: 0x00000000, AR_INTR_ASYNC_CAUSE: 0x00000000

Would you mind also printing the contents of AR_IER there? I wonder if
AR_IER is incorrectly being enabled.

I think this may be a shared interrupt. What else is using the same
IRQ line? What about only printing out those lines if the interrupt is
actually generated by the NIC? There's a function further down in the
isr routine which checks whether the NIC itself posted the interrupt
(it checks SYNC_CAUSE/ASYNC_CAUSE.) That should cut down the spam
quite a bit and only log the relevant entries for ath9k.




Adrian

^ permalink raw reply

* Re: [PATCH 4/5] ath6kl: Fix possible race in accessing bounce buffer
From: Kalle Valo @ 2011-10-04  8:08 UTC (permalink / raw)
  To: Thiagarajan, Vasanthakumar; +Cc: linux-wireless@vger.kernel.org
In-Reply-To: <EDA962D9696870498097087E0373E7710B5AA5@nasanexd01e.na.qualcomm.com>

On 10/03/2011 06:52 PM, Thiagarajan, Vasanthakumar wrote:
> 
> ________________________________________
> From: Thiagarajan, Vasanthakumar
> Sent: Friday, September 30, 2011 7:18 PM
> To: Valo, Kalle
> Cc: linux-wireless@vger.kernel.org
> Subject: [PATCH 4/5] ath6kl: Fix possible race in accessing bounce buffer
> 
> There is only one bounce buffer (ar_sdio->dma_buffer) which is used
> for both read and write without any protection. Fix this race by
> allocating bounce buffer every time when it is needed.
> 
> As I have never seen any race in bounce buffer practically during my testing,
> this patch can be dropped instead of making the code complex for no reason.

Heh, we got lucky again. I had applied the patches but forgot to push
them to github. So I was able to drop patches 4 and 5.

Kalle

^ permalink raw reply

* Re: linux-next: build failure after merge of the moduleh tree
From: Stephen Rothwell @ 2011-10-04  8:14 UTC (permalink / raw)
  To: Kalle Valo
  Cc: Paul Gortmaker, linux-next, linux-kernel, John W. Linville,
	linux-wireless
In-Reply-To: <4E8AB741.9030707@qca.qualcomm.com>

[-- Attachment #1: Type: text/plain, Size: 826 bytes --]

Hi Kalle,

On Tue, 4 Oct 2011 10:35:29 +0300 Kalle Valo <kvalo@qca.qualcomm.com> wrote:
>
> On 10/04/2011 10:03 AM, Stephen Rothwell wrote:
> > After merging the moduleh tree, today's linux-next build (x86_64
> > allmodconfig) failed like this:
> > 
> > drivers/net/wireless/ath/ath6kl/debug.c:237:11: error: 'THIS_MODULE' undeclared here (not in a function)
> > 
> > Caused by commit 9a7308341b71 ("ath6kl: silence "invalid rate" warning")
> > from the wireless tree interacting with the module.h split.
> > 
> > I added this patch:
> 
> John&Paul, how do we handle this patch?

Since it adds an include of export.h (which only exists in Paul's tree),
it goes into Paul's post merge patch series.

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply

* Re: [RFC 1/6] ath9k: add DFS statistics to debugfs
From: Zefir Kurtisi @ 2011-10-04  8:27 UTC (permalink / raw)
  To: Luis R. Rodriguez; +Cc: linux-wireless, ath9k-devel, kgiori, nbd
In-Reply-To: <CAB=NE6UUspgQtFeVr+dfFtHEHxW6wMue+PS1RrwmJO1rqroW7A@mail.gmail.com>

On 10/03/2011 08:14 PM, Luis R. Rodriguez wrote:
> On Mon, Oct 3, 2011 at 3:29 AM, Zefir Kurtisi <zefir.kurtisi@neratec.com> wrote:
>>
>> Signed-off-by: Zefir Kurtisi <zefir.kurtisi@neratec.com>
>> ---
>>  drivers/net/wireless/ath/ath9k/debug.c |   51 ++++++++++++++++++++++++++++++++
>>  drivers/net/wireless/ath/ath9k/debug.h |   29 ++++++++++++++++++
>>  2 files changed, 80 insertions(+), 0 deletions(-)
>>
>> diff --git a/drivers/net/wireless/ath/ath9k/debug.c b/drivers/net/wireless/ath/ath9k/debug.c
>> index cdece82..6ad2266 100644
>> --- a/drivers/net/wireless/ath/ath9k/debug.c
>> +++ b/drivers/net/wireless/ath/ath9k/debug.c
>> @@ -89,6 +89,53 @@ static const struct file_operations fops_debug = {
>>
>>  #endif
>>
>> +
>> +#ifdef CONFIG_ATH9K_DFS
> 
> This kconfig entry doesn't exist yet, so no point in referring to it
> yet, you can add a patch that adds this but describe it as work in
> progress or something like that and later correct the text as you move
> on.
> 
True, but the Kconfig entry is introduced in 4/6 of this series. I am not aware that the ordering of patches within a series is relevant, as long as it compiles after each additionally applied patch. But sure I can reorder, if that solves your concern.
>> +
>> +#define DFS_STAT(s, p) \
>> +       len += snprintf(buf + len, size - len, "%28s : %10u\n", s, \
>> +                       sc->debug.stats.dfs_stats.p);
>> +
> 
> Either rename DFS_STAT to ATH9K_DFS_STAT or undef DFS_STAT after its usage.
> 
Ok.
>> +static ssize_t read_file_dfs(struct file *file, char __user *user_buf,
>> +                            size_t count, loff_t *ppos)
>> +{
>> +       struct ath_softc *sc = file->private_data;
>> +       char *buf;
>> +       unsigned int len = 0, size = 8000;
>> +       ssize_t retval = 0;
>> +
>> +       buf = kzalloc(size, GFP_KERNEL);
>> +       if (buf == NULL)
>> +               return -ENOMEM;
>> +
>> +       DFS_STAT("DFS pulses detected     ", pulses_detected);
>> +       DFS_STAT("Datalen discards        ", datalen_discards);
>> +       DFS_STAT("RSSI discards           ", rssi_discards);
>> +       DFS_STAT("BW info discards        ", bwinfo_discards);
>> +       DFS_STAT("Primary channel pulses  ", pri_phy_errors);
>> +       DFS_STAT("Secondary channel pulses", ext_phy_errors);
>> +       DFS_STAT("Dual channel pulses     ", dc_phy_errors);
>> +
>> +       if (len > size)
>> +               len = size;
>> +
>> +       retval = simple_read_from_buffer(user_buf, count, ppos, buf, len);
>> +       kfree(buf);
>> +
>> +       return retval;
>> +}
>> +
>> +
>> +static const struct file_operations fops_dfs_stats = {
>> +       .read = read_file_dfs,
>> +       .open = ath9k_debugfs_open,
>> +       .owner = THIS_MODULE,
>> +       .llseek = default_llseek,
>> +};
>> +#endif /* CONFIG_ATH9K_DFS */
> 
> I'd prefer to keep this apart into a debugfs_dfs.c but that's just me,
> I would like to ensure to keep *all* DFS stat as easy to review as
> possible and am not a fan of the ifdef sprinkle.
> 
Ok.
>> +
>> +
>>  #define DMA_BUF_LEN 1024
>>
>>  static ssize_t read_file_tx_chainmask(struct file *file, char __user *user_buf,
>> @@ -1385,6 +1432,10 @@ int ath9k_init_debug(struct ath_hw *ah)
>>        debugfs_create_u32("chanbw", S_IRUSR | S_IWUSR, sc->debug.debugfs_phy,
>>                           &sc->chan_bw);
>>
>> +#ifdef CONFIG_ATH9K_DFS
>> +       debugfs_create_file("dfs_stats", S_IRUSR, sc->debug.debugfs_phy, sc,
>> +                           &fops_dfs_stats);
>> +#endif
> 
> If you stuff the code into a file here you'd just need a caller to
> ath9k_debugfs_dfs_create() or something like that.
> 
Ok.
>>        sc->debug.regidx = 0;
>>        return 0;
>>  }
>> diff --git a/drivers/net/wireless/ath/ath9k/debug.h b/drivers/net/wireless/ath/ath9k/debug.h
>> index 4a04510..3a3c3b7 100644
>> --- a/drivers/net/wireless/ath/ath9k/debug.h
>> +++ b/drivers/net/wireless/ath/ath9k/debug.h
>> @@ -25,8 +25,10 @@ struct ath_buf;
>>
>>  #ifdef CONFIG_ATH9K_DEBUGFS
>>  #define TX_STAT_INC(q, c) sc->debug.stats.txstats[q].c++
>> +#define DFS_STAT_INC(sc, c) (sc->debug.stats.dfs_stats.c++)
>>  #else
>>  #define TX_STAT_INC(q, c) do { } while (0)
>> +#define DFS_STAT_INC(sc, c) do { } while (0)
> 
> Who's using this? If no one, then why add it? That is add it only when
> its in code.
> 
It is used in 3/6, see reordering issue above.
>>  #endif
>>
>>  #ifdef CONFIG_ATH9K_DEBUGFS
>> @@ -171,10 +173,37 @@ struct ath_rx_stats {
>>        u8 rs_antenna;
>>  };
>>
>> +#ifdef CONFIG_ATH9K_DFS
>> +/**
>> + * struct ath_dfs_stats - DFS Statistics
>> + *
>> + * @pulses_detected: No. of pulses detected so far
>> + * @datalen_discards:  No. of pulses discarded due to invalid datalen
>> + * @rssi_discards: No. of pulses discarded due to invalid RSSI
>> + * @bwinfo_discards: No. of pulses discarded due to invalid BW info
>> + * @pri_phy_errors: No. of pulses reported for primary channel
>> + * @ext_phy_errors: No. of pulses reported for extension channel
>> + * @dc_phy_errors: No. of pulses reported for primary + extension channel
>> + */
>> +struct ath_dfs_stats {
>> +       u32 pulses_detected;
>> +       u32 datalen_discards;
>> +       u32 rssi_discards;
>> +       u32 bwinfo_discards;
>> +       u32 pri_phy_errors;
>> +       u32 ext_phy_errors;
>> +       u32 dc_phy_errors;
>> +};
>> +#endif
>> +
>> +
>>  struct ath_stats {
>>        struct ath_interrupt_stats istats;
>>        struct ath_tx_stats txstats[ATH9K_NUM_TX_QUEUES];
>>        struct ath_rx_stats rxstats;
>> +#ifdef CONFIG_ATH9K_DFS
>> +       struct ath_dfs_stats dfs_stats;
>> +#endif
> 
> If code used this set of stats this would give a compile error if
> CONFIG_ATH9K_DEBUGFS is enabled but CONFIG_ATH9K_DFS was disabled as
> the ifdef over the increment stat stuff is over CONFIG_ATH9K_DEBUGFS
> and not CONFIG_ATH9K_DFS, but again, no one uses this code yet.
> 
True, will be fixed.

>   Luis

Thanks,
Zefir

^ permalink raw reply

* Re: [RFC 2/6] ath9k: add DFS debug flag
From: Zefir Kurtisi @ 2011-10-04  8:31 UTC (permalink / raw)
  To: Luis R. Rodriguez; +Cc: linux-wireless, ath9k-devel, kgiori, nbd
In-Reply-To: <CAB=NE6WupXPFNOpzW6=De1XwpLdg16mv_jTjvwdaGomNJ9ktJg@mail.gmail.com>

On 10/03/2011 08:15 PM, Luis R. Rodriguez wrote:
> On Mon, Oct 3, 2011 at 3:29 AM, Zefir Kurtisi <zefir.kurtisi@neratec.com> wrote:
>>
>> Signed-off-by: Zefir Kurtisi <zefir.kurtisi@neratec.com>
>> ---
>>  drivers/net/wireless/ath/ath.h |   34 ++++++++++++++++++----------------
>>  1 files changed, 18 insertions(+), 16 deletions(-)
>>
>> diff --git a/drivers/net/wireless/ath/ath.h b/drivers/net/wireless/ath/ath.h
>> index 6d56532..34d4da1 100644
>> --- a/drivers/net/wireless/ath/ath.h
>> +++ b/drivers/net/wireless/ath/ath.h
>> @@ -211,6 +211,7 @@ ath_printk(const char *level, struct ath_common *common, const char *fmt, ...);
>>  * @ATH_DBG_HWTIMER: hardware timer handling
>>  * @ATH_DBG_BTCOEX: bluetooth coexistance
>>  * @ATH_DBG_BSTUCK: stuck beacons
>> + * @ATH_DBG_DFS: radar datection
>>  * @ATH_DBG_ANY: enable all debugging
>>  *
>>  * The debug level is used to control the amount and type of debugging output
>> @@ -220,22 +221,23 @@ ath_printk(const char *level, struct ath_common *common, const char *fmt, ...);
>>  * entry.
>>  */
>>  enum ATH_DEBUG {
>> -       ATH_DBG_RESET           = 0x00000001,
>> -       ATH_DBG_QUEUE           = 0x00000002,
>> -       ATH_DBG_EEPROM          = 0x00000004,
>> -       ATH_DBG_CALIBRATE       = 0x00000008,
>> -       ATH_DBG_INTERRUPT       = 0x00000010,
>> -       ATH_DBG_REGULATORY      = 0x00000020,
>> -       ATH_DBG_ANI             = 0x00000040,
>> -       ATH_DBG_XMIT            = 0x00000080,
>> -       ATH_DBG_BEACON          = 0x00000100,
>> -       ATH_DBG_CONFIG          = 0x00000200,
>> -       ATH_DBG_FATAL           = 0x00000400,
>> -       ATH_DBG_PS              = 0x00000800,
>> -       ATH_DBG_HWTIMER         = 0x00001000,
>> -       ATH_DBG_BTCOEX          = 0x00002000,
>> -       ATH_DBG_WMI             = 0x00004000,
>> -       ATH_DBG_BSTUCK          = 0x00008000,
>> +       ATH_DBG_RESET           = BIT(0),
>> +       ATH_DBG_QUEUE           = BIT(1),
>> +       ATH_DBG_EEPROM          = BIT(2),
>> +       ATH_DBG_CALIBRATE       = BIT(3),
>> +       ATH_DBG_INTERRUPT       = BIT(4),
>> +       ATH_DBG_REGULATORY      = BIT(5),
>> +       ATH_DBG_ANI             = BIT(6),
>> +       ATH_DBG_XMIT            = BIT(7),
>> +       ATH_DBG_BEACON          = BIT(8),
>> +       ATH_DBG_CONFIG          = BIT(9),
>> +       ATH_DBG_FATAL           = BIT(10),
>> +       ATH_DBG_PS              = BIT(11),
>> +       ATH_DBG_HWTIMER         = BIT(12),
>> +       ATH_DBG_BTCOEX          = BIT(13),
>> +       ATH_DBG_WMI             = BIT(14),
>> +       ATH_DBG_BSTUCK          = BIT(15),
>> +       ATH_DBG_DFS             = BIT(16),
>>        ATH_DBG_ANY             = 0xffffffff
> 
> Split this into two patches, one to convert stuff to BIT(foo) and the
> other one to add ATH_DBG_DFS
In fact, the BIT values will be reverted, since it is easier to have the hex values when setting debug mask than the bit position (for me at least).
> 
>   Luis

Thanks,
Zefir

^ permalink raw reply

* Re: [RFC 2/6] ath9k: add DFS debug flag
From: Mohammed Shafi @ 2011-10-04  9:40 UTC (permalink / raw)
  To: Zefir Kurtisi; +Cc: Luis R. Rodriguez, linux-wireless, ath9k-devel, kgiori, nbd
In-Reply-To: <4E8AC46B.1010707@neratec.com>

On Tue, Oct 4, 2011 at 2:01 PM, Zefir Kurtisi <zefir.kurtisi@neratec.com> wrote:
> On 10/03/2011 08:15 PM, Luis R. Rodriguez wrote:
>> On Mon, Oct 3, 2011 at 3:29 AM, Zefir Kurtisi <zefir.kurtisi@neratec.com> wrote:
>>>
>>> Signed-off-by: Zefir Kurtisi <zefir.kurtisi@neratec.com>
>>> ---
>>>  drivers/net/wireless/ath/ath.h |   34 ++++++++++++++++++----------------
>>>  1 files changed, 18 insertions(+), 16 deletions(-)
>>>
>>> diff --git a/drivers/net/wireless/ath/ath.h b/drivers/net/wireless/ath/ath.h
>>> index 6d56532..34d4da1 100644
>>> --- a/drivers/net/wireless/ath/ath.h
>>> +++ b/drivers/net/wireless/ath/ath.h
>>> @@ -211,6 +211,7 @@ ath_printk(const char *level, struct ath_common *common, const char *fmt, ...);
>>>  * @ATH_DBG_HWTIMER: hardware timer handling
>>>  * @ATH_DBG_BTCOEX: bluetooth coexistance
>>>  * @ATH_DBG_BSTUCK: stuck beacons
>>> + * @ATH_DBG_DFS: radar datection
>>>  * @ATH_DBG_ANY: enable all debugging
>>>  *
>>>  * The debug level is used to control the amount and type of debugging output
>>> @@ -220,22 +221,23 @@ ath_printk(const char *level, struct ath_common *common, const char *fmt, ...);
>>>  * entry.
>>>  */
>>>  enum ATH_DEBUG {
>>> -       ATH_DBG_RESET           = 0x00000001,
>>> -       ATH_DBG_QUEUE           = 0x00000002,
>>> -       ATH_DBG_EEPROM          = 0x00000004,
>>> -       ATH_DBG_CALIBRATE       = 0x00000008,
>>> -       ATH_DBG_INTERRUPT       = 0x00000010,
>>> -       ATH_DBG_REGULATORY      = 0x00000020,
>>> -       ATH_DBG_ANI             = 0x00000040,
>>> -       ATH_DBG_XMIT            = 0x00000080,
>>> -       ATH_DBG_BEACON          = 0x00000100,
>>> -       ATH_DBG_CONFIG          = 0x00000200,
>>> -       ATH_DBG_FATAL           = 0x00000400,
>>> -       ATH_DBG_PS              = 0x00000800,
>>> -       ATH_DBG_HWTIMER         = 0x00001000,
>>> -       ATH_DBG_BTCOEX          = 0x00002000,
>>> -       ATH_DBG_WMI             = 0x00004000,
>>> -       ATH_DBG_BSTUCK          = 0x00008000,
>>> +       ATH_DBG_RESET           = BIT(0),
>>> +       ATH_DBG_QUEUE           = BIT(1),
>>> +       ATH_DBG_EEPROM          = BIT(2),
>>> +       ATH_DBG_CALIBRATE       = BIT(3),
>>> +       ATH_DBG_INTERRUPT       = BIT(4),
>>> +       ATH_DBG_REGULATORY      = BIT(5),
>>> +       ATH_DBG_ANI             = BIT(6),
>>> +       ATH_DBG_XMIT            = BIT(7),
>>> +       ATH_DBG_BEACON          = BIT(8),
>>> +       ATH_DBG_CONFIG          = BIT(9),
>>> +       ATH_DBG_FATAL           = BIT(10),
>>> +       ATH_DBG_PS              = BIT(11),
>>> +       ATH_DBG_HWTIMER         = BIT(12),
>>> +       ATH_DBG_BTCOEX          = BIT(13),
>>> +       ATH_DBG_WMI             = BIT(14),
>>> +       ATH_DBG_BSTUCK          = BIT(15),
>>> +       ATH_DBG_DFS             = BIT(16),
>>>        ATH_DBG_ANY             = 0xffffffff
>>
>> Split this into two patches, one to convert stuff to BIT(foo) and the
>> other one to add ATH_DBG_DFS
> In fact, the BIT values will be reverted, since it is easier to have the hex values when setting debug mask than the bit position (for me at least).

yes,  i agree having hex values is much better. especially when we
have a combination of 2 or 3 debug masks for debugging  issues.
thanks!

>>
>>   Luis
>
> Thanks,
> Zefir
> --
> 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
>



-- 
shafi

^ permalink raw reply

* Re: [RFC 4/6] ath9k: add DFS build parameter
From: Zefir Kurtisi @ 2011-10-04  9:55 UTC (permalink / raw)
  To: Luis R. Rodriguez; +Cc: linux-wireless, ath9k-devel, kgiori, nbd
In-Reply-To: <CAB=NE6XxW_kMnWLkC4dy4naUKaTk_hZi0_F86LNyuk3RNyqNQA@mail.gmail.com>

On 10/03/2011 08:26 PM, Luis R. Rodriguez wrote:
> On Mon, Oct 3, 2011 at 3:29 AM, Zefir Kurtisi <zefir.kurtisi@neratec.com> wrote:
>>
>> Signed-off-by: Zefir Kurtisi <zefir.kurtisi@neratec.com>
>> ---
>>  drivers/net/wireless/ath/ath9k/Kconfig  |    7 +++++++
>>  drivers/net/wireless/ath/ath9k/Makefile |    2 ++
>>  2 files changed, 9 insertions(+), 0 deletions(-)
>>
>> diff --git a/drivers/net/wireless/ath/ath9k/Kconfig b/drivers/net/wireless/ath/ath9k/Kconfig
>> index d9c08c6..adddcca 100644
>> --- a/drivers/net/wireless/ath/ath9k/Kconfig
>> +++ b/drivers/net/wireless/ath/ath9k/Kconfig
>> @@ -58,6 +58,13 @@ config ATH9K_RATE_CONTROL
>>          Say Y, if you want to use the ath9k specific rate control
>>          module instead of minstrel_ht.
>>
>> +config ATH9K_DFS
>> +       bool "Atheros ath9k DFS support"
>> +       depends on ATH9K
>> +       default y
> 
> At this point selecting y does nothing. Leave this patch out until
> selecting "y" means something.
> 
What do you mean by 'nothing'? It allows you to select DFS as ath9k feature in your kernel configuration, or? Though, I agree that enabling it by default is not a good idea.

> Default should be n, and in particular Atheros itself can only likely
> commit to supporting DFS for AR9003 when it finds resources to do so
> as well as properly test it, so DFS support kconfig should state this.
> If someone wants to step up to completely support all bugs for older
> families that is their prerogative but we cannot commit to it, due to
> the regulatory considerations though unless this happens this cannot
> and should not be enabled for older families in code.
> 
In fact, AR9003 is the platform we are interested in. Although it seems that older chipsets do also detect pulses with this patches (AR9280 does, IIRC), I agree to limit DFS support to AR9003 (and later). This should be easily possible by setting priv_ops->set_radar_params for AR9003 only. I'll remove it for AR5008 in my v2 RFC.

>   Luis

Thanks,
Zefir

^ permalink raw reply

* Re: [RFC 5/6] ath9k: enable DFS pulse detection
From: Zefir Kurtisi @ 2011-10-04 10:11 UTC (permalink / raw)
  To: Luis R. Rodriguez; +Cc: linux-wireless, ath9k-devel, kgiori, nbd
In-Reply-To: <CAB=NE6VO4W=ZJcgb3G5Gh=YM-jdkJ3ey5Ppka2Rn0XGmpx8=Gg@mail.gmail.com>

On 10/03/2011 08:27 PM, Luis R. Rodriguez wrote:
> On Mon, Oct 3, 2011 at 3:29 AM, Zefir Kurtisi <zefir.kurtisi@neratec.com> wrote:
>>
>> Signed-off-by: Zefir Kurtisi <zefir.kurtisi@neratec.com>
>> ---
>>  drivers/net/wireless/ath/ath9k/main.c |   12 ++++++++++++
>>  1 files changed, 12 insertions(+), 0 deletions(-)
>>
>> diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c
>> index e8aeb98..5defebe 100644
>> --- a/drivers/net/wireless/ath/ath9k/main.c
>> +++ b/drivers/net/wireless/ath/ath9k/main.c
>> @@ -344,6 +344,18 @@ static int ath_reset_internal(struct ath_softc *sc, struct ath9k_channel *hchan,
>>                        "Unable to reset channel, reset status %d\n", r);
>>                goto out;
>>        }
>> +#ifdef CONFIG_ATH9K_DFS
>> +       /**
>> +        * enable radar pulse detection
>> +        *
>> +        * TODO: do this only for DFS channels
>> +        */
>> +       ah->private_ops.set_radar_params(ah, &ah->radar_conf);
>> +       ath9k_hw_setrxfilter(ah,
>> +                       ath9k_hw_getrxfilter(ah) | ATH9K_RX_FILTER_PHYRADAR);
>> +       ath_dbg(common, ATH_DBG_DFS,
>> +               "DFS enabled for channel %d\n", hchan->chan->center_freq);
>> +#endif
> 
> Please spare the #ifdef and just call something within dfs.c, then
> dfs.h would wrap it to nothing if DFS is disabled.
> 
This possibly won't work, since setting up DFS registers is part of HW layer and not done in the dfs module. If you want to have DFS conditionally compilable, you can not spare this #ifdefs.

But I see that this would work in patch 6/6 when calling ath9k_dfs_process_phyerr() on ATH9K_PHYERR_RADAR. Will be considered.

>   Luis

Thanks,
Zefir

^ permalink raw reply

* Re: [RFC 4/6] ath9k: add DFS build parameter
From: Felix Fietkau @ 2011-10-04 10:37 UTC (permalink / raw)
  To: Zefir Kurtisi; +Cc: Luis R. Rodriguez, linux-wireless, ath9k-devel, kgiori
In-Reply-To: <4E8AD800.9040208@neratec.com>

On 2011-10-04 11:55 AM, Zefir Kurtisi wrote:
> On 10/03/2011 08:26 PM, Luis R. Rodriguez wrote:
>>  On Mon, Oct 3, 2011 at 3:29 AM, Zefir Kurtisi<zefir.kurtisi@neratec.com>  wrote:
>>>
>>>  Signed-off-by: Zefir Kurtisi<zefir.kurtisi@neratec.com>
>>>  ---
>>>   drivers/net/wireless/ath/ath9k/Kconfig  |    7 +++++++
>>>   drivers/net/wireless/ath/ath9k/Makefile |    2 ++
>>>   2 files changed, 9 insertions(+), 0 deletions(-)
>>>
>>>  diff --git a/drivers/net/wireless/ath/ath9k/Kconfig b/drivers/net/wireless/ath/ath9k/Kconfig
>>>  index d9c08c6..adddcca 100644
>>>  --- a/drivers/net/wireless/ath/ath9k/Kconfig
>>>  +++ b/drivers/net/wireless/ath/ath9k/Kconfig
>>>  @@ -58,6 +58,13 @@ config ATH9K_RATE_CONTROL
>>>           Say Y, if you want to use the ath9k specific rate control
>>>           module instead of minstrel_ht.
>>>
>>>  +config ATH9K_DFS
>>>  +       bool "Atheros ath9k DFS support"
>>>  +       depends on ATH9K
>>>  +       default y
>>
>>  At this point selecting y does nothing. Leave this patch out until
>>  selecting "y" means something.
>>
> What do you mean by 'nothing'? It allows you to select DFS as ath9k feature in your kernel configuration, or? Though, I agree that enabling it by default is not a good idea.
>
>>  Default should be n, and in particular Atheros itself can only likely
>>  commit to supporting DFS for AR9003 when it finds resources to do so
>>  as well as properly test it, so DFS support kconfig should state this.
>>  If someone wants to step up to completely support all bugs for older
>>  families that is their prerogative but we cannot commit to it, due to
>>  the regulatory considerations though unless this happens this cannot
>>  and should not be enabled for older families in code.
>>
> In fact, AR9003 is the platform we are interested in. Although it
> seems that older chipsets do also detect pulses with this patches
> (AR9280 does, IIRC), I agree to limit DFS support to AR9003 (and later).
> This should be easily possible by setting priv_ops->set_radar_params for
> AR9003 only. I'll remove it for AR5008 in my v2 RFC.
Please don't remove support code for older hardware. I'm fine with 
adding a SREV check that prevents it from being enabled by default on 
older hardware, but eventually I will need at least AR9280 DFS support 
for a few devices in OpenWrt.

- Felix

^ permalink raw reply

* [PATCH 2/2] compat-wireless: deactivate sdio suspend in ath6kl with kernel < 2.6.34
From: Hauke Mehrtens @ 2011-10-04 11:11 UTC (permalink / raw)
  To: mcgrof, mcgrof; +Cc: linux-wireless, Hauke Mehrtens
In-Reply-To: <1317726670-23319-1-git-send-email-hauke@hauke-m.de>

The API to sdio suspend changed in kernel 2.6.34 and it is not
backported by compat. Just deactivate it when compat-wireless is
compiled for such an old kernel.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
 patches/29-sdio_no_suspend.patch |   62 ++++++++++++++++++++++++++++++++++++++
 1 files changed, 62 insertions(+), 0 deletions(-)

diff --git a/patches/29-sdio_no_suspend.patch b/patches/29-sdio_no_suspend.patch
index 5cc26a1..1d09d34 100644
--- a/patches/29-sdio_no_suspend.patch
+++ b/patches/29-sdio_no_suspend.patch
@@ -3,6 +3,68 @@ Starting with commit 66fceb69b72ff7e9cd8da2ca70033982d5376e0e
 libertas uses new functions from the in kernel sdio framework for
 suspend and resume that are not backported.
 
+--- a/drivers/net/wireless/ath/ath6kl/cfg80211.c
++++ b/drivers/net/wireless/ath/ath6kl/cfg80211.c
+@@ -1411,7 +1411,7 @@ static int ath6kl_flush_pmksa(struct wip
+ 	return 0;
+ }
+ 
+-#ifdef CONFIG_PM
++#if defined(CONFIG_PM) && (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34))
+ static int ar6k_cfg80211_suspend(struct wiphy *wiphy,
+ 				 struct cfg80211_wowlan *wow)
+ {
+@@ -1827,7 +1827,7 @@ static struct cfg80211_ops ath6kl_cfg802
+ 	.del_pmksa = ath6kl_del_pmksa,
+ 	.flush_pmksa = ath6kl_flush_pmksa,
+ 	CFG80211_TESTMODE_CMD(ath6kl_tm_cmd)
+-#ifdef CONFIG_PM
++#if defined(CONFIG_PM) && (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34))
+ 	.suspend = ar6k_cfg80211_suspend,
+ #endif
+ 	.set_channel = ath6kl_set_channel,
+--- a/drivers/net/wireless/ath/ath6kl/hif-ops.h
++++ b/drivers/net/wireless/ath/ath6kl/hif-ops.h
+@@ -69,9 +69,11 @@ static inline void ath6kl_hif_cleanup_sc
+ 	return ar->hif_ops->cleanup_scatter(ar);
+ }
+ 
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34))
+ static inline int ath6kl_hif_suspend(struct ath6kl *ar)
+ {
+ 	return ar->hif_ops->suspend(ar);
+ }
++#endif
+ 
+ #endif
+--- a/drivers/net/wireless/ath/ath6kl/sdio.c
++++ b/drivers/net/wireless/ath/ath6kl/sdio.c
+@@ -724,6 +724,7 @@ static int ath6kl_sdio_enable_scatter(st
+ 	return 0;
+ }
+ 
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34))
+ static int ath6kl_sdio_suspend(struct ath6kl *ar)
+ {
+ 	struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar);
+@@ -751,6 +752,7 @@ static int ath6kl_sdio_suspend(struct at
+ 
+ 	return 0;
+ }
++#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34)) */
+ 
+ static const struct ath6kl_hif_ops ath6kl_sdio_ops = {
+ 	.read_write_sync = ath6kl_sdio_read_write_sync,
+@@ -762,7 +764,9 @@ static const struct ath6kl_hif_ops ath6k
+ 	.enable_scatter = ath6kl_sdio_enable_scatter,
+ 	.scat_req_rw = ath6kl_sdio_async_rw_scatter,
+ 	.cleanup_scatter = ath6kl_sdio_cleanup_scatter,
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34))
+ 	.suspend = ath6kl_sdio_suspend,
++#endif
+ };
+ 
+ static int ath6kl_sdio_probe(struct sdio_func *func,
 --- a/drivers/net/wireless/libertas/if_sdio.c
 +++ b/drivers/net/wireless/libertas/if_sdio.c
 @@ -1306,6 +1306,7 @@ static void if_sdio_remove(struct sdio_f
-- 
1.7.4.1


^ permalink raw reply related

* [PATCH 1/2] compat-wireless: make patches apply again
From: Hauke Mehrtens @ 2011-10-04 11:11 UTC (permalink / raw)
  To: mcgrof, mcgrof; +Cc: linux-wireless, Hauke Mehrtens


Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
 patches/29-sdio_no_suspend.patch |   50 +++++++++++++++++++-------------------
 1 files changed, 25 insertions(+), 25 deletions(-)

diff --git a/patches/29-sdio_no_suspend.patch b/patches/29-sdio_no_suspend.patch
index cb2fbed..5cc26a1 100644
--- a/patches/29-sdio_no_suspend.patch
+++ b/patches/29-sdio_no_suspend.patch
@@ -86,39 +86,39 @@ suspend and resume that are not backported.
  
 --- a/drivers/staging/brcm80211/brcmfmac/bcmsdh_sdmmc.c
 +++ b/drivers/staging/brcm80211/brcmfmac/bcmsdh_sdmmc.c
-@@ -45,7 +45,7 @@ static int brcmf_ops_sdio_probe(struct s
- 				const struct sdio_device_id *id);
- static void brcmf_ops_sdio_remove(struct sdio_func *func);
- 
--#ifdef CONFIG_PM
-+#if defined(CONFIG_PM) && (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34))
- static int brcmf_sdio_suspend(struct device *dev);
- static int brcmf_sdio_resume(struct device *dev);
- #endif /* CONFIG_PM */
-@@ -58,7 +58,7 @@ static const struct sdio_device_id brcmf
- 	{ /* end: all zeroes */ },
- };
- 
+@@ -55,7 +55,7 @@ static bool
+ brcmf_pm_resume_error(struct brcmf_sdio_dev *sdiodev)
+ {
+ 	bool is_err = false;
 -#ifdef CONFIG_PM_SLEEP
 +#if defined(CONFIG_PM_SLEEP) && (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34))
- static const struct dev_pm_ops brcmf_sdio_pm_ops = {
- 	.suspend	= brcmf_sdio_suspend,
- 	.resume		= brcmf_sdio_resume,
-@@ -70,7 +70,7 @@ static struct sdio_driver brcmf_sdmmc_dr
- 	.remove = brcmf_ops_sdio_remove,
- 	.name = "brcmfmac",
- 	.id_table = brcmf_sdmmc_ids,
+ 	is_err = atomic_read(&sdiodev->suspend);
+ #endif
+ 	return is_err;
+@@ -64,7 +64,7 @@ brcmf_pm_resume_error(struct brcmf_sdio_
+ static void
+ brcmf_pm_resume_wait(struct brcmf_sdio_dev *sdiodev, wait_queue_head_t *wq)
+ {
 -#ifdef CONFIG_PM_SLEEP
 +#if defined(CONFIG_PM_SLEEP) && (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34))
- 	.drv = {
- 		.pm = &brcmf_sdio_pm_ops,
- 	},
-@@ -623,7 +623,7 @@ static void brcmf_ops_sdio_remove(struct
+ 	int retry = 0;
+ 	while (atomic_read(&sdiodev->suspend) && retry++ != 30)
+ 		wait_event_timeout(*wq, false, HZ/100);
+@@ -564,7 +564,7 @@ static void brcmf_ops_sdio_remove(struct
+ 	}
  }
  
- 
 -#ifdef CONFIG_PM_SLEEP
 +#if defined(CONFIG_PM_SLEEP) && (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34))
  static int brcmf_sdio_suspend(struct device *dev)
  {
  	mmc_pm_flag_t sdio_flags;
+@@ -617,7 +617,7 @@ static struct sdio_driver brcmf_sdmmc_dr
+ 	.remove = brcmf_ops_sdio_remove,
+ 	.name = "brcmfmac",
+ 	.id_table = brcmf_sdmmc_ids,
+-#ifdef CONFIG_PM_SLEEP
++#if defined(CONFIG_PM_SLEEP) && (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34))
+ 	.drv = {
+ 		.pm = &brcmf_sdio_pm_ops,
+ 	},
-- 
1.7.4.1


^ permalink raw reply related

* [PATCH 2/3] compat: add is_unicast_ether_addr
From: Hauke Mehrtens @ 2011-10-04 11:11 UTC (permalink / raw)
  To: mcgrof, mcgrof; +Cc: linux-wireless, Hauke Mehrtens
In-Reply-To: <1317726707-23497-1-git-send-email-hauke@hauke-m.de>


Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
 include/linux/compat-2.6.38.h |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/include/linux/compat-2.6.38.h b/include/linux/compat-2.6.38.h
index 1f9ab52..ad04ebc 100644
--- a/include/linux/compat-2.6.38.h
+++ b/include/linux/compat-2.6.38.h
@@ -7,6 +7,7 @@
 
 #include <linux/kernel.h>
 #include <linux/skbuff.h>
+#include <linux/etherdevice.h>
 
 /* rename member in struct mmc_host in include/linux/mmc/host.h */
 #define max_segs	max_hw_segs
@@ -77,6 +78,17 @@ static inline int skb_checksum_start_offset(const struct sk_buff *skb)
 
 #define ETH_P_LINK_CTL	0x886c		/* HPNA, wlan link local tunnel */
 
+/**
+ * is_unicast_ether_addr - Determine if the Ethernet address is unicast
+ * @addr: Pointer to a six-byte array containing the Ethernet address
+ *
+ * Return true if the address is a unicast address.
+ */
+static inline int is_unicast_ether_addr(const u8 *addr)
+{
+	return !is_multicast_ether_addr(addr);
+}
+
 #endif /* (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,38)) */
 
 #endif /* LINUX_26_38_COMPAT_H */
-- 
1.7.4.1


^ permalink raw reply related

* [PATCH 1/3] compat: add ETH_P_TDLS
From: Hauke Mehrtens @ 2011-10-04 11:11 UTC (permalink / raw)
  To: mcgrof, mcgrof; +Cc: linux-wireless, Hauke Mehrtens


Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
 include/linux/compat-3.2.h |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/include/linux/compat-3.2.h b/include/linux/compat-3.2.h
index 009e341..859a2e3 100644
--- a/include/linux/compat-3.2.h
+++ b/include/linux/compat-3.2.h
@@ -58,6 +58,8 @@ static inline dma_addr_t skb_frag_dma_map(struct device *dev,
 			    frag->page_offset + offset, size, dir);
 }
 
+#define ETH_P_TDLS	0x890D          /* TDLS */
+
 #endif /* (LINUX_VERSION_CODE < KERNEL_VERSION(3,2,0)) */
 
 #endif /* LINUX_3_2_COMPAT_H */
-- 
1.7.4.1


^ permalink raw reply related

* [PATCH 3/3] compat: add linux/of.h just when CONFIG_OF is set.
From: Hauke Mehrtens @ 2011-10-04 11:11 UTC (permalink / raw)
  To: mcgrof, mcgrof; +Cc: linux-wireless, Hauke Mehrtens
In-Reply-To: <1317726707-23497-1-git-send-email-hauke@hauke-m.de>

In kernel < 2.6.34 linux/of.h unconditionally includes asm/prom.h which
is not available on all architectures. In newer kernel versions this is
just included if CONFIG_OF is set. For these old kernel just include
linux/of.h when CONFIG_OF is set. This fixes a compile problem with
ath6kl as it uses linux/of.h only when CONFIG_OF is set.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
 include/linux/of.h |   16 ++++++++++++++++
 1 files changed, 16 insertions(+), 0 deletions(-)
 create mode 100644 include/linux/of.h

diff --git a/include/linux/of.h b/include/linux/of.h
new file mode 100644
index 0000000..c5dc87c
--- /dev/null
+++ b/include/linux/of.h
@@ -0,0 +1,16 @@
+#ifndef _COMPAT_LINUX_OF_H
+#define _COMPAT_LINUX_OF_H 1
+
+#include <linux/version.h>
+
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34))
+#include_next <linux/of.h>
+#else
+
+#ifdef CONFIG_OF
+#include_next <linux/of.h>
+#endif /* CONFIG_OF */
+
+#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34)) */
+
+#endif	/* _COMPAT_LINUX_OF_H */
-- 
1.7.4.1


^ permalink raw reply related

* Re: [RFC 4/6] ath9k: add DFS build parameter
From: Adrian Chadd @ 2011-10-04 12:25 UTC (permalink / raw)
  To: Felix Fietkau
  Cc: Zefir Kurtisi, Luis R. Rodriguez, linux-wireless, ath9k-devel,
	kgiori
In-Reply-To: <4E8AE1CC.5060703@openwrt.org>

.. ditto for FreeBSD.

I'm hoping we can both leverage the same shared radar classification
modules with little changes needed in code. I'd like this to work for
at least AR9280.


Adrian

^ permalink raw reply

* RTL8192SE blank EFUSE readout after suspend resume cycle
From: Stefan Zwanenburg @ 2011-10-04 12:27 UTC (permalink / raw)
  To: linux-wireless

I recently discussed this with Larry Finger and Chaomin Li, but every
once in a while, after having resumed from suspending to RAM, my NIC
(10ec:8172) doesn't work anymore, even after reloading the module. Even
worse, after reloading the module, my NIC's name gets changed (because
of udev rules) as a result of the MAC address changing, which means I
have to temporarily reconfigure whatever I'm using to make a connection
(wicd in my case).

Now, as a byproduct of the other discussion I had (RTL8192SE and 802.11n
problems), I've patched the driver to dump the EFUSE when appropriate
hardware is detected, and this time, I got the following:

rtl8192se 0000:06:00.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18
rtl8192se 0000:06:00.0: setting latency timer to 64
rtl8192se: In process "modprobe" (pid 17913):MAP
FF FF FF FF  FF FF FF FF  FF FF FF FF  FF FF FF FF
FF FF FF FF  FF FF FF FF  FF FF FF FF  FF FF FF FF
FF FF FF FF  FF FF FF FF  FF FF FF FF  FF FF FF FF
FF FF FF FF  FF FF FF FF  FF FF FF FF  FF FF FF FF
FF FF FF FF  FF FF FF FF  FF FF FF FF  FF FF FF FF
FF FF FF FF  FF FF FF FF  FF FF FF FF  FF FF FF FF
FF FF FF FF  FF FF FF FF  FF FF FF FF  FF FF FF FF
FF FF FF FF  FF FF FF FF  FF FF FF FF  FF FF FF FF

rtl8192se: Driver for Realtek RTL8192SE/RTL8191SE
Loading firmware rtlwifi/rtl8192sefw.bin
ieee80211 phy1: Selected rate control algorithm 'rtl_rc'
udevd[17907]: renamed network interface wlan0 to wlan26

As you can see, the EFUSE is completely messed up. To fix this problem,
I have to reboot my laptop. I'm not quite sure what could be causing
this, and I was hoping someone here might.

Greetings,
Stefan Zwanenburg

^ permalink raw reply

* [PATCH] mac80211: pass no-CCK flag through to HW scan
From: Johannes Berg @ 2011-10-04 13:07 UTC (permalink / raw)
  To: John Linville; +Cc: linux-wireless

From: Johannes Berg <johannes.berg@intel.com>

This is needed so that offloaded scan can do the
right thing. Without this patch, the no_cck flag
contains random values from the kernel heap.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
---
 net/mac80211/scan.c |    1 +
 1 file changed, 1 insertion(+)

--- a/net/mac80211/scan.c	2011-09-28 17:10:13.000000000 +0200
+++ b/net/mac80211/scan.c	2011-10-04 15:06:01.000000000 +0200
@@ -254,6 +254,7 @@ static bool ieee80211_prep_hw_scan(struc
 					 req->ie, req->ie_len, band,
 					 req->rates[band], 0);
 	local->hw_scan_req->ie_len = ielen;
+	local->hw_scan_req->no_cck = req->no_cck;
 
 	return true;
 }



^ permalink raw reply

* Re: Question: ath6kl (driver/net/wireless/ath/ath6kl) with debug_mask value
From: Sangwook Lee @ 2011-10-04 13:22 UTC (permalink / raw)
  To: Kalle Valo; +Cc: linux-wireless
In-Reply-To: <CADPsn1Zi20JHmc7EOFCvjDmKWKtHnBCcyxTxWwBK8_vLps_u_w@mail.gmail.com>

Hi Kalle

I used  git://github.com/kvalo/ath6kl.git for-linville (Sat Oct 1
09:43:09 2011 +0300)
to run AR6003 HW2.0 (hw 2.0 fw 3.1.1.149) in my ARM board.

But I faced booting problem as like the following:
Is there any changes for AR6003 HW2.0 with the latest ath6kl git ?
-----------------------------------------------------------------------
mmc2: queuing unknown CIS tuple 0x01 (3 bytes)
mmc2: queuing unknown CIS tuple 0x1a (5 bytes)
mmc2: queuing unknown CIS tuple 0x1b (8 bytes)
mmc2: queuing unknown CIS tuple 0x14 (0 bytes)
mmc2: queuing unknown CIS tuple 0x80 (1 bytes)
mmc2: queuing unknown CIS tuple 0x81 (1 bytes)
mmc2: queuing unknown CIS tuple 0x82 (1 bytes)
mmc2: new high speed SDIO card at address 0001
ath6kl: target_ver 0x30000384 target_type 0x3 dataset_patch 0x57e884
app_load_addr 0x543180
ath6kl: app_start_override_addr 0x0 board_ext_data_addr 0x57e500
reserved_ram_size 0x1b00
ath6kl: using fw api 1
ath6kl: temporary war to avoid sdio crc error
ath6kl: writing extended board data to 0x57e500 (768 B)
ath6kl: writing board file to 0x541800 (1024 B)
ath6kl: writing otp to 0x543180 (3689 B)
ath6kl: app_start_override_addr 0x0
ath6kl: executing OTP at 0x0
ath6kl: bmi_recv_buf FIFO empty
ath6kl: Unable to read from the device: -22
ath6kl: writing firmware to 0x543180 (100694 B)
ath6kl: bmi communication timeout
ath6kl: Unable to write to the device: -110
ath6kl: Failed to write firmware: -110
ath6kl: Failed to init ath6kl core
ath6kl_sdio: probe of mmc2:0001:1 failed with error -110

--------------------------------------------------------------------------------

Thanks
Sangwook



On 9 September 2011 09:54, Sangwook Lee <sangwook.lee@linaro.org> wrote:
>
> Hi Kalle
>
> On 8 September 2011 17:27, Kalle Valo <kvalo@qca.qualcomm.com> wrote:
> > Hi Sangwook,
> >
> > On 09/07/2011 04:32 PM, Sangwook Lee wrote:
> >> I am running ath6kl-cleanup git.
> >
> > BTW, ath6kl-cleanup.git is not updated anymore. Instead there's now
> > ath6kl.git which follows wireless-testing. You can find it from
> > git.kernel.org (when it's up again) or from github.
> >
> Thanks for this info, I will use new git.
>
> >> If I add debug_mask values with ath6kl.ko as like followings, I get
> >> the success full results,

[snip]

> >> $ insmod ath6kl.ko
> >> $ ifconfig wlan0 up
> >> $ iwlist wlan0 scan
> >> With this case, there is no coming event "WMI_SCAN_COMPLETE_EVENTID".
> >> After receiving  "ath6kl: WMI_EXTENSION_EVENTID"
> >> iwlist shows error message:
> >>       wlan0     Failed to read scan data : Resource temporarily unavailable
> >
[snip]

^ permalink raw reply

* Re: [RFC 5/6] ath9k: enable DFS pulse detection
From: Christian Lamparter @ 2011-10-04 13:38 UTC (permalink / raw)
  To: Luis R. Rodriguez; +Cc: Zefir Kurtisi, linux-wireless, ath9k-devel, kgiori, nbd
In-Reply-To: <CAB=NE6XBkisvFmj6F7wS6i8XV7WEsM6bQ5zsXFWXm9XM8z0pwA@mail.gmail.com>

On Monday, October 03, 2011 09:31:12 PM Luis R. Rodriguez wrote:
> On Mon, Oct 3, 2011 at 12:24 PM, Christian Lamparter
> <chunkeey@googlemail.com> wrote:
> > On Monday, October 03, 2011 08:27:39 PM Luis R. Rodriguez wrote:
> >> On Mon, Oct 3, 2011 at 3:29 AM, Zefir Kurtisi <zefir.kurtisi@neratec.com> wrote:
> >> >
> >> > Signed-off-by: Zefir Kurtisi <zefir.kurtisi@neratec.com>
> >> > ---
> >> >  drivers/net/wireless/ath/ath9k/main.c |   12 ++++++++++++
> >> >  1 files changed, 12 insertions(+), 0 deletions(-)
> >> >
> >> > diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c
> >> > index e8aeb98..5defebe 100644
> >> > --- a/drivers/net/wireless/ath/ath9k/main.c
> >> > +++ b/drivers/net/wireless/ath/ath9k/main.c
> >> > @@ -344,6 +344,18 @@ static int ath_reset_internal(struct ath_softc *sc, struct ath9k_channel *hchan,
> >> >                        "Unable to reset channel, reset status %d\n", r);
> >> >                goto out;
> >> >        }
> >> > +#ifdef CONFIG_ATH9K_DFS
> >>
> >> Please spare the #ifdef and just call something within dfs.c, then
> >> dfs.h would wrap it to nothing if DFS is disabled.
> > Why would anyone want to disable DFS driver support?
> > I would say: drop the ifdefs altogether since DFS
> > is and will be "required".
> 
> Because DFS requires to be properly tested before being enabled.
Testing if a driver detects a pulse is "trivial" compared to the
stuff mac80211/cfg80211 and hostapd will have to do to make a
channel-change as smooth as possible. I think if there's a DFS
"OFF" switch, it should be in hostapd and I hope more people
agree on this one.  

> You may also want to simply disable DFS if you do not want to
> deal with the regulatory test implications of having it enabled.
AFAIK you can't "simply" disable the DFS requirement: hostapd
(hw_features.c), [cfg80211] (checks if tx on secondary channel
is possible) and mac80211 (tx.c) all have checks. Indeed, the
easiest way is to modify crda's database. So there's no need
for an extra compile-time option.

Regards,
	Chr

^ permalink raw reply

* Re: [patch] fix the definition of AR9170_PHY_REG_CURRENT_RSSI
From: Christian Lamparter @ 2011-10-04 13:47 UTC (permalink / raw)
  To: Adrian Chadd; +Cc: linux-wireless
In-Reply-To: <CAJ-VmomAP-LZdVkh1snpsTOxU18yPMxXut=KzjTwP+AkN9XidQ@mail.gmail.com>

On Tuesday, October 04, 2011 02:30:51 AM Adrian Chadd wrote:
> Hi Christian,
> 
> Although it currently isn't used anywhere, I thought it'd be
> worthwhile fixing the definition of AR9170_PHY_REG_CURRENT_RSSI.
> It's at AR_PHY(271) rather than AR_PHY(263).
> 
> The carl9170 driver may also suffer the same problem. The older
> version I have lying around here doesn't seem to use
> AR9170_PHY_REG_CURRENT_RSSI anywhere but it is defined.
> 
> Thanks,
	Adrian
I have to thank you :). I've commited your change and I hope
I get around to restore carl9170fw.git tree anytime "soon".

BTW, do you have any technical docs about the phy as well?
Or how do you know about the mix-up?

Regards,
	Christian

^ permalink raw reply

* Re: [PATCH 1/1] linux-firmware: Add new firmware image for ath6kl driver
From: Sangwook Lee @ 2011-10-04 13:55 UTC (permalink / raw)
  To: Senthil Balasubramanian; +Cc: dwmw2, David.Woodhouse, linville, linux-wireless
In-Reply-To: <1317455234-2416-1-git-send-email-senthilb@qca.qualcomm.com>

Hi Senthil

Do you any plan to release fw-2.bin for AR6003/hw2.0 ?

I found out this firmware only for AR6003/hw2.1.1.
But in ath6kl source code,
You already defined as like following:
#define AR6003_REV2_FIRMWARE_2_FILE         "ath6k/AR6003/hw2.0/fw-2.bin"

If possible, please let me have the chance to test the new firmware
with my hw2.0 board.

Regards
Sangwook


On 1 October 2011 08:47, Senthil Balasubramanian
<senthilb@qca.qualcomm.com> wrote:
> This patch adds the inital version of newly formatted firmware
> for ath6kl driver.
>
> Signed-off-by: Senthil Balasubramanian <senthilb@qca.qualcomm.com>
> ---
>  WHENCE                        |    1 +
>  ath6k/AR6003/hw2.1.1/fw-2.bin |  Bin 0 -> 89844 bytes
>  2 files changed, 1 insertions(+), 0 deletions(-)
>  create mode 100644 ath6k/AR6003/hw2.1.1/fw-2.bin
>
> diff --git a/WHENCE b/WHENCE
> index 9c7b06d..1b5f57e 100644
> --- a/WHENCE
> +++ b/WHENCE
> @@ -1716,6 +1716,7 @@ File: ath6k/AR6003/hw1.0/data.patch.bin
>  File: ath6k/AR6003/hw1.0/bdata.WB31.bin
>  File: ath6k/AR6003/hw1.0/athwlan.bin.z77
>  File: ath6k/AR6003/hw2.1.1
> +File: ath6k/AR6003/hw2.1.1/fw-2.bin
>  File: ath6k/AR6003/hw2.1.1/otp.bin
>  File: ath6k/AR6003/hw2.1.1/athwlan.bin
>  File: ath6k/AR6003/hw2.1.1/endpointping.bin
> diff --git a/ath6k/AR6003/hw2.1.1/fw-2.bin b/ath6k/AR6003/hw2.1.1/fw-2.bin
> new file mode 100644
> index 0000000000000000000000000000000000000000..d5772904fc682a5db901ff283df63071614ea81e
> GIT binary patch
> literal 89844
> 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%0Df@Cs}
> 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
> MS~O5@xBUNq19-;BF8}}l
>
> literal 0
> HcmV?d00001
>
> --
> 1.7.6
>
> --
> 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
>

^ permalink raw reply

* Re: RTL8192SE blank EFUSE readout after suspend resume cycle
From: Stanislaw Gruszka @ 2011-10-04 13:57 UTC (permalink / raw)
  To: Stefan Zwanenburg; +Cc: linux-wireless, Larry Finger, Chaoming Li
In-Reply-To: <4E8AFBCB.8070100@gmail.com>

On Tue, Oct 04, 2011 at 02:27:55PM +0200, Stefan Zwanenburg wrote:
> I recently discussed this with Larry Finger and Chaomin Li, but every
> once in a while, after having resumed from suspending to RAM, my NIC
> (10ec:8172) doesn't work anymore, even after reloading the module. Even
> worse, after reloading the module, my NIC's name gets changed (because
> of udev rules) as a result of the MAC address changing, which means I
> have to temporarily reconfigure whatever I'm using to make a connection
> (wicd in my case).

You might try configure pm-utils to unload module before suspend, by
something like this:

echo 'SUSPEND_MODULES="rtl8192se rtlwifi"' >> /etc/pm/config.d/modules.conf 

Other than that, would be good to try if converting to new PM framework
helps. It can be done quite simply, similar way like in this ath9k commit:

commit f0e94b479c987abef17eb18e5c8e0ed178d00cd4
Author: Rafael J. Wysocki <rjw@sisk.pl>
Date:   Sat Oct 16 00:36:17 2010 +0200

    ath9k: Convert to new PCI PM framework

Stanislaw 

^ permalink raw reply

* Re: [RFC 5/6] ath9k: enable DFS pulse detection
From: Zefir Kurtisi @ 2011-10-04 14:17 UTC (permalink / raw)
  To: Christian Lamparter
  Cc: Luis R. Rodriguez, linux-wireless, ath9k-devel, kgiori, nbd
In-Reply-To: <201110041538.12885.chunkeey@googlemail.com>

On 10/04/2011 03:38 PM, Christian Lamparter wrote:
> On Monday, October 03, 2011 09:31:12 PM Luis R. Rodriguez wrote:
>> On Mon, Oct 3, 2011 at 12:24 PM, Christian Lamparter
>> <chunkeey@googlemail.com> wrote:
>>> On Monday, October 03, 2011 08:27:39 PM Luis R. Rodriguez wrote:
>>>> On Mon, Oct 3, 2011 at 3:29 AM, Zefir Kurtisi <zefir.kurtisi@neratec.com> wrote:
>>>>>
>>>>> Signed-off-by: Zefir Kurtisi <zefir.kurtisi@neratec.com>
>>>>> ---
>>>>>  drivers/net/wireless/ath/ath9k/main.c |   12 ++++++++++++
>>>>>  1 files changed, 12 insertions(+), 0 deletions(-)
>>>>>
>>>>> diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c
>>>>> index e8aeb98..5defebe 100644
>>>>> --- a/drivers/net/wireless/ath/ath9k/main.c
>>>>> +++ b/drivers/net/wireless/ath/ath9k/main.c
>>>>> @@ -344,6 +344,18 @@ static int ath_reset_internal(struct ath_softc *sc, struct ath9k_channel *hchan,
>>>>>                        "Unable to reset channel, reset status %d\n", r);
>>>>>                goto out;
>>>>>        }
>>>>> +#ifdef CONFIG_ATH9K_DFS
>>>>
>>>> Please spare the #ifdef and just call something within dfs.c, then
>>>> dfs.h would wrap it to nothing if DFS is disabled.
>>> Why would anyone want to disable DFS driver support?
>>> I would say: drop the ifdefs altogether since DFS
>>> is and will be "required".
>>
>> Because DFS requires to be properly tested before being enabled.
> Testing if a driver detects a pulse is "trivial" compared to the
> stuff mac80211/cfg80211 and hostapd will have to do to make a
> channel-change as smooth as possible. I think if there's a DFS
> "OFF" switch, it should be in hostapd and I hope more people
> agree on this one.  
> 
Yes on both. Work on the management part of the DFS module has just been started by TI guys. When this is in, hostapd will be able to query the driver's DFS detection capabilities and leave DFS channels disabled for those devices with no (or insufficient) support (like it is generally done today for DFS channels).

The proper way for a driver's OFF switch would then be to just announce missing DFS capabilities.

>> You may also want to simply disable DFS if you do not want to
>> deal with the regulatory test implications of having it enabled.
> AFAIK you can't "simply" disable the DFS requirement: hostapd
> (hw_features.c), [cfg80211] (checks if tx on secondary channel
> is possible) and mac80211 (tx.c) all have checks. Indeed, the
> easiest way is to modify crda's database. So there's no need
> for an extra compile-time option.
> 
There might be a demand for conditional compiling in addition to DFS capabilities announcements to reduce memory footprint, since (especially) pattern matching algorithms will increase it significantly.

> Regards,
> 	Chr

Zefir

^ permalink raw reply


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox