[PATCH] mac80211: fix the beacon csa counter for mesh and ibss

2015-06-08 Thread Chun-Yeow Yeoh
The csa counter has moved from sdata to beacon/presp but
it is not updated accordingly for mesh and ibss. Fix this.

This regression is introduced by the following patch:
mac80211: move csa counters from sdata to beacon/presp

Signed-off-by: Chun-Yeow Yeoh 
---
 net/mac80211/cfg.c  | 1 +
 net/mac80211/ibss.c | 1 +
 net/mac80211/mesh.c | 1 +
 3 files changed, 3 insertions(+)

diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
index bb9f836..0fdfc20 100644
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -3443,6 +3443,7 @@ static int ieee80211_mgmt_tx(struct wiphy *wiphy, struct 
wireless_dev *wdev,
/* Update CSA counters */
if (sdata->vif.csa_active &&
(sdata->vif.type == NL80211_IFTYPE_AP ||
+sdata->vif.type == NL80211_IFTYPE_MESH_POINT ||
 sdata->vif.type == NL80211_IFTYPE_ADHOC) &&
params->n_csa_offsets) {
int i;
diff --git a/net/mac80211/ibss.c b/net/mac80211/ibss.c
index 21716af..7f72bc9 100644
--- a/net/mac80211/ibss.c
+++ b/net/mac80211/ibss.c
@@ -146,6 +146,7 @@ ieee80211_ibss_build_presp(struct ieee80211_sub_if_data 
*sdata,
csa_settings->chandef.chan->center_freq);
presp->csa_counter_offsets[0] = (pos - presp->head);
*pos++ = csa_settings->count;
+   presp->csa_current_counter = csa_settings->count;
}
 
/* put the remaining rates in WLAN_EID_EXT_SUPP_RATES */
diff --git a/net/mac80211/mesh.c b/net/mac80211/mesh.c
index d468424..817098a 100644
--- a/net/mac80211/mesh.c
+++ b/net/mac80211/mesh.c
@@ -680,6 +680,7 @@ ieee80211_mesh_build_beacon(struct ieee80211_if_mesh *ifmsh)
*pos++ = 0x0;
*pos++ = ieee80211_frequency_to_channel(
csa->settings.chandef.chan->center_freq);
+   bcn->csa_current_counter = csa->settings.count;
bcn->csa_counter_offsets[0] = hdr_len + 6;
*pos++ = csa->settings.count;
*pos++ = WLAN_EID_CHAN_SWITCH_PARAM;
-- 
2.3.0

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [WEXT]: multiple calls for SIOCGIWSTATS return same value

2015-06-08 Thread Gerrit Renker
> On Sat, 2015-06-06 at 20:37 -0600, Gerrit Renker wrote:
> > A problem has been found in recent kernels where multiple
> > calls using SIOCGIWSTATS return the same, identical value.  
> 
> Which "value"? I believe these return a number of different values. What
> are the returned values? Are they perhaps just 0?
> 
I am primarily referring to the signal level. The first call returns a
plausible value e.g. -78dB. All subsequent calls return the same value,
regardless of receiver position (moving the laptop).

It almost looks like a static value that gets initialized and then 
does not change.

There is a similar behaviour for scan results: the signal levels reported
for stations remain the same for all subsequent calls. Previously these
also changed with time and position of receiver.

> Is the application a 32-bit application running on a 64-bit machine
> perhaps? 
Sorry forgot to mention: application and operating system both 64 bit,
the bug submitted to wavemon also mentioned 64 bit.

Thank you for the reply -- maybe this means that the root cause is in a
different part; I would not know which at the moment.
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v3] ath10k: add 'cryptmode' param to support raw tx injection and software crypto

2015-06-08 Thread Liu CF/TW
This change supports hardware crypto engine bypass by enabling raw
Rx/Tx encap mode. This enables use cases such as software crypto and raw
tx injection. This change introduces a new module param 'cryptmode'.

cryptmode:

  0: Use hardware crypto engine globally with native Wi-Fi mode TX/RX
 encapsulation to the firmware. This is the default mode.
  1: Use sofware crypto engine globally with raw mode TX/RX encapsulation
 to the firmware.
  2: Supports both hardware and software crypto with raw mode TX/RX
 encapsulation to the firmware. By default hardware crypto engine is
 used. To use software crypto in this mode, set the per ath10k_vif
 'nohwcrypt' flag value to True.*
 *) The patch for setting vif specific 'nohwcrypt' flag when
cryptmode=2 would be a separate patch to mac80211.

Possible use case examples:

  - Use software crypto engine in mac80211. (cryptmode=1)

  - Support inject raw unencrypted frame on monitor interface and use
hardware crypto to encrypt the injected Tx frames. (cryptmode=2)

  - Support receive raw hardware decrypted frame with encryption header
on monitor interface. (cryptmode=2)

  - Support hybrid local & split MAC mode to support tunneling protocols
such as CAPWAP: Use hardware crypto for BSS in local mode,
and bypass hardware crypto for BSS in split MAC mode.
(cryptmode=2, ath10k_vif nohwcrypt=0 for local mode, =1 for split MAC
 mode)

Testing:

  Used QCA988x hw 2.0 with firmware-4.bin_10.2.4.48 with
  backports-20150424.

  All test case tested** with hostapd in both WPA2-PSK-TKIP (11g) and
  WPA2-PSK-CCMP(11n/ac). Verified ping and http to google.com works.

  **) Need to skip ATH10K_FW_FEATURE_RAW_MODE_SUPPORT check in core.c to
  test firmware. After all, none of the existing QCA official firmware
  exports that firmware bit yet.

  Test Casecryptmode value tested
  ---
  1. ath10k hardware crypto can encrypt/decrypt   0: PASS
 data frames when hostapd config the BSS in   1: Not applicable.
 WPA2-PSK-TKIP and WPA2-PSK-CCMP modes.   2: PASS

  2. mac80211 software crypto can encrypt/decrypt 0: Not applicable
 data frames when hostapd config the BSS in   1: PASS
 WPA2-PSK-TKIP and WPA2-PSK-CCMP modes.   2: PASS, when vif
 nohwcrypt=1

  3. Monitor interface Tx: User application can   0: Not applicable
 inject unencrypted raw Tx frames to monitor  1: PASS (mac80211)
 interface for mac80211 or hardware to encrypt2: PASS (hardware)
 the frames.

  4. Monitor interface Rx: mac80211 software crypto   0: Not applicable
 engine can decrypt received TKIP/CCMP frames.1: PASS
 User application see decrypted frames.   2: PASS, when vif
 nohwcrypt=1

  5. CAPWAP-like local and split MAC datapath 0: Not applicable
 tunneling: Setup BSS1=Local MAC mode on wlan0,   1: Not applicable
 BSS2=Split MAC mode on wlan0_monitor interface.  2: PASS
 Test BSS1 data frames can be encrypted and 
 decrypted by ath10k hardware crypto engine 
 while BSS2 data frames can skip both hardware &
 kernel mac80211 crypto engines via monitor
 interface to the user application fot tunneling.

Signed-off-by: Liu CF/TW 
---
 drivers/net/wireless/ath/ath10k/core.c| 31 ++
 drivers/net/wireless/ath/ath10k/core.h| 33 +--
 drivers/net/wireless/ath/ath10k/debug.c   |  5 +--
 drivers/net/wireless/ath/ath10k/htt_rx.c  |  5 ++-
 drivers/net/wireless/ath/ath10k/htt_tx.c  |  9 +-
 drivers/net/wireless/ath/ath10k/hw.h  | 11 +++
 drivers/net/wireless/ath/ath10k/mac.c | 54 ++-
 drivers/net/wireless/ath/ath10k/wmi-tlv.c |  2 +-
 drivers/net/wireless/ath/ath10k/wmi.c |  8 ++---
 9 files changed, 129 insertions(+), 29 deletions(-)

diff --git a/drivers/net/wireless/ath/ath10k/core.c 
b/drivers/net/wireless/ath/ath10k/core.c
index 59496a9..ea1c43f 100644
--- a/drivers/net/wireless/ath/ath10k/core.c
+++ b/drivers/net/wireless/ath/ath10k/core.c
@@ -31,16 +31,19 @@
 #include "wmi-ops.h"
 
 unsigned int ath10k_debug_mask;
+static unsigned int ath10k_cryptmode_param;
 static bool uart_print;
 static bool skip_otp;
 
 module_param_named(debug_mask, ath10k_debug_mask, uint, 0644);
+module_param_named(cryptmode, ath10k_cryptmode_param, uint, 0644);
 module_param(uart_print, bool, 0644);
 module_param(skip_otp, bool, 0644);
 
 MODULE_PARM_DESC(debug_mask, "Debugging mask");
 MODULE_PARM_DESC(uart_print, "Uart target debugging");
 MODULE_PARM_DESC(skip_otp, "Skip otp failure for calibration in testmode");
+MODULE_PARM_DESC(cryptmode, "Crypto mode: 0-hardware, 1-software, 2-both");
 
 static const struct ath10k_hw_params ath10k_hw_params_list[] = {
{

Re: brcmfmac: brcmf_p2p_create_p2pdev: timeout occurred

2015-06-08 Thread Jörg Krause
On Mo, 2015-06-08 at 23:14 +0200, Arend van Spriel wrote:
> On 06/08/15 22:17, Jörg Krause wrote:
> > On Mo, 2015-06-08 at 18:46 +0200, Arend van Spriel wrote:
> > > On 06/08/15 15:48, Jörg Krause wrote:
> > > > Hi Arend,
> > > > 
> > > > On Mo, 2015-06-08 at 14:41 +0200, Arend van Spriel wrote:
> > > > > On 06/08/15 14:35, Jörg Krause wrote:
> > > > > > Hi,
> > > > > > 
> > > > > > I've trouble creating the p2p interface on a BCM43362 wifi
> > > > > > device
> > > > > > running Linux kernel 4.0.4:
> > > > > > 
> > > > > ># dmesg | grep brcmfmac
> > > > > >[7.010870] brcmfmac: brcmf_c_preinit_dcmds: 
> > > > > > Firmware
> > > > > > version =
> > > > > >wl0: Apr 22 2013 14:50:00 version 5.90.195.89.6 FWID 
> > > > > > 01
> > > > > > -b30a427d
> > > > > >[7.158905] brcmfmac: 
> > > > > > brcmf_cfg80211_reg_notifier: not
> > > > > > a
> > > > > > ISO3166
> > > > > >code
> > > > > >[   11.007164] brcmfmac: brcmf_p2p_create_p2pdev: 
> > > > > > timeout
> > > > > > occurred
> > > > > > 
> > > > > > Trying to add the p2p interface manually:
> > > > > > 
> > > > > ># iw phy0 interface add p2p0 type __p2pdev
> > > > > >[  372.042704] brcmfmac: brcmf_link_down: 
> > > > > > WLC_DISASSOC
> > > > > > failed
> > > > > > (-52)
> > > > > >[  373.637263] brcmfmac: brcmf_p2p_create_p2pdev: 
> > > > > > timeout
> > > > > > occurred
> > > > > >[  373.679377] brcmfmac: brcmf_cfg80211_del_key: 
> > > > > > invalid
> > > > > > key
> > > > > > index (4)
> > > > > >[  373.685733] brcmfmac: brcmf_cfg80211_del_key: 
> > > > > > invalid
> > > > > > key
> > > > > > index (5)
> > > > > > 
> > > > > > Any idea?
> > > > > 
> > > > > Wondering whether it is similar to what Rafal reported. Can 
> > > > > you
> > > > > do a
> > > > > hexdump, ie. hexdump -C brcmfmac43362-sdio.bin | tail -30
> > > > 
> > > > I managed to set up the p2p interface by recompiling the kernel
> > > > with
> > > > CONFIG_BRCMDBG and loading the brcmfmac module with p2pon=1.
> > > > 
> > > > I had a discussion some month ago with Hante Meulemann about
> > > > setting up
> > > > the p2p interface. This is one of his replies:
> > > > 
> > > >   "For what I can see from the log is that we don’t get the
> > > > event from
> > > >   the FW indicating that the p2p interface was created. 
> > > > This
> > > > probably
> > > >   means that there is a bug in this FW for this device. I 
> > > > need
> > > > to discuss
> > > >   this to see how much priority we can give this. The best
> > > > option for you
> > > >   for the moment is to use the legacy method with the 
> > > > 'p2pon=1'
> > > > command."
> > > 
> > > Thanks for digging your email archive as we clearly forgot about 
> > > this
> > > 
> > > entirely.
> > 
> > Me too :-)
> > 
> > > The timeout in your log indeed indicates it is missing a
> > > notification from firmware. I assume your primary interface is in
> > > managed mode when trying to create the p2p_dev interface. Is that
> > > correct?
> > 
> > Correct.
> 
> So do you have the following commit in your kernel tree:
> 
> commit f48556e1b6a60f1b394a6c4b0a7b8cacba3eb107
> Author: Arend van Spriel 
> Date:   Tue Sep 30 10:23:16 2014 +0200
> 
>  brcmfmac: assure P2P discovery is disabled when setting 
> P2P_DEVICE 
> mac addre
> 

Yes.

$ git log --oneline --grep="brcmfmac: assure P2P discovery is disabled
when setting P2P_DEVICE"
f48556e brcmfmac: assure P2P discovery is disabled when setting
P2P_DEVICE mac address

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] NFC: nci: hci: Fix releasing uninitialized skbs

2015-06-08 Thread Samuel Ortiz
Hi Joe,

On Sun, May 31, 2015 at 05:44:45PM -0700, Joe Perches wrote:
> Several of these goto exit; uses should be direct returns
> as skb is not yet initialized by nci_hci_get_param().
> 
> Miscellanea:
> 
> o Use !memcmp instead of memcmp() == 0
> o Remove unnecessary goto from if () {... goto exit;} else {...} exit:
> 
> Signed-off-by: Joe Perches 
> ---
>  net/nfc/nci/hci.c | 11 +++
>  1 file changed, 3 insertions(+), 8 deletions(-)
Applied to nfc-next, thanks.

Cheers,
Samuel.
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] NFC: PN544: use flags argument of devm_gpiod_get to set direction

2015-06-08 Thread Samuel Ortiz
Hi Uwe,

On Tue, May 19, 2015 at 09:22:56AM +0200, Uwe Kleine-König wrote:
> Since 39b2bbe3d715 (gpio: add flags argument to gpiod_get*() functions)
> which appeared in v3.17-rc1, the gpiod_get* functions take an additional
> parameter that allows to specify direction and initial value for output.
> 
> Use this to simplify the driver. Furthermore this is one caller less
> that stops us making the flags argument to gpiod_get*() mandatory.
> 
> While touching this also do some minor coding style fixes.
> 
> Fixes: 0a5942c8e148 ("NFC: Add ACPI support for NXP PN544")
> Signed-off-by: Uwe Kleine-König 
> ---
>  drivers/nfc/pn544/i2c.c | 43 +++
>  1 file changed, 11 insertions(+), 32 deletions(-)
Applied to nfc-next, thanks.

Cheers,
Samuel.
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [char-misc-next] NFC: microread: drop unused variable

2015-06-08 Thread Samuel Ortiz
Hi Tomas,

On Thu, May 07, 2015 at 04:38:30PM +0300, Tomas Winkler wrote:
> In microread_i2c_irq_thread_fn 'client' set but not used
> 
> Cc: Lauro Ramos Venancio 
> Cc: Aloisio Almeida Jr 
> Signed-off-by: Tomas Winkler 
> ---
>  drivers/nfc/microread/i2c.c | 3 ---
>  1 file changed, 3 deletions(-)
Applied to nfc-next, thanks.

Cheers,
Samuel.
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] drivers/nfc: remove obsolete setting of DEBUG

2015-06-08 Thread Samuel Ortiz
Hi Valentin,

On Tue, Apr 28, 2015 at 11:08:47AM +0200, Valentin Rothberg wrote:
> The CPP identifier 'DEBUG' is not used in the source code of nfc at all,
> so we can safely remove setting it in both Makefiles.
> 
> Signed-off-by: Valentin Rothberg 
> ---
> I detected this issue with ./scripts/checkkconfigsymbols.py since
> CONFIG_NFC_DEBUG is not defined in Kconfig.
> ---
>  drivers/nfc/Makefile | 2 --
>  drivers/nfc/nxp-nci/Makefile | 2 --
>  2 files changed, 4 deletions(-)
Applied, with a massaged commit message.

Cheers,
Samuel.
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] ath10k: new debugfs interface to enable adaptive CCA

2015-06-08 Thread Ben Greear
Is there any publicly available firmware binary that supports this feature,
even if one has to force the feature flag?

Thanks,
Ben

On 06/04/2015 03:11 PM, Ben Greear wrote:
> Is there any way to make this work on a 10.1 firmware, even if that means
> manually poking registers through debugfs?
> 
> I have a user of CT firmware that would really like Adaptive CCA to
> work, so if I can just get some clues as to what needs setting,
> I can write up an API that works with my 10.1 firmware...
> 
> Thanks,
> Ben
> 
> 
> On 05/10/2015 11:05 PM, Michal Kazior wrote:
>> On 8 May 2015 at 16:01,   wrote:
>>> From: Manikanta Pubbisetty 
>>>
>>> For devices working in 2.4 GHz to be ETSI compliant,
>>> it is required to support adaptive CCA. Some firmwares
>>> support adaptive CCA and is disabled by default.
>>>
>>> The patch is an attempt to add a new debugfs interface to enable
>>> adaptive cca on supported firmwares. Support for this feature is
>>> advertised with a new firmware feature flag.
>>
>> I guess this should be configured automatically depending on DFS
>> domain. You can't expect users to configure their devices via debugfs,
>> can you? This should just work.
> 
> 


-- 
Ben Greear 
Candela Technologies Inc  http://www.candelatech.com

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] Doc:nfc: Fix typo in nfc-hci.txt

2015-06-08 Thread Samuel Ortiz
Hi Msanari,

On Fri, Jun 05, 2015 at 09:38:19PM +0900, Masanari Iida wrote:
> This patch fix a spelling typo in nfc-hci.txt
> 
> Signed-off-by: Masanari Iida 
> ---
>  Documentation/nfc/nfc-hci.txt | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
Applied, thanks.

Cheers,
Samuel.
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: brcmfmac: brcmf_p2p_create_p2pdev: timeout occurred

2015-06-08 Thread Jörg Krause
On Mo, 2015-06-08 at 18:46 +0200, Arend van Spriel wrote:
> On 06/08/15 15:48, Jörg Krause wrote:
> > Hi Arend,
> > 
> > On Mo, 2015-06-08 at 14:41 +0200, Arend van Spriel wrote:
> > > On 06/08/15 14:35, Jörg Krause wrote:
> > > > Hi,
> > > > 
> > > > I've trouble creating the p2p interface on a BCM43362 wifi 
> > > > device
> > > > running Linux kernel 4.0.4:
> > > > 
> > > >   # dmesg | grep brcmfmac
> > > >   [7.010870] brcmfmac: brcmf_c_preinit_dcmds: Firmware
> > > > version =
> > > >   wl0: Apr 22 2013 14:50:00 version 5.90.195.89.6 FWID 01
> > > > -b30a427d
> > > >   [7.158905] brcmfmac: brcmf_cfg80211_reg_notifier: not 
> > > > a
> > > > ISO3166
> > > >   code
> > > >   [   11.007164] brcmfmac: brcmf_p2p_create_p2pdev: timeout
> > > > occurred
> > > > 
> > > > Trying to add the p2p interface manually:
> > > > 
> > > >   # iw phy0 interface add p2p0 type __p2pdev
> > > >   [  372.042704] brcmfmac: brcmf_link_down: WLC_DISASSOC 
> > > > failed
> > > > (-52)
> > > >   [  373.637263] brcmfmac: brcmf_p2p_create_p2pdev: timeout
> > > > occurred
> > > >   [  373.679377] brcmfmac: brcmf_cfg80211_del_key: invalid 
> > > > key
> > > > index (4)
> > > >   [  373.685733] brcmfmac: brcmf_cfg80211_del_key: invalid 
> > > > key
> > > > index (5)
> > > > 
> > > > Any idea?
> > > 
> > > Wondering whether it is similar to what Rafal reported. Can you 
> > > do a
> > > hexdump, ie. hexdump -C brcmfmac43362-sdio.bin | tail -30
> > 
> > I managed to set up the p2p interface by recompiling the kernel 
> > with
> > CONFIG_BRCMDBG and loading the brcmfmac module with p2pon=1.
> > 
> > I had a discussion some month ago with Hante Meulemann about 
> > setting up
> > the p2p interface. This is one of his replies:
> > 
> >  "For what I can see from the log is that we don’t get the 
> > event from
> >  the FW indicating that the p2p interface was created. This 
> > probably
> >  means that there is a bug in this FW for this device. I need 
> > to discuss
> >  this to see how much priority we can give this. The best 
> > option for you
> >  for the moment is to use the legacy method with the 'p2pon=1' 
> > command."
> 
> Thanks for digging your email archive as we clearly forgot about this 
> 
> entirely.

Me too :-)

> The timeout in your log indeed indicates it is missing a 
> notification from firmware. I assume your primary interface is in 
> managed mode when trying to create the p2p_dev interface. Is that 
> correct?

Correct.

Best regards
Jörg Krause
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: brcmfmac: brcmf_p2p_create_p2pdev: timeout occurred

2015-06-08 Thread Arend van Spriel

On 06/08/15 22:17, Jörg Krause wrote:

On Mo, 2015-06-08 at 18:46 +0200, Arend van Spriel wrote:

On 06/08/15 15:48, Jörg Krause wrote:

Hi Arend,

On Mo, 2015-06-08 at 14:41 +0200, Arend van Spriel wrote:

On 06/08/15 14:35, Jörg Krause wrote:

Hi,

I've trouble creating the p2p interface on a BCM43362 wifi
device
running Linux kernel 4.0.4:

   # dmesg | grep brcmfmac
   [7.010870] brcmfmac: brcmf_c_preinit_dcmds: Firmware
version =
   wl0: Apr 22 2013 14:50:00 version 5.90.195.89.6 FWID 01
-b30a427d
   [7.158905] brcmfmac: brcmf_cfg80211_reg_notifier: not
a
ISO3166
   code
   [   11.007164] brcmfmac: brcmf_p2p_create_p2pdev: timeout
occurred

Trying to add the p2p interface manually:

   # iw phy0 interface add p2p0 type __p2pdev
   [  372.042704] brcmfmac: brcmf_link_down: WLC_DISASSOC
failed
(-52)
   [  373.637263] brcmfmac: brcmf_p2p_create_p2pdev: timeout
occurred
   [  373.679377] brcmfmac: brcmf_cfg80211_del_key: invalid
key
index (4)
   [  373.685733] brcmfmac: brcmf_cfg80211_del_key: invalid
key
index (5)

Any idea?


Wondering whether it is similar to what Rafal reported. Can you
do a
hexdump, ie. hexdump -C brcmfmac43362-sdio.bin | tail -30


I managed to set up the p2p interface by recompiling the kernel
with
CONFIG_BRCMDBG and loading the brcmfmac module with p2pon=1.

I had a discussion some month ago with Hante Meulemann about
setting up
the p2p interface. This is one of his replies:

  "For what I can see from the log is that we don’t get the
event from
  the FW indicating that the p2p interface was created. This
probably
  means that there is a bug in this FW for this device. I need
to discuss
  this to see how much priority we can give this. The best
option for you
  for the moment is to use the legacy method with the 'p2pon=1'
command."


Thanks for digging your email archive as we clearly forgot about this

entirely.


Me too :-)


The timeout in your log indeed indicates it is missing a
notification from firmware. I assume your primary interface is in
managed mode when trying to create the p2p_dev interface. Is that
correct?


Correct.


So do you have the following commit in your kernel tree:

commit f48556e1b6a60f1b394a6c4b0a7b8cacba3eb107
Author: Arend van Spriel 
Date:   Tue Sep 30 10:23:16 2014 +0200

brcmfmac: assure P2P discovery is disabled when setting P2P_DEVICE 
mac addre


Regards,
Arend


Best regards
Jörg Krause
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v3 1/2] staging: wilc1000: Cleanup to coreconfigurator

2015-06-08 Thread Stanislav Kholmanskikh
On Mon, Jun 08, 2015 at 12:41:08PM -0700, Greg KH wrote:
> On Tue, Jun 02, 2015 at 12:55:06PM +0400, Stanislav Kholmanskikh wrote:
> > Fixed several syntax/style issues found with checkpatch.pl.
> 
> What exactly is "several"?  Please be specific as to what type of
> changes you are making.
> 
> Please fix and resend both of these.

Sorry. I put a more detailed description and sent V4.

Thanks.

> 
> thanks,
> 
> greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v4 1/2] staging: wilc1000: Cleanup to coreconfigurator

2015-06-08 Thread Stanislav Kholmanskikh
Fixed the following issues found with checkpatch.pl:

* Multiple debug strings contained " \n". Changed
  it to "\n".

* Changed 'return(X)' to 'return X'.

* Aligned TAG_PARAM_OFFSET to fit 80 columns

Signed-off-by: Stanislav Kholmanskikh 
---
Changes since v3:
 * Put a more detailed explanation what I do in patch 1/2.


 drivers/staging/wilc1000/coreconfigurator.c | 24 
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/drivers/staging/wilc1000/coreconfigurator.c 
b/drivers/staging/wilc1000/coreconfigurator.c
index e3e3f20..43864dc 100644
--- a/drivers/staging/wilc1000/coreconfigurator.c
+++ b/drivers/staging/wilc1000/coreconfigurator.c
@@ -28,7 +28,7 @@
 #define INVALID 255
 #define MAC_ADDR_LEN6
 #define TAG_PARAM_OFFSET   (MAC_HDR_LEN + TIME_STAMP_LEN + \
-   BEACON_INTERVAL_LEN + 
CAP_INFO_LEN)
+BEACON_INTERVAL_LEN + CAP_INFO_LEN)
 
 /*/
 /* Function Macros   */
@@ -672,14 +672,14 @@ INLINE WILC_Uint16 get_asoc_id(u8 *data)
 WILC_Sint32 CoreConfiguratorInit(void)
 {
WILC_Sint32 s32Error = WILC_SUCCESS;
-   PRINT_D(CORECONFIG_DBG, "CoreConfiguratorInit() \n");
+   PRINT_D(CORECONFIG_DBG, "CoreConfiguratorInit()\n");
 
sema_init(&SemHandleSendPkt, 1);
sema_init(&SemHandlePktResp, 0);
 
gps8ConfigPacket = (WILC_Sint8 *)WILC_MALLOC(MAX_PACKET_BUFF_SIZE);
if (gps8ConfigPacket == NULL) {
-   PRINT_ER("failed in gps8ConfigPacket allocation \n");
+   PRINT_ER("failed in gps8ConfigPacket allocation\n");
s32Error = WILC_NO_MEM;
goto _fail_;
}
@@ -710,13 +710,13 @@ u8 *get_tim_elm(u8 *pu8msa, WILC_Uint16 u16RxLen, 
WILC_Uint16 u16TagParamOffset)
/* Search for the TIM Element Field and return if the element is found 
*/
while (u16index < (u16RxLen - FCS_LEN)) {
if (pu8msa[u16index] == ITIM) {
-   return(&pu8msa[u16index]);
+   return &pu8msa[u16index];
} else {
u16index += (IE_HDR_LEN + pu8msa[u16index + 1]);
}
}
 
-   return(0);
+   return 0;
 }
 
 /* This function gets the current channel information from
@@ -728,7 +728,7 @@ u8 get_current_channel_802_11n(u8 *pu8msa, WILC_Uint16 
u16RxLen)
index = TAG_PARAM_OFFSET;
while (index < (u16RxLen - FCS_LEN)) {
if (pu8msa[index] == IDSPARMS)
-   return (pu8msa[index + 2]);
+   return pu8msa[index + 2];
else
/* Increment index by length information and header */
index += pu8msa[index + 1] + IE_HDR_LEN;
@@ -750,7 +750,7 @@ u8 get_current_channel(u8 *pu8msa, WILC_Uint16 u16RxLen)
 #else /* FIVE_GHZ_BAND */
/* Extract current channel information from */
/* the beacon/probe response frame  */
-   return (get_current_channel_802_11n(pu8msa, u16RxLen));
+   return get_current_channel_802_11n(pu8msa, u16RxLen);
 #endif /* FIVE_GHZ_BAND */
 #else
return 0;
@@ -1444,7 +1444,7 @@ void ProcessAdrWid(WILC_Char *pcPacket, WILC_Sint32 
*ps32PktLen,
 void ProcessBinWid(WILC_Char *pcPacket, WILC_Sint32 *ps32PktLen,
   tstrWID *pstrWID, u8 *pu8val, WILC_Sint32 s32ValueSize)
 {
-   /* WILC_ERROR("processing Binary WIDs is not supported \n"); */
+   /* WILC_ERROR("processing Binary WIDs is not supported\n"); */
 
WILC_Uint16 u16MsgLen = 0;
WILC_Uint16 idx= 0;
@@ -1583,7 +1583,7 @@ WILC_Sint32 further_process_response(u8 *resp,
WILC_memcpy(pstrWIDresult->ps8WidVal, cfg_str, 
cfg_len); /* mostafa: no need currently for the extra NULL byte */
pstrWIDresult->s32ValueSize = cfg_len;
} else {
-   PRINT_ER("allocated WID buffer length is smaller than 
the received WID Length \n");
+   PRINT_ER("allocated WID buffer length is smaller than 
the received WID Length\n");
retval = -2;
}
 
@@ -2027,7 +2027,7 @@ WILC_Sint32 ConfigProvideResponse(WILC_Char 
*pcRespBuffer, WILC_Sint32 s32RespLe
} else {
WILC_memcpy(gstrConfigPktInfo.pcRespBuffer, 
pcRespBuffer, gstrConfigPktInfo.s32MaxRespBuffLen);
gstrConfigPktInfo.s32BytesRead = 
gstrConfigPktInfo.s32MaxRespBuffLen;
-   PRINT_ER("BusProvideResponse() Response greater than 
the prepared Buffer Size \n");
+   PRINT_ER("BusProvideResponse() Response greater than 
the prepared Buffer Size\n");
}
 
up(&SemHandlePktResp);
@@ -2076,7 +2076,7 @@ WILC_S

[PATCH v4 2/2] staging: wilc1000: Align enum members in coreconfigurator

2015-06-08 Thread Stanislav Kholmanskikh
Aligned enum members to follow a common style per enum.

Signed-off-by: Stanislav Kholmanskikh 
---
 drivers/staging/wilc1000/coreconfigurator.c | 29 +++---
 drivers/staging/wilc1000/coreconfigurator.h | 62 ++---
 2 files changed, 46 insertions(+), 45 deletions(-)

diff --git a/drivers/staging/wilc1000/coreconfigurator.c 
b/drivers/staging/wilc1000/coreconfigurator.c
index 43864dc..c55ed9d 100644
--- a/drivers/staging/wilc1000/coreconfigurator.c
+++ b/drivers/staging/wilc1000/coreconfigurator.c
@@ -40,11 +40,12 @@
 /*/
 
 /* Basic Frame Type Codes (2-bit) */
-typedef enum {FRAME_TYPE_CONTROL = 0x04,
- FRAME_TYPE_DATA= 0x08,
- FRAME_TYPE_MANAGEMENT= 0x00,
- FRAME_TYPE_RESERVED  = 0x0C,
- FRAME_TYPE_FORCE_32BIT  = 0x
+typedef enum {
+   FRAME_TYPE_CONTROL = 0x04,
+   FRAME_TYPE_DATA= 0x08,
+   FRAME_TYPE_MANAGEMENT  = 0x00,
+   FRAME_TYPE_RESERVED= 0x0C,
+   FRAME_TYPE_FORCE_32BIT = 0x
 } tenuBasicFrmType;
 
 /* Frame Type and Subtype Codes (6-bit) */
@@ -188,7 +189,7 @@ static tstrWID gastrWIDs[] = {
{WID_QOS_ENABLE,WID_CHAR},
{WID_11I_MODE,  WID_CHAR},
{WID_CURRENT_TX_RATE,   WID_CHAR},
-   {WID_LINKSPEED,   WID_CHAR},
+   {WID_LINKSPEED, WID_CHAR},
{WID_RTS_THRESHOLD, WID_SHORT},
{WID_FRAG_THRESHOLD,WID_SHORT},
{WID_SSID,  WID_STR},
@@ -223,14 +224,14 @@ static tstrWID gastrWIDs[] = {
{WID_MEMORY_ACCESS_32BIT,   WID_INT},
{WID_MEMORY_ACCESS_16BIT,   WID_SHORT},
{WID_MEMORY_ACCESS_8BIT,WID_CHAR},
-   {WID_SITE_SURVEY_RESULTS,   WID_STR},
-   {WID_PMKID_INFO,WID_STR},
-   {WID_ASSOC_RES_INFO,WID_STR},
-   {WID_MANUFACTURER,  WID_STR}, /* 4 Wids 
added for the CAPI tool*/
-   {WID_MODEL_NAME,WID_STR},
-   {WID_MODEL_NUM, WID_STR},
-   {WID_DEVICE_NAME,   WID_STR},
-   {WID_SSID_PROBE_REQ, WID_STR},
+   {WID_SITE_SURVEY_RESULTS,   WID_STR},
+   {WID_PMKID_INFO,WID_STR},
+   {WID_ASSOC_RES_INFO,WID_STR},
+   {WID_MANUFACTURER,  WID_STR}, /* 4 Wids added for the CAPI 
tool*/
+   {WID_MODEL_NAME,WID_STR},
+   {WID_MODEL_NUM, WID_STR},
+   {WID_DEVICE_NAME,   WID_STR},
+   {WID_SSID_PROBE_REQ,WID_STR},
 
 #ifdef MAC_802_11N
{WID_11N_ENABLE,WID_CHAR},
diff --git a/drivers/staging/wilc1000/coreconfigurator.h 
b/drivers/staging/wilc1000/coreconfigurator.h
index 73cdbef..b8e5241 100644
--- a/drivers/staging/wilc1000/coreconfigurator.h
+++ b/drivers/staging/wilc1000/coreconfigurator.h
@@ -19,9 +19,9 @@
 /*/
 /* Number of WID Options Supported */
 #define NUM_BASIC_SWITCHES  45
-#define NUM_FHSS_SWITCHES0
+#define NUM_FHSS_SWITCHES   0
 
-#define NUM_RSSI   5
+#define NUM_RSSI5
 
 #ifdef MAC_802_11N
 #define NUM_11N_BASIC_SWITCHES  25
@@ -51,14 +51,14 @@ extern WILC_Uint16 g_num_total_switches;
 
 #define MAX_PACKET_BUFF_SIZE 1596
 
-#define MAX_STRING_LEN 256
-#define MAX_SURVEY_RESULT_FRAG_SIZE MAX_STRING_LEN
-#define SURVEY_RESULT_LENGTH   44
-#define MAX_ASSOC_RESP_FRAME_SIZE MAX_STRING_LEN
+#define MAX_STRING_LEN   256
+#define MAX_SURVEY_RESULT_FRAG_SIZE  MAX_STRING_LEN
+#define SURVEY_RESULT_LENGTH 44
+#define MAX_ASSOC_RESP_FRAME_SIZEMAX_STRING_LEN
 
-#define STATUS_MSG_LEN 12
-#define MAC_CONNECTED  1
-#define MAC_DISCONNECTED   0
+#define STATUS_MSG_LEN   12
+#define MAC_CONNECTED1
+#define MAC_DISCONNECTED 0
 
 
 
@@ -327,10 +327,10 @@ typedef enum {
WID_SUPP_PASSWORD  = 0x3011,
WID_SITE_SURVEY_RESULTS= 0x3012,
WID_RX_POWER_LEVEL = 0x3013,
-   WID_MANUFACTURER   = 0x3026, /*Added for 
CAPI tool */
-   WID_MODEL_NAME = 0x3027,
 /*Added for CAPI tool */
-   WID_MODEL_NUM  = 0x3028, /*Added for 
CAPI tool */
-   WID_DEVICE_NAME= 0x3029,
 /*Added for CAPI tool */
+   WID_MANUFACTURER   = 0x3026,/*Added for CAPI tool */
+   WID_MODEL_NAME = 0x3027,/*Added for CAPI

Re: [RFC v3 2/2] firmware: add firmware signature checking support

2015-06-08 Thread Kees Cook
On Mon, May 18, 2015 at 5:45 PM, Luis R. Rodriguez
 wrote:
> From: "Luis R. Rodriguez" 
>
> Systems that have module signing currently enabled may
> wish to extend vetting of firmware passed to the kernel
> as well. We can re-use most of the code for module signing
> for firmware signature verification and signing. This will
> also later enable re-use of this same code for subsystems
> that wish to provide their own cryptographic verification
> requirements on userspace data needed.
>
> Contrary to module signing the signature files are expected
> to be completely detached for practical and licensing puposes.
> If you have foo.bin, you'll need foo.bin.p7s file present
> for firmware signing.
>
> There's both a config option and a boot parameter which control
> whether we accept or fail with unsigned firmware and firmware
> that are signed with an unknown key. If firmware signing is
> enabled permissively we'll only log into the kernel ring buffer
> when use of an unsigned firmware file is used. If firmware
> signing is in enforced mode the kernel will not allow invalid
> or unsigned firmware files to be loaded into the kernel.
>
> Contrary to module signing we do not taint the kernel in
> the permissive fw signing mode due to restrictions on the
> firmware_class API, extensions to enable this are expected
> however in the future.
>
> Cc: Rusty Russell 
> Cc: David Howells 
> Cc: Ming Lei 
> Cc: Seth Forshee 
> Cc: Kyle McMartin 
> Cc: David Woodhouse 
> Signed-off-by: Luis R. Rodriguez 
> ---
>  Documentation/firmware_class/signing.txt |  90 +
>  drivers/base/Kconfig |  18 +++
>  drivers/base/firmware_class.c| 213 
> ++-
>  3 files changed, 314 insertions(+), 7 deletions(-)
>  create mode 100644 Documentation/firmware_class/signing.txt
>
> diff --git a/Documentation/firmware_class/signing.txt 
> b/Documentation/firmware_class/signing.txt
> new file mode 100644
> index 000..b03f654
> --- /dev/null
> +++ b/Documentation/firmware_class/signing.txt
> @@ -0,0 +1,90 @@
> +   
> +   KERNEL FIRMWARE SIGNING FACILITY
> +   
> +
> +CONTENTS
> +
> + - Overview.
> + - Configuring firmware signing.
> + - Using signing keys.
> + - Signing firmware files.
> +
> +
> +
> +OVERVIEW
> +
> +
> +Device drivers which require a firmware to be uploaded onto a device as its 
> own
> +device's microcode use any of the following APIs:
> +
> +  * request_firmware()
> +  * request_firmware_direct()
> +  * request_firmware_nowait()
> +
> +The kernel firmware signing facility enables to cryptographically sign
> +firmware files on a system using the same keys used for module signing.
> +Firmware files's signatures consist of PKCS#7 messages of the respective
> +firmware file. A firmware file named foo.bin, would have its respective
> +signature on the filesystem as foo.bin.p7s. When firmware signature
> +checking is enabled (FIRMWARE_SIG) and when one of the above APIs is used
> +against foo.bin, the file foo.bin.p7s will also be looked for. If
> +FIRMWARE_SIG_FORCE is enabled the foo.bin file will only be allowed to
> +be returned to callers of the above APIs if and only if the foo.bin.p7s
> +file is confirmed to be a valid signature of the foo.bin file. If
> +FIRMWARE_SIG_FORCE is not enabled and only FIRMWARE_SIG is enabled the
> +kernel will be permissive and enabled unsigned firmware files, or firmware
> +files with incorrect signatures. If FIRMWARE_SIG is not enabled the
> +signature file is ignored completely.
> +
> +Firmware signing increases security by making it harder to load a malicious
> +firmware into the kernel.  The firmware signature checking is done by the
> +kernel so that it is not necessary to have trusted userspace bits.
> +
> +
> +CONFIGURING FIRMWARE SIGNING
> +
> +
> +The firmware signing facility is enabled by going to the section:
> +
> +-> Device Drivers
> +  -> Generic Driver Options
> +-> Userspace firmware loading support (FW_LOADER [=y])
> +  -> Firmware signature verification (FIRMWARE_SIG [=y])
> +
> +If you want to not allow unsigned firmware to be loaded you should
> +enable:
> +
> +"Require all firmware to be validly signed" (FIRMWARE_SIG_FORCE [=y]),
> +under the same menu.
> +
> +==
> +USING SIGNING KEYS
> +==
> +
> +The same key types used for module signing can be used for firmware
> +signing. For details on that refer to Documentation/module-signing.txt.
> +
> +You will need:
> +
> +  A) A DER-encoded X.509 certificate containing the public key.
> +  B) A DER-encoded PKCS#7 message containing the signatures, these are
> + the .p7s files.
> +  C) A binary blob that is the detached data for the PKCS#7 message, this
> + is the firmware files
> +
> +A) is must be made available to the k

Re: [PATCH v3 1/2] staging: wilc1000: Cleanup to coreconfigurator

2015-06-08 Thread Greg KH
On Tue, Jun 02, 2015 at 12:55:06PM +0400, Stanislav Kholmanskikh wrote:
> Fixed several syntax/style issues found with checkpatch.pl.

What exactly is "several"?  Please be specific as to what type of
changes you are making.

Please fix and resend both of these.

thanks,

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: mac80211 modification

2015-06-08 Thread Krishna Chaitanya
On Mon, Jun 8, 2015 at 10:40 PM, Alexis Green  wrote:
>
> You should build mac80211 as module instead of built-in driver and
> "make modules" instead of full make. This way you'll be just
> rebuilding mac80211.ko instead of the whole thing.
>
> On Mon, Jun 8, 2015 at 2:39 AM, Duy Tai Nguyen  wrote:
> > Hi,
> >
> > I want to inject particular data into beacon frame in Android device.
> > I found two approaches:
> > 1. Write loadable kernel module.
> > 2. Modify MAC80211 subsystem
> > In the first approach, I found that I could not include directly
> > source code from MAC80211 sub system in folder /net/mac80211/. Thus, I
> > used the second approach, but, every time I change any line of source
> > code, it takes 30 minutes to build zImage  then install new kernel in
> > my Android device. Finally, I was stuck.
> > Therefore, my questions are:
> > 1. Is it right approach to modify MAC80211 subsystem?
> > 2. Are there any faster approach to modify MAC80211 and test source code?
> > 3. I am curious about the way you write code and test MAC80211. Could
> > you explain in details?

The way i do it is, as below:

1) First time compile the full kernel. With mac80211=m
2) Next time: after changing source :
   make modules M=net/mac80211
   make modules_install M=net/mac80211

   modprobe -v mac80211 -r
   modprobe -v mac80211
3) I normally use mac80211_hwsim to test the mac80211 code.
 Refer: https://wireless.wiki.kernel.org/en/users/drivers/mac80211_hwsim
In that case:

   modprobe -v mac80211_hwsim -r
   modprobe -v mac80211_hwsim
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] rtl8723au: replaced asm/atomic.h by linux/atomic.h

2015-06-08 Thread Xavier Roche

Hi Kalle,

On Mon, 8 Jun 2015, Kalle Valo wrote:

For staging patches please prefix the title "staging: "
Here's a tip how you can check what commit title you should use:
git log --oneline drivers/staging/rtl8723au/include/rtw_io.h


Thanks a lot!

Xavier
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: [PATCH] mac80211: Fix a case of incorrect metric used when forwarding a PREQ

2015-06-08 Thread Jesse Jones
I took a look at the spec too and also didn't see mention of the MP_F_RF
flag. Section 13.10.9.3 for example talks about PREQ handling and in case E2
talks about sending replies back. It says to do that if target only is not
set which makes sense: MP_F_RF and MP_F_DO are exclusive options so it's
silly to use two different flags for them.

But for the purposes of this patch that is a moot issue: the semantics of
the function don't change and the original code was both confusing and using
the wrong value for metric for the not target only, intermediate station
case.

  -- Jesse

-Original Message-
From: linux-wireless-ow...@vger.kernel.org
[mailto:linux-wireless-ow...@vger.kernel.org] On Behalf Of Yeoh Chun-Yeow
Sent: Monday, June 08, 2015 1:55 AM
To: linux-wireless@vger.kernel.org
Subject: Re: [PATCH] mac80211: Fix a case of incorrect metric used when
forwarding a PREQ

As mentioned in Section 13.10.9.3 Case E2, the PREQ forwarding should use
metric "as received + own metric toward transmitter of received PREQ". So
you are right.

Just MP_F_RF bit is no longer use. After replying with PREP, forwarding the
PREQ by setting the IEEE80211_PREQ_TO_FLAG in the per target flags.

---
Chun-Yeow

On Mon, Jun 8, 2015 at 4:07 PM, Yeoh Chun-Yeow 
wrote:
> Hi, Alexis Green
>
> I just take a look back on the code before implementing the Proactive
> PREQ for PREP. For the case of reply and forward (target_flags &
> MP_F_RF), the previous metric used is the one which resolved from
> mpath->metric.
>
> Refer here:
> https://github.com/o11s/open80211s/blob/o11s-0.4.2/net/mac80211/mesh_h
> wmp.c
>
> But to say that, I cannpt confirm whether this is correct. The
> standard 802.11-2012 has no longer specified bit-1 MP_F_RF (Refer
> section 8.4.2.115 per target flag). So maybe it is not relevant
> anymore. We may need to remove as well.
>
> 
> Chun-Yeow
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org More majordomo info at
http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: mac80211 modification

2015-06-08 Thread Alexis Green
You should build mac80211 as module instead of built-in driver and
"make modules" instead of full make. This way you'll be just
rebuilding mac80211.ko instead of the whole thing.

On Mon, Jun 8, 2015 at 2:39 AM, Duy Tai Nguyen  wrote:
> Hi,
>
> I want to inject particular data into beacon frame in Android device.
> I found two approaches:
> 1. Write loadable kernel module.
> 2. Modify MAC80211 subsystem
> In the first approach, I found that I could not include directly
> source code from MAC80211 sub system in folder /net/mac80211/. Thus, I
> used the second approach, but, every time I change any line of source
> code, it takes 30 minutes to build zImage  then install new kernel in
> my Android device. Finally, I was stuck.
> Therefore, my questions are:
> 1. Is it right approach to modify MAC80211 subsystem?
> 2. Are there any faster approach to modify MAC80211 and test source code?
> 3. I am curious about the way you write code and test MAC80211. Could
> you explain in details?
> Best Regards,
> Duy Tai.
> 
> Nguyen Duy Tai
> Ym: kimjiwoo741
> Phone: +841676919422
> Faculty of Computer Science and Engineering.
> University of Technology HCMC.
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to majord...@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: brcmfmac: brcmf_p2p_create_p2pdev: timeout occurred

2015-06-08 Thread Arend van Spriel

On 06/08/15 15:48, Jörg Krause wrote:

Hi Arend,

On Mo, 2015-06-08 at 14:41 +0200, Arend van Spriel wrote:

On 06/08/15 14:35, Jörg Krause wrote:

Hi,

I've trouble creating the p2p interface on a BCM43362 wifi device
running Linux kernel 4.0.4:

  # dmesg | grep brcmfmac
  [7.010870] brcmfmac: brcmf_c_preinit_dcmds: Firmware
version =
  wl0: Apr 22 2013 14:50:00 version 5.90.195.89.6 FWID 01
-b30a427d
  [7.158905] brcmfmac: brcmf_cfg80211_reg_notifier: not a
ISO3166
  code
  [   11.007164] brcmfmac: brcmf_p2p_create_p2pdev: timeout
occurred

Trying to add the p2p interface manually:

  # iw phy0 interface add p2p0 type __p2pdev
  [  372.042704] brcmfmac: brcmf_link_down: WLC_DISASSOC failed
(-52)
  [  373.637263] brcmfmac: brcmf_p2p_create_p2pdev: timeout
occurred
  [  373.679377] brcmfmac: brcmf_cfg80211_del_key: invalid key
index (4)
  [  373.685733] brcmfmac: brcmf_cfg80211_del_key: invalid key
index (5)

Any idea?


Wondering whether it is similar to what Rafal reported. Can you do a
hexdump, ie. hexdump -C brcmfmac43362-sdio.bin | tail -30


I managed to set up the p2p interface by recompiling the kernel with
CONFIG_BRCMDBG and loading the brcmfmac module with p2pon=1.

I had a discussion some month ago with Hante Meulemann about setting up
the p2p interface. This is one of his replies:

 "For what I can see from the log is that we don’t get the event from
 the FW indicating that the p2p interface was created. This probably
 means that there is a bug in this FW for this device. I need to discuss
 this to see how much priority we can give this. The best option for you
 for the moment is to use the legacy method with the 'p2pon=1' command."


Thanks for digging your email archive as we clearly forgot about this 
entirely. The timeout in your log indeed indicates it is missing a 
notification from firmware. I assume your primary interface is in 
managed mode when trying to create the p2p_dev interface. Is that correct?


Regards,
Arend


Best regards
Jörg Krause


--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Fwd: TX99 rate control

2015-06-08 Thread Mathieu Slabbinck
Hi all,

I'm trying to figure out how to get rate control working in TX99.
Currently it's forced in code to rate = &tx_info->control.rates[0];

Every time I force/try anything besides "0" (which is the value of
tx_info->control.rates[0]) the module won't start radiating.

Can anyone provide any help with this subject?

Kind regards

Mathieu
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH V2] ath10k: add 'cryptmode' param to support raw tx injection and sw crypto.

2015-06-08 Thread Kalle Valo
Liu CF/TW  writes:

> This change supports bypassing HW crypto engine by enabling raw Rx/Tx mode.
> This will enable use cases such as sw crypto and raw tx injection.
> This change introduces a new module param 'cryptmode'.

Please use full words, eg. sw -> software, hw -> hardware

> cryptmode:
>
>  0Use HW crypto engine. Use native WiFi mode Tx/Rx encap

"Use hardware crypto engine with native Wi-Fi mode TX/RX encapsulation
to the firmware"

>  1Use SW crypto engine. Use raw mode Tx/Rx encap

"Use sofware crypto engine from mac80211 with raw mode TX/RX
encapsulation to the firmware"

>  2Supports both SW & HW crypto engine. Use raw mode Tx/Rx encap.

It's not clear how to use this. How does the user choose between SW or
HW crypto modes? Please document that fully in the commit log.

>  ath10k
>  cryptmode
>  param  Testing Status
>  ----
> 0   HW CCMP/TKIP tested ok.
> Note: HW crypto bypass not supported by ath10k hw in native WiFi
> mode.

What's "HW crypto bypass"? Please write the commit log so that everyone
can understand it.

> 1   - mac80211 SW crypto tested ok.
> - raw Tx frame injection tested ok.

What does "mac80211 SW crypto tested ok" exactly mean?

> 2   HW CCMP/TKIP tested ok.
> SW CCMP/TKIP tested ok.

How were the HW and SW modes chosen?

> Tested raw Tx encrypted frame injection ok.

With HW or SW crypto mode?

-- 
Kalle Valo
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH V2] ath10k: add 'cryptmode' param to support raw tx injection and sw crypto.

2015-06-08 Thread Kalle Valo
Liu CF/TW  writes:

> This change supports bypassing HW crypto engine by enabling raw Rx/Tx mode.
> This will enable use cases such as sw crypto and raw tx injection.
> This change introduces a new module param 'cryptmode'.
>
> cryptmode:
>
>  0Use HW crypto engine. Use native WiFi mode Tx/Rx encap
>
>  1Use SW crypto engine. Use raw mode Tx/Rx encap
>
>  2Supports both SW & HW crypto engine. Use raw mode Tx/Rx encap.
>
> Testing: used QCA988x hw 2.0 with firmware-4.bin_10.2.4.48 with 
> backports-20150424
> (Skipped ATH10K_FW_FEATURE_RAW_MODE_SUPPORT check in core.c within this 
> patch. 
>  Since none of the existing QCA official firmware has the feature bit set yet)
>
>  ath10k
>  cryptmode
>  param  Testing Status
>  ----
> 0   HW CCMP/TKIP tested ok.
> Note: HW crypto bypass not supported by ath10k hw in native WiFi
> mode.
>
> 1   - mac80211 SW crypto tested ok.
> - raw Tx frame injection tested ok.
>
> 2   HW CCMP/TKIP tested ok.
> SW CCMP/TKIP tested ok.
> Tested raw Tx encrypted frame injection ok.
>
> Signed-off-by: Liu CF/TW 

Kbuild bot found a sparse warning:

>> drivers/net/wireless/ath/ath10k/core.c:34:14: sparse: symbol 
>> 'ath10k_cryptmode_param' was not declared. Should it be static?


-- 
Kalle Valo
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: brcmfmac: brcmf_p2p_create_p2pdev: timeout occurred

2015-06-08 Thread Jörg Krause
Hi Arend,

On Mo, 2015-06-08 at 14:41 +0200, Arend van Spriel wrote:
> On 06/08/15 14:35, Jörg Krause wrote:
> > Hi,
> > 
> > I've trouble creating the p2p interface on a BCM43362 wifi device
> > running Linux kernel 4.0.4:
> > 
> >  # dmesg | grep brcmfmac
> >  [7.010870] brcmfmac: brcmf_c_preinit_dcmds: Firmware 
> > version =
> >  wl0: Apr 22 2013 14:50:00 version 5.90.195.89.6 FWID 01
> > -b30a427d
> >  [7.158905] brcmfmac: brcmf_cfg80211_reg_notifier: not a 
> > ISO3166
> >  code
> >  [   11.007164] brcmfmac: brcmf_p2p_create_p2pdev: timeout 
> > occurred
> > 
> > Trying to add the p2p interface manually:
> > 
> >  # iw phy0 interface add p2p0 type __p2pdev
> >  [  372.042704] brcmfmac: brcmf_link_down: WLC_DISASSOC failed 
> > (-52)
> >  [  373.637263] brcmfmac: brcmf_p2p_create_p2pdev: timeout 
> > occurred
> >  [  373.679377] brcmfmac: brcmf_cfg80211_del_key: invalid key 
> > index (4)
> >  [  373.685733] brcmfmac: brcmf_cfg80211_del_key: invalid key 
> > index (5)
> > 
> > Any idea?
> 
> Wondering whether it is similar to what Rafal reported. Can you do a 
> hexdump, ie. hexdump -C brcmfmac43362-sdio.bin | tail -30

I managed to set up the p2p interface by recompiling the kernel with
CONFIG_BRCMDBG and loading the brcmfmac module with p2pon=1.

I had a discussion some month ago with Hante Meulemann about setting up
the p2p interface. This is one of his replies:

"For what I can see from the log is that we don’t get the event from
the FW indicating that the p2p interface was created. This probably
means that there is a bug in this FW for this device. I need to discuss
this to see how much priority we can give this. The best option for you
for the moment is to use the legacy method with the 'p2pon=1' command."

Best regards
Jörg Krause
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


wireless-drivers-next deadline for 4.2

2015-06-08 Thread Kalle Valo
Hi,

by the looks of it Linus will release 4.1 on June 21st. So anything
which should go to 4.2 should be submitted to the list by Thursday June
11th. Anything later than that might need to wait for 4.3.

-- 
Kalle Valo
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: brcmfmac: brcmf_p2p_create_p2pdev: timeout occurred

2015-06-08 Thread Jörg Krause
Hi Arend,

On Mo, 2015-06-08 at 14:41 +0200, Arend van Spriel wrote:
> On 06/08/15 14:35, Jörg Krause wrote:
> > Hi,
> > 
> > I've trouble creating the p2p interface on a BCM43362 wifi device
> > running Linux kernel 4.0.4:
> > 
> >  # dmesg | grep brcmfmac
> >  [7.010870] brcmfmac: brcmf_c_preinit_dcmds: Firmware 
> > version =
> >  wl0: Apr 22 2013 14:50:00 version 5.90.195.89.6 FWID 01
> > -b30a427d
> >  [7.158905] brcmfmac: brcmf_cfg80211_reg_notifier: not a 
> > ISO3166
> >  code
> >  [   11.007164] brcmfmac: brcmf_p2p_create_p2pdev: timeout 
> > occurred
> > 
> > Trying to add the p2p interface manually:
> > 
> >  # iw phy0 interface add p2p0 type __p2pdev
> >  [  372.042704] brcmfmac: brcmf_link_down: WLC_DISASSOC failed 
> > (-52)
> >  [  373.637263] brcmfmac: brcmf_p2p_create_p2pdev: timeout 
> > occurred
> >  [  373.679377] brcmfmac: brcmf_cfg80211_del_key: invalid key 
> > index (4)
> >  [  373.685733] brcmfmac: brcmf_cfg80211_del_key: invalid key 
> > index (5)
> > 
> > Any idea?
> 
> Wondering whether it is similar to what Rafal reported. Can you do a 
> hexdump, ie. hexdump -C brcmfmac43362-sdio.bin | tail -30

This is the output:

$ hexdump -C brcmfmac43362-sdio.bin | tail -30
000357e0  03 37 a2 00 02 5e 02 f0  00 a8 01 87 60 05 60 6b 
 |.7...^..`.`k|
000357f0  03 00 02 de 02 f0 00 00  00 68 2b eb 00 13 11 00 
 |.h+.|
00035800  b0 2c 13 00 17 a1 00 e0  5e 85 60 b7 a1 00 6b de 
 |.,..^.`...k.|
00035810  86 23 33 11 01 86 e0 06  f7 f7 bf 00 02 de 02 f0 
 |.#3.|
00035820  00 00 00 b0 5e 8f 00 10  64 00 b0 5e 87 00 17 a3 
 |^...d..^|
00035830  00 b0 5e 8b 00 10 65 00  b0 5a 03 00 17 a1 00 68 
 |..^...e..Z.h|
00035840  41 93 00 13 1a 00 02 5e  02 f0 00 a2 00 b0 40 67  
|A..^..@g|
00035850  00 16 01 00 e0 41 93 00  50 64 00 b0 5a 07 00 17 
 |.A..Pd..Z...|
00035860  a2 00 02 5e 02 f0 00 a8  00 e0 41 97 00 50 65 00 
 |...^..A..Pe.|
00035870  e8 5e 8f 00 37 a3 00 68  de 8f 00 13 15 00 02 de 
 |.^..7..h|
00035880  02 f0 00 00 00 b0 5e 8f  00 10 64 00 b0 5e 87 00 
 |..^...d..^..|
00035890  17 a3 00 b0 5e 8b 00 10  65 00 b0 5a 03 00 17 80 
 |^...e..Z|
000358a0  00 68 41 93 00 13 28 00  02 5e 02 f0 0e 3f 00 b0 
 |.hA...(..^...?..|
000358b0  5e 07 00 16 01 00 e0 41  93 00 50 64 00 b0 5a 07 
 |^..A..Pd..Z.|
000358c0  00 17 81 00 02 5e 02 f0  0e 44 00 e0 41 97 00 50 
 |.^...D..A..P|
000358d0  65 00 e8 5e 8f 00 37 a3  00 68 de 8f 00 13 23 00 
 |e..^..7..h#.|
000358e0  02 de 02 f0 00 00 02 02  00 bf 00 01 88 02 03 c5 
 ||
000358f0  73 00 01 b1 00 00 00 00  00 00 00 00 57 86 00 00 
 |s...W...|
00035900  a5 c1 e1 42 05 5a c3 59  dc 01 75 51 3e 5b 23 49 
 |...B.Z.Y..uQ>[#I|
00035910  47 28 67 69 45 00 5e 55  f8 f5 c9 7d 42 0a b3 09 
 |G(giE.^U...}B...|
00035920  01 bd 32 08 01 00 34 33  33 36 32 61 32 2d 72 6f 
 |..2...43362a2-ro|
00035930  6d 6c 2f 73 64 69 6f 2d  67 2d 70 6e 6f 2d 70 6b  |ml/sdio-g
-pno-pk|
00035940  74 66 69 6c 74 65 72 2d  6b 65 65 70 61 6c 69 76  |tfilter
-keepaliv|
00035950  65 2d 77 61 70 69 2d 77  6d 65 2d 70 32 70 20 56  |e-wapi-wme
-p2p V|
00035960  65 72 73 69 6f 6e 3a 20  35 2e 39 30 2e 31 39 35  |ersion:
5.90.195|
00035970  2e 38 39 20 43 52 43 3a  20 62 64 31 65 33 65 35  |.89 CRC:
bd1e3e5|
00035980  61 20 44 61 74 65 3a 20  4d 6f 6e 20 32 30 31 33  |a Date:
Mon 2013|
00035990  2d 30 34 2d 32 32 20 31  37 3a 32 34 3a 34 34 20  |-04-22
17:24:44 |
000359a0  43 53 54 7d 00|CST}.|
000359a5

Best regards
Jörg Krause
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] ath10k: Debugfs entry to enable/disable BTC feature

2015-06-08 Thread Kalle Valo
"Li, Yanbo"  writes:

>> -Original Message-
>> From: Valo, Kalle
>> Sent: Wednesday, May 27, 2015 5:57 AM
>> To: Li, Yanbo
>> Cc: dreamfly...@gmail.com; linux-wireless@vger.kernel.org;
>> michal.kaz...@tieto.com; ath...@lists.infradead.org
>> Subject: Re: [PATCH] ath10k: Debugfs entry to enable/disable BTC feature
>> 
>> Yanbo Li  writes:
>> 
>> > As some radio have no connection with BT modules, enable the BTC
>> > feature will has some side effect if the radio's GPIO connect with any
>> > other HW modules. Add the control switcher "btc_feature" at debugfs
>> > and set the feature as disable by default to avoid such case.
>> >
>> > To enable this feature, execute:
>> > echo 1 > /sys/kernel/debug/ieee80211/phyX/ath10k/btc_feature
>> > To disable:
>> > echo 0 > /sys/kernel/debug/ieee80211/phyX/ath10k/btc_feature
>> 
>> I suspect "BTC" does not really tell much for most of the people and
>> acronyms should be always spelled out at least once.
>> 
>> > Signed-off-by: Yanbo Li 
>> >
>> > diff --git a/drivers/net/wireless/ath/ath10k/core.h
>> > b/drivers/net/wireless/ath/ath10k/core.h
>> > index 8444adf42195..6852e7fc5d5f 100644
>> > --- a/drivers/net/wireless/ath/ath10k/core.h
>> > +++ b/drivers/net/wireless/ath/ath10k/core.h
>> > @@ -720,6 +720,8 @@ struct ath10k {
>> >u32 fw_cold_reset_counter;
>> >} stats;
>> >
>> > +  bool btc_feature;
>> 
>> Could we use ar->dev_flags instead?
>
> This dev_flags currently used to mark some status, like the cradh, CAC 
> running, 
> The BTcoex feature is more likely a HW feature,  there are seems different 
> set. 
>
> Maybe a separately hw_feature_flag is needed as there are some other HW 
> feature 
> That we want to enable/disable from user space. 

I think we don't need a separate bitmap, we can use dev_flags just fine
for this.

>> > +static ssize_t ath10k_write_btc_feature(struct file *file,
>> > +  const char __user *ubuf,
>> > +  size_t count, loff_t *ppos)
>> > +{
>> > +  struct ath10k *ar = file->private_data;
>> > +  char buf[32];
>> > +  size_t buf_size;
>> > +  bool val;
>> > +
>> > +  buf_size = min(count, (sizeof(buf) - 1));
>> > +  if (copy_from_user(buf, ubuf, buf_size))
>> > +  return -EFAULT;
>> > +
>> > +  buf[buf_size] = '\0';
>> > +  if (strtobool(buf, &val) != 0) {
>> > +  ath10k_warn(ar, "Wrong BTC feature setting\n");
>> > +  return -EINVAL;
>> > +  }
>> > +
>> > +  mutex_lock(&ar->conf_mutex);
>> > +  ar->btc_feature = val;
>> > +  queue_work(ar->workqueue, &ar->restart_work);
>> > +  mutex_unlock(&ar->conf_mutex);
>> 
>> Shouldn't we test ATH10K_STATE_ON first?
>
> The restart process will judge by itself whether the device is on or not, and 
> print below warning in that case:
>
> [797424.496190] ath10k_pci :05:00.0: cannot restart a device that
> hasn't been started

That's just buggy, ath10k should not print anything if a setting is
changed while interface is down. It's much better we have the check for
ATH10K_STATE_ON here.

-- 
Kalle Valo
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


brcmfmac: brcmf_p2p_create_p2pdev: timeout occurred

2015-06-08 Thread Jörg Krause
Hi,

I've trouble creating the p2p interface on a BCM43362 wifi device
running Linux kernel 4.0.4:

# dmesg | grep brcmfmac
[7.010870] brcmfmac: brcmf_c_preinit_dcmds: Firmware version =
wl0: Apr 22 2013 14:50:00 version 5.90.195.89.6 FWID 01-b30a427d
[7.158905] brcmfmac: brcmf_cfg80211_reg_notifier: not a ISO3166
code
[   11.007164] brcmfmac: brcmf_p2p_create_p2pdev: timeout occurred

Trying to add the p2p interface manually:

# iw phy0 interface add p2p0 type __p2pdev
[  372.042704] brcmfmac: brcmf_link_down: WLC_DISASSOC failed (-52)
[  373.637263] brcmfmac: brcmf_p2p_create_p2pdev: timeout occurred
[  373.679377] brcmfmac: brcmf_cfg80211_del_key: invalid key index (4)
[  373.685733] brcmfmac: brcmf_cfg80211_del_key: invalid key index (5)

Any idea?

Best regards
Jörg Krause
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] ath10k: enable VHT for IBSS

2015-06-08 Thread Kalle Valo
Janusz Dziedzic  writes:

> Enable VHT support for IBSS.
>
> Signed-off-by: Janusz Dziedzic 

You should give background info here. For example, why did you enable
now and not earlier? How did you test it? What user space requirements
(wpasupplicant version etc) there are? What kind of throughput did you
see?

-- 
Kalle Valo
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: brcmfmac: brcmf_p2p_create_p2pdev: timeout occurred

2015-06-08 Thread Arend van Spriel

On 06/08/15 14:35, Jörg Krause wrote:

Hi,

I've trouble creating the p2p interface on a BCM43362 wifi device
running Linux kernel 4.0.4:

 # dmesg | grep brcmfmac
 [7.010870] brcmfmac: brcmf_c_preinit_dcmds: Firmware version =
 wl0: Apr 22 2013 14:50:00 version 5.90.195.89.6 FWID 01-b30a427d
 [7.158905] brcmfmac: brcmf_cfg80211_reg_notifier: not a ISO3166
 code
 [   11.007164] brcmfmac: brcmf_p2p_create_p2pdev: timeout occurred

Trying to add the p2p interface manually:

 # iw phy0 interface add p2p0 type __p2pdev
 [  372.042704] brcmfmac: brcmf_link_down: WLC_DISASSOC failed (-52)
 [  373.637263] brcmfmac: brcmf_p2p_create_p2pdev: timeout occurred
 [  373.679377] brcmfmac: brcmf_cfg80211_del_key: invalid key index (4)
 [  373.685733] brcmfmac: brcmf_cfg80211_del_key: invalid key index (5)

Any idea?


Wondering whether it is similar to what Rafal reported. Can you do a 
hexdump, ie. hexdump -C brcmfmac43362-sdio.bin | tail -30


Regards,
Arend


Best regards
Jörg Krause


--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 3/4] brcmfmac: remove watchdog reset from brcmf_pcie_buscoreprep()

2015-06-08 Thread Arend van Spriel
The watchdog reset as done in brcmf_pcie_buscoreprep() is not
sufficient. It needs to modify PCIe core registers as well
which is properly done by brcmf_pcie_reset_device() after the
chip recognition is done. So the faulty watchdog reset can be
removed as it was causing driver reload to fail and hang the
system requiring a power-cycle. Instead the call to to the
brcmf_pcie_reset_device() function is done twice in the unload.

Reviewed-by: Hante Meuleman 
Reviewed-by: Daniel (Deognyoun) Kim 
Reviewed-by: Franky (Zhenhui) Lin 
Reviewed-by: Pieter-Paul Giesberts 
Signed-off-by: Arend van Spriel 
---
 drivers/net/wireless/brcm80211/brcmfmac/pcie.c | 16 ++--
 1 file changed, 2 insertions(+), 14 deletions(-)

diff --git a/drivers/net/wireless/brcm80211/brcmfmac/pcie.c 
b/drivers/net/wireless/brcm80211/brcmfmac/pcie.c
index 37a2624..3a98c43 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/pcie.c
+++ b/drivers/net/wireless/brcm80211/brcmfmac/pcie.c
@@ -1629,20 +1629,7 @@ static void brcmf_pcie_buscore_write32(void *ctx, u32 
addr, u32 value)
 
 static int brcmf_pcie_buscoreprep(void *ctx)
 {
-   struct brcmf_pciedev_info *devinfo = (struct brcmf_pciedev_info *)ctx;
-   int err;
-
-   err = brcmf_pcie_get_resource(devinfo);
-   if (err == 0) {
-   /* Set CC watchdog to reset all the cores on the chip to bring
-* back dongle to a sane state.
-*/
-   brcmf_pcie_buscore_write32(ctx, CORE_CC_REG(SI_ENUM_BASE,
-   watchdog), 4);
-   msleep(100);
-   }
-
-   return err;
+   return brcmf_pcie_get_resource(ctx);
 }
 
 
@@ -1824,6 +1811,7 @@ brcmf_pcie_remove(struct pci_dev *pdev)
brcmf_pcie_intr_disable(devinfo);
 
brcmf_detach(&pdev->dev);
+   brcmf_pcie_reset_device(devinfo);
 
kfree(bus->bus_priv.pcie);
kfree(bus->msgbuf->flowrings);
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 4/4] brcmfmac: use debugfs_create_devm_seqfile() helper function

2015-06-08 Thread Arend van Spriel
Some time ago the function debugfs_create_devm_seqfile() was
introduced in debugfs. The caller simply needs to provide a
device pointer and read function. The function brcmf_debugfs_add_entry()
is now simply a wrapper only doing the work for CONFIG_BRCMDBG.

Reviewed-by: Hante Meuleman 
Reviewed-by: Franky (Zhenhui) Lin 
Reviewed-by: Daniel (Deognyoun) Kim 
Reviewed-by: Pieter-Paul Giesberts 
Signed-off-by: Arend van Spriel 
---
 drivers/net/wireless/brcm80211/brcmfmac/debug.c | 40 +++--
 1 file changed, 4 insertions(+), 36 deletions(-)

diff --git a/drivers/net/wireless/brcm80211/brcmfmac/debug.c 
b/drivers/net/wireless/brcm80211/brcmfmac/debug.c
index 10a9221..2d6d005 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/debug.c
+++ b/drivers/net/wireless/brcm80211/brcmfmac/debug.c
@@ -64,44 +64,12 @@ struct dentry *brcmf_debugfs_get_devdir(struct brcmf_pub 
*drvr)
return drvr->dbgfs_dir;
 }
 
-struct brcmf_debugfs_entry {
-   int (*read)(struct seq_file *seq, void *data);
-   struct brcmf_pub *drvr;
-};
-
-static int brcmf_debugfs_entry_open(struct inode *inode, struct file *f)
-{
-   struct brcmf_debugfs_entry *entry = inode->i_private;
-
-   return single_open(f, entry->read, entry->drvr->bus_if->dev);
-}
-
-static const struct file_operations brcmf_debugfs_def_ops = {
-   .owner = THIS_MODULE,
-   .open = brcmf_debugfs_entry_open,
-   .release = single_release,
-   .read = seq_read,
-   .llseek = seq_lseek
-};
-
 int brcmf_debugfs_add_entry(struct brcmf_pub *drvr, const char *fn,
int (*read_fn)(struct seq_file *seq, void *data))
 {
-   struct dentry *dentry =  drvr->dbgfs_dir;
-   struct brcmf_debugfs_entry *entry;
-
-   if (IS_ERR_OR_NULL(dentry))
-   return -ENOENT;
-
-   entry = devm_kzalloc(drvr->bus_if->dev, sizeof(*entry), GFP_KERNEL);
-   if (!entry)
-   return -ENOMEM;
-
-   entry->read = read_fn;
-   entry->drvr = drvr;
-
-   dentry = debugfs_create_file(fn, S_IRUGO, dentry, entry,
-&brcmf_debugfs_def_ops);
+   struct dentry *e;
 
-   return PTR_ERR_OR_ZERO(dentry);
+   e = debugfs_create_devm_seqfile(drvr->bus_if->dev, fn,
+   drvr->dbgfs_dir, read_fn);
+   return PTR_ERR_OR_ZERO(e);
 }
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 2/4] brcmfmac: remove chipinfo debugfs entry

2015-06-08 Thread Arend van Spriel
The information provided by chipinfo is also provided by the
revinfo debugfs entry. Removing it from debugfs.

Reviewed-by: Hante Meuleman 
Reviewed-by: Pieter-Paul Giesberts 
Signed-off-by: Arend van Spriel 
---
 drivers/net/wireless/brcm80211/brcmfmac/debug.c | 10 --
 1 file changed, 10 deletions(-)

diff --git a/drivers/net/wireless/brcm80211/brcmfmac/debug.c 
b/drivers/net/wireless/brcm80211/brcmfmac/debug.c
index 9b473d5..10a9221 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/debug.c
+++ b/drivers/net/wireless/brcm80211/brcmfmac/debug.c
@@ -41,15 +41,6 @@ void brcmf_debugfs_exit(void)
root_folder = NULL;
 }
 
-static int brcmf_debugfs_chipinfo_read(struct seq_file *seq, void *data)
-{
-   struct brcmf_bus *bus = dev_get_drvdata(seq->private);
-
-   seq_printf(seq, "chip: %x(%u) rev %u\n",
-  bus->chip, bus->chip, bus->chiprev);
-   return 0;
-}
-
 int brcmf_debugfs_attach(struct brcmf_pub *drvr)
 {
struct device *dev = drvr->bus_if->dev;
@@ -58,7 +49,6 @@ int brcmf_debugfs_attach(struct brcmf_pub *drvr)
return -ENODEV;
 
drvr->dbgfs_dir = debugfs_create_dir(dev_name(dev), root_folder);
-   brcmf_debugfs_add_entry(drvr, "chipinfo", brcmf_debugfs_chipinfo_read);
 
return PTR_ERR_OR_ZERO(drvr->dbgfs_dir);
 }
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 0/4] brcmfmac: pcie fixes and debugfs cleanup

2015-06-08 Thread Arend van Spriel
Summary of this series:

* fix module reload issue for PCIe.
* improving msgbuf protocol for PCIe devices.
* cleanup of the debugfs code.

This series is intended for v4.2 kernel and applies to the master
branch of the wireless-drivers-next repository.

Arend van Spriel (3):
  brcmfmac: remove chipinfo debugfs entry
  brcmfmac: remove watchdog reset from brcmf_pcie_buscoreprep()
  brcmfmac: use debugfs_create_devm_seqfile() helper function

Hante Meuleman (1):
  brcmfmac: Update msgbuf read pointer quicker.

 .../net/wireless/brcm80211/brcmfmac/commonring.c   | 19 
 .../net/wireless/brcm80211/brcmfmac/commonring.h   |  3 +-
 drivers/net/wireless/brcm80211/brcmfmac/debug.c| 50 ++
 drivers/net/wireless/brcm80211/brcmfmac/msgbuf.c   | 12 +-
 drivers/net/wireless/brcm80211/brcmfmac/pcie.c | 16 +--
 5 files changed, 27 insertions(+), 73 deletions(-)

-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 1/4] brcmfmac: Update msgbuf read pointer quicker.

2015-06-08 Thread Arend van Spriel
From: Hante Meuleman 

On device to host data using msgbuf the read pointer gets updated
once all data is processed. Updating this pointer more frequently
allows the firmware to add more data quicker. This will result in
slightly higher and more stable throughput on CPU bounded host
processors.

Reviewed-by: Arend Van Spriel 
Reviewed-by: Franky (Zhenhui) Lin 
Reviewed-by: Pieter-Paul Giesberts 
Signed-off-by: Hante Meuleman 
Signed-off-by: Arend van Spriel 
---
 drivers/net/wireless/brcm80211/brcmfmac/commonring.c | 19 ---
 drivers/net/wireless/brcm80211/brcmfmac/commonring.h |  3 ++-
 drivers/net/wireless/brcm80211/brcmfmac/msgbuf.c | 12 +++-
 3 files changed, 21 insertions(+), 13 deletions(-)

diff --git a/drivers/net/wireless/brcm80211/brcmfmac/commonring.c 
b/drivers/net/wireless/brcm80211/brcmfmac/commonring.c
index 26c6587..7b0e521 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/commonring.c
+++ b/drivers/net/wireless/brcm80211/brcmfmac/commonring.c
@@ -223,8 +223,6 @@ void brcmf_commonring_write_cancel(struct brcmf_commonring 
*commonring,
 void *brcmf_commonring_get_read_ptr(struct brcmf_commonring *commonring,
u16 *n_items)
 {
-   void *ret_addr;
-
if (commonring->cr_update_wptr)
commonring->cr_update_wptr(commonring->cr_ctx);
 
@@ -235,19 +233,18 @@ void *brcmf_commonring_get_read_ptr(struct 
brcmf_commonring *commonring,
if (*n_items == 0)
return NULL;
 
-   ret_addr = commonring->buf_addr +
-  (commonring->r_ptr * commonring->item_len);
-
-   commonring->r_ptr += *n_items;
-   if (commonring->r_ptr == commonring->depth)
-   commonring->r_ptr = 0;
-
-   return ret_addr;
+   return commonring->buf_addr +
+  (commonring->r_ptr * commonring->item_len);
 }
 
 
-int brcmf_commonring_read_complete(struct brcmf_commonring *commonring)
+int brcmf_commonring_read_complete(struct brcmf_commonring *commonring,
+  u16 n_items)
 {
+   commonring->r_ptr += n_items;
+   if (commonring->r_ptr == commonring->depth)
+   commonring->r_ptr = 0;
+
if (commonring->cr_write_rptr)
return commonring->cr_write_rptr(commonring->cr_ctx);
 
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/commonring.h 
b/drivers/net/wireless/brcm80211/brcmfmac/commonring.h
index 3d40401..b850336 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/commonring.h
+++ b/drivers/net/wireless/brcm80211/brcmfmac/commonring.h
@@ -62,7 +62,8 @@ void brcmf_commonring_write_cancel(struct brcmf_commonring 
*commonring,
   u16 n_items);
 void *brcmf_commonring_get_read_ptr(struct brcmf_commonring *commonring,
u16 *n_items);
-int brcmf_commonring_read_complete(struct brcmf_commonring *commonring);
+int brcmf_commonring_read_complete(struct brcmf_commonring *commonring,
+  u16 n_items);
 
 #define brcmf_commonring_n_items(commonring) (commonring->depth)
 #define brcmf_commonring_len_item(commonring) (commonring->item_len)
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/msgbuf.c 
b/drivers/net/wireless/brcm80211/brcmfmac/msgbuf.c
index 1b47de0..898c380 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/msgbuf.c
+++ b/drivers/net/wireless/brcm80211/brcmfmac/msgbuf.c
@@ -75,6 +75,8 @@
 
 #define BRCMF_MSGBUF_DELAY_TXWORKER_THRS   96
 #define BRCMF_MSGBUF_TRICKLE_TXWORKER_THRS 32
+#define BRCMF_MSGBUF_UPDATE_RX_PTR_THRS48
+
 
 struct msgbuf_common_hdr {
u8  msgtype;
@@ -1257,19 +1259,27 @@ static void brcmf_msgbuf_process_rx(struct brcmf_msgbuf 
*msgbuf,
 {
void *buf;
u16 count;
+   u16 processed;
 
 again:
buf = brcmf_commonring_get_read_ptr(commonring, &count);
if (buf == NULL)
return;
 
+   processed = 0;
while (count) {
brcmf_msgbuf_process_msgtype(msgbuf,
 buf + msgbuf->rx_dataoffset);
buf += brcmf_commonring_len_item(commonring);
+   processed++;
+   if (processed == BRCMF_MSGBUF_UPDATE_RX_PTR_THRS) {
+   brcmf_commonring_read_complete(commonring, processed);
+   processed = 0;
+   }
count--;
}
-   brcmf_commonring_read_complete(commonring);
+   if (processed)
+   brcmf_commonring_read_complete(commonring, processed);
 
if (commonring->r_ptr == 0)
goto again;
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 2/2] ath10k: print htt op_version upon driver boot

2015-06-08 Thread Michal Kazior
HTT version itself isn't sufficient to know what
HTT version given firmware blob uses. Hence print
the recently introduced HTT op version code.

While at it make the info string a bit more
consistent and clear.

Signed-off-by: Michal Kazior 
---
 drivers/net/wireless/ath/ath10k/debug.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/net/wireless/ath/ath10k/debug.c 
b/drivers/net/wireless/ath/ath10k/debug.c
index 8a4edfd36e47..edf6047997a7 100644
--- a/drivers/net/wireless/ath/ath10k/debug.c
+++ b/drivers/net/wireless/ath/ath10k/debug.c
@@ -128,7 +128,7 @@ void ath10k_print_driver_info(struct ath10k *ar)
 
ath10k_core_get_fw_features_str(ar, fw_features, sizeof(fw_features));
 
-   ath10k_info(ar, "%s (0x%08x, 0x%08x%s%s%s) fw %s api %d htt %d.%d wmi 
%d cal %s max_sta %d features %s\n",
+   ath10k_info(ar, "%s (0x%08x, 0x%08x%s%s%s) fw %s api %d htt-ver %d.%d 
wmi-op %d htt-op %d cal %s max-sta %d features %s\n",
ar->hw_params.name,
ar->target_version,
ar->chip_id,
@@ -141,6 +141,7 @@ void ath10k_print_driver_info(struct ath10k *ar)
ar->htt.target_version_major,
ar->htt.target_version_minor,
ar->wmi.op_version,
+   ar->htt.op_version,
ath10k_cal_mode_str(ar->cal_mode),
ar->max_num_stations,
fw_features);
-- 
2.1.4

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 1/2] ath10k: dump fw features during probing

2015-06-08 Thread Michal Kazior
This should help when analysing problems from
users and spot fw api blob problems easier.

Signed-off-by: Michal Kazior 
---
 drivers/net/wireless/ath/ath10k/core.c  | 45 +
 drivers/net/wireless/ath/ath10k/core.h  |  3 +++
 drivers/net/wireless/ath/ath10k/debug.c |  9 +--
 3 files changed, 55 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/ath/ath10k/core.c 
b/drivers/net/wireless/ath/ath10k/core.c
index 59496a90ad5e..efc648a973d0 100644
--- a/drivers/net/wireless/ath/ath10k/core.c
+++ b/drivers/net/wireless/ath/ath10k/core.c
@@ -103,6 +103,51 @@ static const struct ath10k_hw_params 
ath10k_hw_params_list[] = {
},
 };
 
+static const char *const ath10k_core_fw_feature_str[] = {
+   [ATH10K_FW_FEATURE_EXT_WMI_MGMT_RX] = "wmi-mgmt-rx",
+   [ATH10K_FW_FEATURE_WMI_10X] = "wmi-10.x",
+   [ATH10K_FW_FEATURE_HAS_WMI_MGMT_TX] = "has-wmi-mgmt-tx",
+   [ATH10K_FW_FEATURE_NO_P2P] = "no-p2p",
+   [ATH10K_FW_FEATURE_WMI_10_2] = "wmi-10.2",
+   [ATH10K_FW_FEATURE_MULTI_VIF_PS_SUPPORT] = "multi-vif-ps",
+   [ATH10K_FW_FEATURE_WOWLAN_SUPPORT] = "wowlan",
+   [ATH10K_FW_FEATURE_IGNORE_OTP_RESULT] = "ignore-otp",
+   [ATH10K_FW_FEATURE_NO_NWIFI_DECAP_4ADDR_PADDING] = "no-4addr-pad",
+   [ATH10K_FW_FEATURE_SUPPORTS_SKIP_CLOCK_INIT] = "skip-clock-init",
+};
+
+static unsigned int ath10k_core_get_fw_feature_str(char *buf,
+  size_t buf_len,
+  enum ath10k_fw_features feat)
+{
+   if (feat >= ARRAY_SIZE(ath10k_core_fw_feature_str) ||
+   WARN_ON(!ath10k_core_fw_feature_str[feat])) {
+   return scnprintf(buf, buf_len, "bit%d", feat);
+   } else {
+   return scnprintf(buf, buf_len, "%s",
+ath10k_core_fw_feature_str[feat]);
+   }
+}
+
+void ath10k_core_get_fw_features_str(struct ath10k *ar,
+char *buf,
+size_t buf_len)
+{
+   unsigned int len = 0;
+   int i;
+
+   for (i = 0; i < ATH10K_FW_FEATURE_COUNT; i++) {
+   if (test_bit(i, ar->fw_features)) {
+   if (len > 0)
+   len += scnprintf(buf + len, buf_len - len, ",");
+
+   len += ath10k_core_get_fw_feature_str(buf + len,
+ buf_len - len,
+ i);
+   }
+   }
+}
+
 static void ath10k_send_suspend_complete(struct ath10k *ar)
 {
ath10k_dbg(ar, ATH10K_DBG_BOOT, "boot suspend complete\n");
diff --git a/drivers/net/wireless/ath/ath10k/core.h 
b/drivers/net/wireless/ath/ath10k/core.h
index 45f9603a0868..74a6b6883ce5 100644
--- a/drivers/net/wireless/ath/ath10k/core.h
+++ b/drivers/net/wireless/ath/ath10k/core.h
@@ -758,6 +758,9 @@ struct ath10k *ath10k_core_create(size_t priv_size, struct 
device *dev,
  enum ath10k_hw_rev hw_rev,
  const struct ath10k_hif_ops *hif_ops);
 void ath10k_core_destroy(struct ath10k *ar);
+void ath10k_core_get_fw_features_str(struct ath10k *ar,
+char *buf,
+size_t max_len);
 
 int ath10k_core_start(struct ath10k *ar, enum ath10k_firmware_mode mode);
 int ath10k_wait_for_suspend(struct ath10k *ar, u32 suspend_opt);
diff --git a/drivers/net/wireless/ath/ath10k/debug.c 
b/drivers/net/wireless/ath/ath10k/debug.c
index 8fa606a9c4dd..8a4edfd36e47 100644
--- a/drivers/net/wireless/ath/ath10k/debug.c
+++ b/drivers/net/wireless/ath/ath10k/debug.c
@@ -124,7 +124,11 @@ EXPORT_SYMBOL(ath10k_info);
 
 void ath10k_print_driver_info(struct ath10k *ar)
 {
-   ath10k_info(ar, "%s (0x%08x, 0x%08x%s%s%s) fw %s api %d htt %d.%d wmi 
%d cal %s max_sta %d\n",
+   char fw_features[128];
+
+   ath10k_core_get_fw_features_str(ar, fw_features, sizeof(fw_features));
+
+   ath10k_info(ar, "%s (0x%08x, 0x%08x%s%s%s) fw %s api %d htt %d.%d wmi 
%d cal %s max_sta %d features %s\n",
ar->hw_params.name,
ar->target_version,
ar->chip_id,
@@ -138,7 +142,8 @@ void ath10k_print_driver_info(struct ath10k *ar)
ar->htt.target_version_minor,
ar->wmi.op_version,
ath10k_cal_mode_str(ar->cal_mode),
-   ar->max_num_stations);
+   ar->max_num_stations,
+   fw_features);
ath10k_info(ar, "debug %d debugfs %d tracing %d dfs %d testmode %d\n",
config_enabled(CONFIG_ATH10K_DEBUG),
config_enabled(CONFIG_ATH10K_DEBUGFS),
-- 
2.1.4

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at 

Re: [PATCH 1/2] bcma: make calls to PCI hostmode functions config-safe

2015-06-08 Thread Kalle Valo
Rafał Miłecki  writes:

> Signed-off-by: Rafał Miłecki 

Thanks, both applied manually.

And in the future please avoid empty commit logs.

-- 
Kalle Valo
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH FIX] b43: fix support for 14e4:4321 PCI dev with BCM4321 chipset

2015-06-08 Thread Kalle Valo
Rafał Miłecki  writes:

> It seems Broadcom released two devices with conflicting device id. There
> are for sure 14e4:4321 PCI devices with BCM4321 (N-PHY) chipset, they
> can be found in routers, e.g. Netgear WNR834Bv2. However, according to
> Broadcom public sources 0x4321 is also used for 5 GHz BCM4306 (G-PHY).
> It's unsure if they meant PCI device id, or "virtual" id (from SPROM).
> To distinguish these devices lets check PHY type (G vs. N).
>
> Signed-off-by: Rafał Miłecki 
> Cc:  # 3.16+

Thanks, applied manually.

-- 
Kalle Valo
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH RESEND] brcmfmac: use direct data pointer in NVRAM parser struct

2015-06-08 Thread Kalle Valo
Rafał Miłecki  writes:

> As we plan to add support for platform NVRAM we should store direct
> data pointer without the extra struct firmware layer. This will allow
> us to support other sources with the only requirement being u8 buffer.
>
> Signed-off-by: Rafał Miłecki 
> Acked-by: Arend van Spriel 

Thanks, applied manually.

-- 
Kalle Valo
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 1/4] mt7601u: unify paged and non-paged RX dma paths

2015-06-08 Thread Kalle Valo
Jakub Kicinski  writes:

> From: Jakub Kicinski 
>
> Signed-off-by: Jakub Kicinski 

Thanks, applied all four manually.

-- 
Kalle Valo
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] brcmfmac: set wiphy perm_addr to hardware MAC address

2015-06-08 Thread Kalle Valo
Rafał Miłecki  writes:

> This allows e.g. user space to use /sys/class/ieee80211/*/macaddress
>
> Signed-off-by: Rafał Miłecki 

Thanks, applied manually.

-- 
Kalle Valo
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] brcmfmac: support NVRAMs containing pci devpaths (instead of pcie)

2015-06-08 Thread Kalle Valo
Rafał Miłecki  writes:

> Recently Broadcom added support for NVRAMs with entries for multiple
> PCIe devices. One of the supported formats is based on prefixes defined
> like: devpath0=pcie/1/4/ and entries like 0:foo=bar 0:baz=qux etc.
>
> Unfortunately there are also a bit older devices using different way of
> defining prefixes, e.g. SmartRG SR400ac (2 x BCM43602) with entries:
> devpath0=pci/1/1/
> devpath1=pci/2/1
> Broadcom stated this old format will never be used/supported by brcmfmac
> but given the simplicity of this patch I'll insist on supporting it.
>
> Signed-off-by: Rafał Miłecki 

Thanks, applied manually.

-- 
Kalle Valo
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] ath10k: prevent memory leak in wmi rx ops

2015-06-08 Thread Michal Kazior
Found during code review. This was pretty much
impossible to happen but better safe than sorry.

Signed-off-by: Michal Kazior 
---
 drivers/net/wireless/ath/ath10k/wmi-tlv.c | 3 ++-
 drivers/net/wireless/ath/ath10k/wmi.c | 8 +---
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/drivers/net/wireless/ath/ath10k/wmi-tlv.c 
b/drivers/net/wireless/ath/ath10k/wmi-tlv.c
index 563fde73623c..8fdba3865c96 100644
--- a/drivers/net/wireless/ath/ath10k/wmi-tlv.c
+++ b/drivers/net/wireless/ath/ath10k/wmi-tlv.c
@@ -402,7 +402,7 @@ static void ath10k_wmi_tlv_op_rx(struct ath10k *ar, struct 
sk_buff *skb)
id = MS(__le32_to_cpu(cmd_hdr->cmd_id), WMI_CMD_HDR_CMD_ID);
 
if (skb_pull(skb, sizeof(struct wmi_cmd_hdr)) == NULL)
-   return;
+   goto out;
 
trace_ath10k_wmi_event(ar, id, skb->data, skb->len);
 
@@ -521,6 +521,7 @@ static void ath10k_wmi_tlv_op_rx(struct ath10k *ar, struct 
sk_buff *skb)
break;
}
 
+out:
dev_kfree_skb(skb);
 }
 
diff --git a/drivers/net/wireless/ath/ath10k/wmi.c 
b/drivers/net/wireless/ath/ath10k/wmi.c
index 77220b0f0e89..c2e86edfd66f 100644
--- a/drivers/net/wireless/ath/ath10k/wmi.c
+++ b/drivers/net/wireless/ath/ath10k/wmi.c
@@ -3222,7 +3222,7 @@ static void ath10k_wmi_op_rx(struct ath10k *ar, struct 
sk_buff *skb)
id = MS(__le32_to_cpu(cmd_hdr->cmd_id), WMI_CMD_HDR_CMD_ID);
 
if (skb_pull(skb, sizeof(struct wmi_cmd_hdr)) == NULL)
-   return;
+   goto out;
 
trace_ath10k_wmi_event(ar, id, skb->data, skb->len);
 
@@ -3326,6 +3326,7 @@ static void ath10k_wmi_op_rx(struct ath10k *ar, struct 
sk_buff *skb)
break;
}
 
+out:
dev_kfree_skb(skb);
 }
 
@@ -3339,7 +3340,7 @@ static void ath10k_wmi_10_1_op_rx(struct ath10k *ar, 
struct sk_buff *skb)
id = MS(__le32_to_cpu(cmd_hdr->cmd_id), WMI_CMD_HDR_CMD_ID);
 
if (skb_pull(skb, sizeof(struct wmi_cmd_hdr)) == NULL)
-   return;
+   goto out;
 
trace_ath10k_wmi_event(ar, id, skb->data, skb->len);
 
@@ -3462,7 +3463,7 @@ static void ath10k_wmi_10_2_op_rx(struct ath10k *ar, 
struct sk_buff *skb)
id = MS(__le32_to_cpu(cmd_hdr->cmd_id), WMI_CMD_HDR_CMD_ID);
 
if (skb_pull(skb, sizeof(struct wmi_cmd_hdr)) == NULL)
-   return;
+   goto out;
 
trace_ath10k_wmi_event(ar, id, skb->data, skb->len);
 
@@ -3570,6 +3571,7 @@ static void ath10k_wmi_10_2_op_rx(struct ath10k *ar, 
struct sk_buff *skb)
break;
}
 
+out:
dev_kfree_skb(skb);
 }
 
-- 
2.1.4

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: kmalloc panic

2015-06-08 Thread Johannes Berg
On Sat, 2015-06-06 at 19:10 -0400, Toan Pham wrote:
> I am experiencing a similar issue on another system (at91sam9n12) that
> uses Redpine Signal Wireless Driver 1.1.0.  I do not know the root
> cause yet,  but it may be related to the Redpine Signals driver.  Will
> update this mailing list if the problem is with the redpine driver.
> thanks

Please don't top-post.

It's almost certainly related to the redpine driver, but apparently not
using the upstream "rsi" driver ... you're in the wrong place here.

I'll note that the driver should probably be converted to cfg80211
instead of having its own wext handling (which I'd think is causing this
issue)

johannes

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


mac80211 modification

2015-06-08 Thread Duy Tai Nguyen
Hi,

I want to inject particular data into beacon frame in Android device.
I found two approaches:
1. Write loadable kernel module.
2. Modify MAC80211 subsystem
In the first approach, I found that I could not include directly
source code from MAC80211 sub system in folder /net/mac80211/. Thus, I
used the second approach, but, every time I change any line of source
code, it takes 30 minutes to build zImage  then install new kernel in
my Android device. Finally, I was stuck.
Therefore, my questions are:
1. Is it right approach to modify MAC80211 subsystem?
2. Are there any faster approach to modify MAC80211 and test source code?
3. I am curious about the way you write code and test MAC80211. Could
you explain in details?
Best Regards,
Duy Tai.

Nguyen Duy Tai
Ym: kimjiwoo741
Phone: +841676919422
Faculty of Computer Science and Engineering.
University of Technology HCMC.

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] mac80211: Fix a case of incorrect metric used when forwarding a PREQ

2015-06-08 Thread Yeoh Chun-Yeow
As mentioned in Section 13.10.9.3 Case E2, the PREQ forwarding should
use metric "as received + own metric toward transmitter of received
PREQ". So you are right.

Just MP_F_RF bit is no longer use. After replying with PREP,
forwarding the PREQ by setting the IEEE80211_PREQ_TO_FLAG in the per
target flags.

---
Chun-Yeow

On Mon, Jun 8, 2015 at 4:07 PM, Yeoh Chun-Yeow  wrote:
> Hi, Alexis Green
>
> I just take a look back on the code before implementing the Proactive
> PREQ for PREP. For the case of reply and forward (target_flags &
> MP_F_RF), the previous metric used is the one which resolved from
> mpath->metric.
>
> Refer here: 
> https://github.com/o11s/open80211s/blob/o11s-0.4.2/net/mac80211/mesh_hwmp.c
>
> But to say that, I cannpt confirm whether this is correct. The
> standard 802.11-2012 has no longer specified bit-1 MP_F_RF (Refer
> section 8.4.2.115 per target flag). So maybe it is not relevant
> anymore. We may need to remove as well.
>
> 
> Chun-Yeow
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [1/2] mwifiex: change debug dump issue since skb maybe null

2015-06-08 Thread Kalle Valo

> From: Zhaoyang Liu 
> 
> This patch fixes semantic warning for debugging data dump feature.
> Previous code is based on the assumption that skb is not null.
> New change makes sure that we already have data buffer.
> 
> Reported-by: Dan Carpenter 
> Signed-off-by: Zhaoyang Liu 
> Signed-off-by: Avinash Patil 

Thanks, 2 patches applied to wireless-drivers-next.git:

7a56c4168e44 mwifiex: change debug dump issue since skb maybe null
39d94eaa76e7 mwifiex: update current config_band info in start_ap

Kalle Valo
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: rtlwifi: rtl8192cu: Fix performance issue.

2015-06-08 Thread Kalle Valo

> After physical reconnect, the rtl8192cu chipset shows low
> transmission rates.It cause is that variable "iqk_initialized"
> do not de-initialized. So I add this code.
> 
> Signed-off-by: Taehee Yoo 
> Acked-by: Larry Finger 

Thanks, applied to wireless-drivers-next.git.

Kalle Valo
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCHv5, 01/17] mwifiex: verbose logging for association failure messages

2015-06-08 Thread Kalle Valo

> This patch adds more detailed information about association failures
>  - reason and states.
> 
> Signed-off-by: Avinash Patil 
> Signed-off-by: Cathy Luo 

Thanks, 17 patches applied to wireless-drivers-next.git:

12d111097428 mwifiex: verbose logging for association failure messages
c951a6671340 mwifiex: correct bss_type assignment
ed5cfbe6ba27 mwifiex: support AP reset after bss_stop
88af6f053ad8 mwifiex: enable 11d after bss reset
7b7166256d27 mwifiex: reset 11h active flag when chandef does not require dfs
511c8989fe5a mwifiex: disable CAC upon radar detection event
7ee38bf4edea mwifiex: add cfg80211 get_channel handler
442f6f9b49c8 mwifiex: maintain station statistic in uap mode
b21783e94e20 mwifiex: add sta_list firmware command
8baca1a34d4c mwifiex: dump station support in uap mode
8a73dd639889 mwifiex: parse power constraint IE from Tail
e4f59aca0b63 mwifiex: support downloading IEs from tail
3e6f8a4b955f mwifiex: drop block-ack action frames
c2b6680f63ff mwifiex: advertise PS ON by default support to cfg80211
debfc6008169 mwifiex: update AP WMM settings from BSS_START event
719a25e33153 mwifiex: using right tid for addressing ra_list
ec264a43029f mwifiex: do not decrease tx_pending for AMSDU packet once more

Kalle Valo
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2 0/2] staging: rtl8723au: core: endianness issues

2015-06-08 Thread Dan Carpenter
Thanks.  These look nice.

regards,
dan carpenter

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: ath9k: fix DMA stop sequence for AR9003+

2015-06-08 Thread Kalle Valo

> AR93xx and newer needs to stop rx before tx to avoid getting the DMA
> engine or MAC into a stuck state.
> This should reduce/fix the occurence of "Failed to stop Tx DMA" logspam.
> 
> Cc: sta...@vger.kernel.org
> Signed-off-by: Felix Fietkau 

Thanks, applied to wireless-drivers-next.git.

Kalle Valo
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [5/9] wl1251: drop unneeded goto

2015-06-08 Thread Kalle Valo

> From: Julia Lawall 
> 
> Delete jump to a label on the next line, when that label is not
> used elsewhere.
> 
> A simplified version of the semantic patch that makes this change is as
> follows: (http://coccinelle.lip6.fr/)
> 
> // 
> @r@
> identifier l;
> @@
> 
> -if (...) goto l;
> -l:
> // 
> 
> Signed-off-by: Julia Lawall 

Thanks, applied to wireless-drivers-next.git.

Kalle Valo
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH FIX] b43: fix support for 14e4:4321 PCI dev with BCM4321 chipset

2015-06-08 Thread Kalle Valo
Rafał Miłecki  writes:

> It seems Broadcom released two devices with conflicting device id. There
> are for sure 14e4:4321 PCI devices with BCM4321 (N-PHY) chipset, they
> can be found in routers, e.g. Netgear WNR834Bv2. However, according to
> Broadcom public sources 0x4321 is also used for 5 GHz BCM4306 (G-PHY).
> It's unsure if they meant PCI device id, or "virtual" id (from SPROM).
> To distinguish these devices lets check PHY type (G vs. N).
>
> Signed-off-by: Rafał Miłecki 
> Cc:  # 3.16+
> ---
> Kalle: I'm aware it's quite late for a 4.1 fix, this bug was reported just
> today. I guess you can just take it for wireless-drivers-next and let stable
> guys handle it.

Yeah, I don't think this is critical enough to send this to 4.1. So
let's push this via wireless-drivers-next.

-- 
Kalle Valo
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: wl18xx: wlconf kernel compatibility

2015-06-08 Thread Yegor Yefremov
Hi Yaniv,

On Sun, Jun 7, 2015 at 9:30 AM, Machani, Yaniv  wrote:
> Hi,
> As the configuration file is HW depended it should be created per platform,
> we have set this wiki page and script to help with initial setup :
> http://processors.wiki.ti.com/index.php/Open_Source_Wireless_Connectivity_wlconf
>
> We have also pushed a patch that makes sure the driver will not crash if 
> there is a file size mismatch,
> and will fall back to default.

What about following proposal. I'm learning libxmlrpc now. It has
following struct *xmlrpc_server_abyss_parms*
(http://xmlrpc-c.sourceforge.net/doc/libxmlrpc_server_abyss.html#server_abyss_parameters).
If new parameter will be added, it is done via appending this to the
bottom of the structure. This way old structure is still preserved.

The user of this library must specify till what parameter this
structure should be used (parmSize parameter):

oid
xmlrpc_server_abyss(xmlrpc_env *const envP,
xmlrpc_server_abyss_parms * const parmP,
unsigned int const parmSize);

This will be achieved via XMLRPC_APSIZE(log_file_name), i.e. macro
with structure field name. This way old programs still can work with
newer library.

This approach could be taken for wl18xx-conf.bin. Driver calculates
the size of known parameters and conf file size and as long as the
size of wl18xx-conf.bin is not smaller than known size, the driver can
use it.

What do you think about it?

Yegor

>> -Original Message-
>> From: Yegor Yefremov [mailto:yegorsli...@googlemail.com]
>> Sent: Saturday, June 06, 2015 6:19 PM
>> To: Kalle Valo
>> Cc: linux-wireless@vger.kernel.org; Machani, Yaniv; Eliad Peller; Marc 
>> Kleine-
>> Budde
>> Subject: Re: wl18xx: wlconf kernel compatibility
>>
>> Hi Kalle,
>>
>> On Sat, Jun 6, 2015 at 3:27 PM, Kalle Valo  wrote:
>> > Yegor Yefremov  writes:
>> >
>> >> How do I know, which wlconf version is compatible with which kernel
>> >> version? I have following problem:
>> >>
>> >> I have *.INI file for my particular WLAN chip. This file will be used
>> >> to produce wl18xx-conf.bin. The size of this file will be check
>> >> during device initialization. Depending on which kernel version is
>> >> used the size of the required file differs. For example kernel 3.18
>> >> requires wl18xx-conf.bin to have 1221 bytes, 4.1 expects 1226 bytes.
>> >> Recent wlconf (git://git.ti.com/wilink8-wlan/18xx-ti-utils.git)
>> >> produces 1229 bytes files.
>> >>
>> >> How should I determine correct wlconf version?
>> >
>> > I also complained about something along these lines earlier, this is
>> > not how upstream drivers are supposed to work. Users should not be
>> > forced to find correct files from somewhere, instead everything should
>> > just work out of box.
>> >
>> > Can anyone help Yegor to solve his problem? But in the long run wl18xx
>> > really should manage this better.
>>
>> I could solve the problem, though for the future it should be clear, what 
>> wlconf
>> version to use.
>>
>> See my post here:
>> http://e2e.ti.com/support/wireless_connectivity/f/307/p/426229/1523235#152
>> 3235
>>
>> Yegor
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] mac80211: Fix a case of incorrect metric used when forwarding a PREQ

2015-06-08 Thread Yeoh Chun-Yeow
Hi, Alexis Green

I just take a look back on the code before implementing the Proactive
PREQ for PREP. For the case of reply and forward (target_flags &
MP_F_RF), the previous metric used is the one which resolved from
mpath->metric.

Refer here: 
https://github.com/o11s/open80211s/blob/o11s-0.4.2/net/mac80211/mesh_hwmp.c

But to say that, I cannpt confirm whether this is correct. The
standard 802.11-2012 has no longer specified bit-1 MP_F_RF (Refer
section 8.4.2.115 per target flag). So maybe it is not relevant
anymore. We may need to remove as well.


Chun-Yeow
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [WEXT]: multiple calls for SIOCGIWSTATS return same value

2015-06-08 Thread Johannes Berg
On Sat, 2015-06-06 at 20:37 -0600, Gerrit Renker wrote:
> A problem has been found in recent kernels where multiple
> calls using SIOCGIWSTATS return the same, identical value.

Which "value"? I believe these return a number of different values. What
are the returned values? Are they perhaps just 0?

Is the application a 32-bit application running on a 64-bit machine
perhaps? There have been bugs in that area in the past, though I don't
believe anything changed between 3.19 and 4.0. In fact, in wext nothing
really changed at all - only some internal maintenance (commit
319090bf6c75e3ad42a8c74973be5e78ae4f948f)

> This behaviour is observable both using 'iwconfig '
> and wavemon info screen, where it was reported in [1].
> 
> It looks as if this is a WEXT issue, since on the same 
> system multiple 'iw dev  station dump' calls
> return different signal level values.
> 
> I can confirm the behaviour on davem 4.1.0-rc6 net tree
> at commit c46a024ea5, it has been reported on [1] for 
> fedora 21 with kernel-4.0.4-201/2 as well.
> 
> That report also stated that the behaviour does not occur
> on kernel-3.19.7-200. Have not had time to bisect yet.
> 
> Thanks for any hints that can help resolve this.

I have no idea, sorry.

johannes

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 1/4] mt7601u: unify paged and non-paged RX dma paths

2015-06-08 Thread Kalle Valo
Jakub Kicinski  writes:

> From: Jakub Kicinski 
>
> Signed-off-by: Jakub Kicinski 

No need to change anything now but in the future please avoid empty
commit logs. And at some point I'll start automatically rejecting
patches with empty commit logs so better get used to this already now.

-- 
Kalle Valo
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html