firefly-linux-kernel-4.4.55.git
9 years agomwifiex: fix version display problem on big endian platforms
Amitkumar Karwar [Fri, 7 Nov 2014 10:14:52 +0000 (02:14 -0800)]
mwifiex: fix version display problem on big endian platforms

It's been observed that wrong firmware version (ex. 66.14.96.p9
instead of 14.66.9.p96) is displayed on big endian platforms.

The problem is fixed here.

Reported-by: Daniel Mosquera <daniel.mosquera@ctag.com>
Tested-by: Daniel Mosquera <daniel.mosquera@ctag.com>
Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agoath9k_htc: add spectral scan debug interface
Oleksij Rempel [Thu, 6 Nov 2014 07:53:38 +0000 (08:53 +0100)]
ath9k_htc: add spectral scan debug interface

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agoath9k_htc: process rx spectral packets
Oleksij Rempel [Thu, 6 Nov 2014 07:53:37 +0000 (08:53 +0100)]
ath9k_htc: process rx spectral packets

use code provided by Ashish Patro <patro@cs.wisc.edu>

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agoath9k_htc: trigger spectral scan on set_channel
Oleksij Rempel [Thu, 6 Nov 2014 07:53:36 +0000 (08:53 +0100)]
ath9k_htc: trigger spectral scan on set_channel

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agoath9k_htc: set initial spec_config values
Oleksij Rempel [Thu, 6 Nov 2014 07:53:35 +0000 (08:53 +0100)]
ath9k_htc: set initial spec_config values

use values provided by Ashish Patro <patro@cs.wisc.edu>

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agoath9k_htc: add struct ath_spec_scan_priv to ath9k_htc_priv
Oleksij Rempel [Thu, 6 Nov 2014 07:53:34 +0000 (08:53 +0100)]
ath9k_htc: add struct ath_spec_scan_priv to ath9k_htc_priv

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agoath9k_htc: add ath_ps_ops bindings
Oleksij Rempel [Thu, 6 Nov 2014 07:53:33 +0000 (08:53 +0100)]
ath9k_htc: add ath_ps_ops bindings

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agoath9k_htc: fix rs_datalen conversation
Oleksij Rempel [Thu, 6 Nov 2014 07:53:32 +0000 (08:53 +0100)]
ath9k_htc: fix rs_datalen conversation

For some reason it didn't coused obvious problems.

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agoath9k: For AR9271 chipsets, set count = 0 for endless samples.
Oleksij Rempel [Thu, 6 Nov 2014 07:53:31 +0000 (08:53 +0100)]
ath9k: For AR9271 chipsets, set count = 0 for endless samples.

not sure why.
Initially provided by Ashish Patro <patro@cs.wisc.edu>

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agoath9k: move spectral.* to common-spectral.*
Oleksij Rempel [Thu, 6 Nov 2014 07:53:30 +0000 (08:53 +0100)]
ath9k: move spectral.* to common-spectral.*

and rename exports from ath9k_spectral_* to ath9k_cmn_spectral_*

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agoath9k: move ath9k_spectral_scan_ from main.c to spectral.c
Oleksij Rempel [Thu, 6 Nov 2014 07:53:29 +0000 (08:53 +0100)]
ath9k: move ath9k_spectral_scan_ from main.c to spectral.c

Now we should be ready to make this code common.

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agoath9k: make ath9k_spectral_scan_ do not depend on ath_softc
Oleksij Rempel [Thu, 6 Nov 2014 07:53:28 +0000 (08:53 +0100)]
ath9k: make ath9k_spectral_scan_ do not depend on ath_softc

last preparation before moving ath9k_spectral_scan_ to spectral.c

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agoath9k: use ath_common instead of ieee80211_hw in ath9k_spectral_scan_
Oleksij Rempel [Thu, 6 Nov 2014 07:53:27 +0000 (08:53 +0100)]
ath9k: use ath_common instead of ieee80211_hw in ath9k_spectral_scan_

we don't have here any ieee80211_hw dependencies any way.

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agoath9k: use ath_ps_ops in ath9k_spectral_scan_
Oleksij Rempel [Thu, 6 Nov 2014 07:53:26 +0000 (08:53 +0100)]
ath9k: use ath_ps_ops in ath9k_spectral_scan_

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agoath9k: add ath_ps_ops bindings
Oleksij Rempel [Thu, 6 Nov 2014 07:53:25 +0000 (08:53 +0100)]
ath9k: add ath_ps_ops bindings

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agoath: add struct ath_ps_ops
Oleksij Rempel [Thu, 6 Nov 2014 07:53:24 +0000 (08:53 +0100)]
ath: add struct ath_ps_ops

we will need it to make common code

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agoath9k: remove all struct ath_softc dependencies from spectral code
Oleksij Rempel [Thu, 6 Nov 2014 07:53:23 +0000 (08:53 +0100)]
ath9k: remove all struct ath_softc dependencies from spectral code

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agoath9k: add ath_hw to ath_spec_scan_priv
Oleksij Rempel [Thu, 6 Nov 2014 07:53:22 +0000 (08:53 +0100)]
ath9k: add ath_hw to ath_spec_scan_priv

spectral code mostly depends on ath_hw, not on ath_softc

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agoath9k: use struct dentry by ath9k_spectral_init_debug
Oleksij Rempel [Thu, 6 Nov 2014 07:53:21 +0000 (08:53 +0100)]
ath9k: use struct dentry by ath9k_spectral_init_debug

this will alow us to make ath_softc independent code.

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agoath9k: move spec_config to ath_spec_scan_priv
Oleksij Rempel [Thu, 6 Nov 2014 07:53:20 +0000 (08:53 +0100)]
ath9k: move spec_config to ath_spec_scan_priv

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agoath9k: move spectral_mode to ath_spec_scan_priv
Oleksij Rempel [Thu, 6 Nov 2014 07:53:19 +0000 (08:53 +0100)]
ath9k: move spectral_mode to ath_spec_scan_priv

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agoath9k: add struct ath_spec_scan_priv
Oleksij Rempel [Thu, 6 Nov 2014 07:53:18 +0000 (08:53 +0100)]
ath9k: add struct ath_spec_scan_priv

and move rfs_chan_spec_scan to this struct. We will need it
for common spectral scan code.

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agomwifiex: fix warning while starting BSS
Avinash Patil [Wed, 5 Nov 2014 11:34:31 +0000 (17:04 +0530)]
mwifiex: fix warning while starting BSS

We see this warning while starting mwifiex AP:
Unsupported RX-STBC, default to 2x2

This was happening because of wrong offset while copying HT
capabilities from BSS configuration of start_ap handler.

Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Avinash Patil <patila@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agomwifiex: do not setup AMPDU/AMSDU with broadcast receiver
Avinash Patil [Wed, 5 Nov 2014 11:34:30 +0000 (17:04 +0530)]
mwifiex: do not setup AMPDU/AMSDU with broadcast receiver

It is observed that device sometimes sends BA setup requests for
broadcast mac address.
This patch adds a check to avoid checking availability of
AMPDU/AMSDU streams for broadcast mac address.

Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Avinash Patil <patila@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agomwifiex: fix out of memory issue observed for USB chipsets
Amitkumar Karwar [Wed, 5 Nov 2014 11:34:29 +0000 (17:04 +0530)]
mwifiex: fix out of memory issue observed for USB chipsets

On some platforms, system goes out of memory during heavy
Rx traffic with our USB chipsets.

In case of SDIO/PCIe, after receiving 50 packets in Rx queue
we stop processing interrupts till packets pending fall below
low threshold i.e 20. We don't have similar logic for USB,
so if host platform is slow, we would hit a case where firmware
keeps on pushing packets at high speed than driver/kernel can
process.

We will stop submitting URBs for Rx data when pending packet
count reaches high threshold and restart them when enough
packets are consumed to solve the problem.

BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=85071
Reported-by: Marek Belisko <marek.belisko@gmail.com>
Tested-by: Marek Belisko <marek.belisko@gmail.com>
Signed-off-by: Avinash Patil <patila@marvell.com>
Signed-off-by: Cathy Luo <cluo@marvell.com>
Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agomwifiex: remove data_complete handler
Avinash Patil [Wed, 5 Nov 2014 11:34:28 +0000 (17:04 +0530)]
mwifiex: remove data_complete handler

This patch removes redundant data complete handler.

Signed-off-by: Avinash Patil <patila@marvell.com>
Signed-off-by: Cathy Luo <cluo@marvell.com>
Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agomwifiex: rx workqueue support for USB interface
Avinash Patil [Wed, 5 Nov 2014 11:34:27 +0000 (17:04 +0530)]
mwifiex: rx workqueue support for USB interface

This patch adds RX workqueue support for USB interfaces.
Currently rx_pending is applicable for cmd/events and Rx
data in USB interface. Let's use it only for Rx data.

Signed-off-by: Avinash Patil <patila@marvell.com>
Signed-off-by: Cathy Luo <cluo@marvell.com>
Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agoath9k: add support for reporting tx power to mac80211
Felix Fietkau [Tue, 4 Nov 2014 15:56:57 +0000 (16:56 +0100)]
ath9k: add support for reporting tx power to mac80211

Track it per channel context instead of in the softc

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agobcma: get IRQ numbers from dt
Hauke Mehrtens [Sat, 1 Nov 2014 15:54:56 +0000 (16:54 +0100)]
bcma: get IRQ numbers from dt

It is not possible to auto detect the irq numbers used by the cores on
an arm SoC. If bcma was registered with device tree it will search for
some device tree nodes with the irq number and add it to the core
configuration.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agobcma: make it possible to specify a IRQ num in bcma_core_irq()
Hauke Mehrtens [Sat, 1 Nov 2014 15:54:55 +0000 (16:54 +0100)]
bcma: make it possible to specify a IRQ num in bcma_core_irq()

This moves bcma_core_irq() to main.c and add a extra parameter with a
number so that we can return different irq number for devices with more
than one.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agoMerge branch 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetoot...
John W. Linville [Tue, 11 Nov 2014 21:30:48 +0000 (16:30 -0500)]
Merge branch 'for-upstream' of git://git./linux/kernel/git/bluetooth/bluetooth-next

9 years ago6lowpan: move skb_free from error paths in decompression
Martin Townsend [Thu, 6 Nov 2014 19:15:13 +0000 (19:15 +0000)]
6lowpan: move skb_free from error paths in decompression

Currently we ensure that the skb is freed on every error path in IPHC
decompression which makes it easy to introduce skb leaks.  By centralising
the skb_free into the receive function it makes future decompression routines
easier to maintain.  It does come at the expense of ensuring that the skb
passed into the decompression routine must not be copied.

Signed-off-by: Martin Townsend <mtownsend1973@gmail.com>
Acked-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
Acked-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agoBluetooth: Sort switch cases by opcode's numeric value
Kuba Pawlak [Thu, 6 Nov 2014 18:36:53 +0000 (19:36 +0100)]
Bluetooth: Sort switch cases by opcode's numeric value

Opcodes in switch/case in hci_cmd_status_evt are not sorted
by value. This patch restores proper ordering.

Signed-off-by: Kuba Pawlak <kubax.t.pawlak@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agoBluetooth: Clear role switch pending flag
Kuba Pawlak [Thu, 6 Nov 2014 18:36:52 +0000 (19:36 +0100)]
Bluetooth: Clear role switch pending flag

If role switch was rejected by the controller and HCI Event: Command Status
returned with status "Command Disallowed" (0x0C) the flag
HCI_CONN_RSWITCH_PEND remains set. No further role switches are
possible as this flag prevents us from sending any new HCI Switch Role
requests and the only way to clear it is to receive a valid
HCI Event Switch Role.

This patch clears the flag if command was rejected.

2013-01-01 00:03:44.209913 < HCI Command: Switch Role (0x02|0x000b) plen 7
    bdaddr BC:C6:DB:C4:6F:79 role 0x00
    Role: Master
2013-01-01 00:03:44.210867 > HCI Event: Command Status (0x0f) plen 4
    Switch Role (0x02|0x000b) status 0x0c ncmd 1
    Error: Command Disallowed

Signed-off-by: Kuba Pawlak <kubax.t.pawlak@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agoat86rf230: fix simple_return.cocci warnings
Fengguang Wu [Thu, 6 Nov 2014 07:31:57 +0000 (15:31 +0800)]
at86rf230: fix simple_return.cocci warnings

drivers/net/ieee802154/at86rf230.c:1365:1-3: WARNING: end returns can be simpified

 Simplify a trivial if-return sequence.  Possibly combine with a
 preceding function call.
Generated by: scripts/coccinelle/misc/simple_return.cocci

Signed-off-by: Fengguang Wu <fengguang.wu@intel.com>
Acked-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agomac802154: fix typo promisuous to promiscuous
Alexander Aring [Wed, 5 Nov 2014 19:51:29 +0000 (20:51 +0100)]
mac802154: fix typo promisuous to promiscuous

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agomac802154: use IEEE802154_EXTENDED_ADDR_LEN
Alexander Aring [Wed, 5 Nov 2014 19:51:28 +0000 (20:51 +0100)]
mac802154: use IEEE802154_EXTENDED_ADDR_LEN

This patch removes the af_ieee802154 defines and use the
IEEE802154_EXTENDED_ADDR_LEN. We should do this everywhere in the
802.15.4 subsystem because af_ieee802154 should be normally an uapi
header.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agoat86rf230: add force slotted operation bit
Alexander Aring [Wed, 5 Nov 2014 19:51:27 +0000 (20:51 +0100)]
at86rf230: add force slotted operation bit

This patch adds a force setting of slotted operation bit. The atben
chips sometimes set these bit. The reason is unknown. Nevertheless we
don't support slotted operation so we set this bit now force while
probing.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agoat86rf230: generate random perm extended address
Alexander Aring [Wed, 5 Nov 2014 19:51:26 +0000 (20:51 +0100)]
at86rf230: generate random perm extended address

This patch adds support for a random generated perm extended address for
the at86rf230 driver.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agomac802154: add support for perm_extended_addr
Alexander Aring [Wed, 5 Nov 2014 19:51:25 +0000 (20:51 +0100)]
mac802154: add support for perm_extended_addr

This patch adding support for a perm extended address. This is useful
when a device supports an eeprom with a programmed static extended address.
If a device doesn't support such eeprom or serial registers then the
driver should generate a random extended address.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agomac802154: cleanup ieee802154_netdev_to_extended_addr
Alexander Aring [Wed, 5 Nov 2014 19:51:24 +0000 (20:51 +0100)]
mac802154: cleanup ieee802154_netdev_to_extended_addr

This patch cleanups the ieee802154_be64_to_le64 to have a similar
function like ieee802154_le64_to_be64 only with switched source and
destionation types.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agomac802154: add ieee802154_le64_to_be64
Alexander Aring [Wed, 5 Nov 2014 19:51:23 +0000 (20:51 +0100)]
mac802154: add ieee802154_le64_to_be64

This patch adds a new function to convert a le64 to a be64. This is
useful to translate an extended address to a netdev dev_addr.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agoieee802154: add ieee802154_random_extended_addr
Alexander Aring [Wed, 5 Nov 2014 19:51:22 +0000 (20:51 +0100)]
ieee802154: add ieee802154_random_extended_addr

This patch adds a new function to generate a random IEEE 802.15.4
extended address.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agoieee802154: add IEEE802154_EXTENDED_ADDR_LEN
Alexander Aring [Wed, 5 Nov 2014 19:51:21 +0000 (20:51 +0100)]
ieee802154: add IEEE802154_EXTENDED_ADDR_LEN

This patch adds a new define for getting the length of an extended
address.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agomac802154: add ieee802154_vif struct
Alexander Aring [Wed, 5 Nov 2014 19:51:20 +0000 (20:51 +0100)]
mac802154: add ieee802154_vif struct

This patch adds an ieee802154_vif similar like the ieee80211_vif which
holds the interface type and maybe further more attributes like the
ieee80211_vif structure.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Cc: Varka Bhadram <varkabhadram@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agomac802154: add default interface registration
Alexander Aring [Wed, 5 Nov 2014 19:51:19 +0000 (20:51 +0100)]
mac802154: add default interface registration

This patch adds a default interface registration for a wpan interface
type. Currently the 802.15.4 subsystem need to call userspace tools to
add an interface. This patch is like mac80211 handling for registration
a station interface type by default.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agoieee802154: remove mlme get_phy callback
Alexander Aring [Wed, 5 Nov 2014 19:51:18 +0000 (20:51 +0100)]
ieee802154: remove mlme get_phy callback

This patch removes the get_phy callback from mlme ops structure. Instead
we doing a dereference via ieee802154_ptr dev pointer. For backwards
compatibility we need to run get_device after dereference wpan_phy via
ieee802154_ptr.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agoieee802154: rework interface registration
Alexander Aring [Wed, 5 Nov 2014 19:51:17 +0000 (20:51 +0100)]
ieee802154: rework interface registration

This patch meld mac802154_netdev_register into ieee802154_if_add
function. Also we have now only one alloc_netdev call with one interface
setup routine "ieee802154_if_setup" instead two different one for each
interface type. This patch checks via runtime the interface type and do
different handling now. Additional we add the wpan_dev struct in
ieee802154_sub_if_data and set the new ieee802154_ptr while netdev
registration. This behaviour is very similar the mac80211 netdev
registration functionality.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agomac802154: move dev_hold out of ieee802154_if_add
Alexander Aring [Wed, 5 Nov 2014 19:51:16 +0000 (20:51 +0100)]
mac802154: move dev_hold out of ieee802154_if_add

This patch moves the dev_hold call inside of nl-phy ieee802154_add_iface
function. The ieee802154_add_iface is the only one function which use the
ieee802154_if_add function and contains the corresponding dev_put call.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agomac802154: move interface add handling in iface
Alexander Aring [Wed, 5 Nov 2014 19:51:15 +0000 (20:51 +0100)]
mac802154: move interface add handling in iface

This patch moves and renames the mac802154_add_iface and
mac802154_netdev_register functions into iface.c. The function
mac802154_add_iface is renamed to ieee802154_if_add which is a similar naming
convention like mac80211.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agomac802154: move interface del handling in iface
Alexander Aring [Wed, 5 Nov 2014 19:51:14 +0000 (20:51 +0100)]
mac802154: move interface del handling in iface

This patch moves and rename the mac802154_del_iface function into
iface.c and rename the function to ieee802154_if_remove which is a similar
naming convention like mac80211.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agoieee802154: remove nl802154 unused functions
Alexander Aring [Wed, 5 Nov 2014 19:51:13 +0000 (20:51 +0100)]
ieee802154: remove nl802154 unused functions

The include/net/nl802154.h file contains a lot of prototypes which are
not used inside of ieee802154 subsystem. This patch removes this file
and make the only one used prototype "ieee802154_nl_start_confirm" as
static declaration in ieee802154/nl-mac.c

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agoieee802154: rework wpan_phy index assignment
Alexander Aring [Wed, 5 Nov 2014 19:51:12 +0000 (20:51 +0100)]
ieee802154: rework wpan_phy index assignment

This patch reworks the wpan_phy index incrementation. It's now similar
like wireless wiphy index incrementation. We move the wpan_phy index
attribute inside of cfg802154_registered_device and use atomic
operations instead locking mechanism via wpan_phy_mutex.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agoMerge tag 'mac80211-next-for-john-2014-11-04' of git://git.kernel.org/pub/scm/linux...
John W. Linville [Tue, 4 Nov 2014 21:18:12 +0000 (16:18 -0500)]
Merge tag 'mac80211-next-for-john-2014-11-04' of git://git./linux/kernel/git/jberg/mac80211-next

Johannes Berg <johannes@sipsolutions.net> says:

"This relatively large batch of changes is comprised of the
following:
 * large mac80211-hwsim changes from Ben, Jukka and a bit myself
 * OCB/WAVE/11p support from Rostislav on behalf of the Czech Technical
   University in Prague and Volkswagen Group Research
 * minstrel VHT work from Karl
 * more CSA work from Luca
 * WMM admission control support in mac80211 (myself)
 * various smaller fixes, spelling corrections, and minor API additions"

Conflicts:
drivers/net/wireless/ath/wil6210/cfg80211.c

Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agoieee802154: || vs && in ieee802154_is_valid_extended_addr()
Dan Carpenter [Tue, 4 Nov 2014 08:55:09 +0000 (11:55 +0300)]
ieee802154: || vs && in ieee802154_is_valid_extended_addr()

The ieee802154_is_valid_extended_addr() always returns true because
there is a typo.  The || should be &&.  Neither 0x0000000000000000ULL
nor 0xffffffffffffffffULL are valid addresses.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Acked-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years ago6lowpan: fix udp header compression when using raw sockets
Simon Vincent [Tue, 4 Nov 2014 15:29:51 +0000 (15:29 +0000)]
6lowpan: fix udp header compression when using raw sockets

If you use RAW sockets the transport header offset is not set by the
ipv6 stack so when we get to the udp header compression it does not
compress the right part of the packet.

This patch adds a check for this scenario and sets the transport
header offset.

Signed-off-by: Simon Vincent <simon.vincent@xsilon.com>
Acked-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agomac80211: replace restart_complete() with reconfig_complete()
Eliad Peller [Tue, 4 Nov 2014 09:43:54 +0000 (11:43 +0200)]
mac80211: replace restart_complete() with reconfig_complete()

Drivers might want to know also when mac80211 has
completed reconfiguring after resume (e.g. in order
to know when frames can be passed to mac80211).

Rename restart_complete() to a more-generic reconfig_complete(),
and add a new enum to indicate the reconfiguration type.

Update the current users with the new prototype.

Signed-off-by: Eliad Peller <eliadx.peller@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
9 years agomac80211: increase U-APSD max service period length
Andrei Otcheretianski [Tue, 4 Nov 2014 09:33:04 +0000 (11:33 +0200)]
mac80211: increase U-APSD max service period length

Deliver up to 128 frames during service period instead of 8 if
unlimited is specified by the client during association.
8 was just an arbitrary value; so is 128 since unlimited can
be any number.

However for large traffic bursts, increasing this value looks
reasonable. Also, it seems that a few certification tests
expect more frames to be delivered during SP.

Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
9 years agomac80211: handle RIC data element in reassociation request
Johannes Berg [Mon, 27 Oct 2014 11:03:19 +0000 (12:03 +0100)]
mac80211: handle RIC data element in reassociation request

When the RIC data element (RDE) is included in the IEs coming
from userspace for an association request, its handling is
currently broken as any IEs that are contained within it would
be split off from it and inserted again after all the IEs that
mac80211 generates (e.g. HT, VHT.)

To fix this, treat the RIC element specially, and stop after
it only when we find something that doesn't actually belong to
it. This assumes userspace is actually correctly building it,
directly after the fast BSS transition IE and before all the
others like extended capabilities.

This leaves as a potential problem the case where userspace is
building the following IEs:

[RDE] [vendor resource description] [vendor non-resource IE]

In this case, we'd erroneously consider all three IEs to be
part of the RIC data together, and not split them between the
two vendor IEs. Unfortunately, it isn't easily possible to
distinguish vendor IEs, so this isn't easy to fix. Luckily,
this case is rare as normally wpa_supplicant will include an
extended capabilities IE in the IEs, and that certainly will
break the two vendor IEs apart correctly.

Reviewed-by: Eliad Peller <eliad@wizery.com>
Reviewed-by: Beni Lev <beni.lev@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
9 years agomac80211: 802.11p OCB mode support
Rostislav Lisovy [Mon, 3 Nov 2014 09:33:19 +0000 (10:33 +0100)]
mac80211: 802.11p OCB mode support

This patch adds 802.11p OCB (Outside the Context of a BSS) mode
support.

When communicating in OCB mode a mandatory wildcard BSSID
(48 '1' bits) is used.

The EDCA parameters handling function was changed to support
802.11p specific values.

The insertion of a newly discovered STAs is done in the similar way
as in the IBSS mode -- through the deferred insertion.

The OCB mode uses a periodic 'housekeeping task' for expiration of
disconnected STAs (in the similar manner as in the MESH mode).

New Kconfig option for verbose OCB debugging outputs is added.

Signed-off-by: Rostislav Lisovy <rostislav.lisovy@fel.cvut.cz>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
9 years agocfg80211: 802.11p OCB mode handling
Rostislav Lisovy [Mon, 3 Nov 2014 09:33:18 +0000 (10:33 +0100)]
cfg80211: 802.11p OCB mode handling

This patch adds new iface type (NL80211_IFTYPE_OCB) representing
the OCB (Outside the Context of a BSS) mode.
When establishing a connection to the network a cfg80211_join_ocb
function is called (particular nl80211_command is added as well).
A mandatory parameters during the ocb_join operation are 'center
frequency' and 'channel width (5/10 MHz)'.

Changes done in mac80211 are minimal possible required to avoid
many warnings (warning: enumeration value 'NL80211_IFTYPE_OCB'
not handled in switch) during compilation. Full functionality
(where needed) is added in the following patch.

Signed-off-by: Rostislav Lisovy <rostislav.lisovy@fel.cvut.cz>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
9 years agomac80211: add support for driver tx power reporting
Felix Fietkau [Sat, 25 Oct 2014 22:32:53 +0000 (00:32 +0200)]
mac80211: add support for driver tx power reporting

The configured tx power is often limited by hardware capabilities,
channel settings, antenna configuration, etc.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
[fix tracing compilation]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
9 years agoieee80211: add "max length of AMPDU" enum for VHT
Eran Harary [Mon, 3 Nov 2014 18:06:47 +0000 (20:06 +0200)]
ieee80211: add "max length of AMPDU" enum for VHT

Maximum length of AMPDU that an STA can receive in VHT.
length = 2 ^ (13 + max_ampdu_length_exp) - 1.

Signed-off-by: Eran Harary <eran.harary@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
9 years agoBluetooth: Fix sparse warnings in RFCOMM
Johan Hedberg [Tue, 4 Nov 2014 06:45:45 +0000 (08:45 +0200)]
Bluetooth: Fix sparse warnings in RFCOMM

This patch fixes the following sparse warnings in rfcomm/core.c:

net/bluetooth/rfcomm/core.c:391:16: warning: dubious: x | !y
net/bluetooth/rfcomm/core.c:546:24: warning: dubious: x | !y

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agonetdevice: add ieee802154_ptr to net_device
Alexander Aring [Sun, 2 Nov 2014 05:44:54 +0000 (06:44 +0100)]
netdevice: add ieee802154_ptr to net_device

This patch adds an ieee802154_ptr to the net_device structure.
Furthermore the 802.15.4 subsystem will introduce a nl802154 framework
which is similar like the nl80211 framework and a wpan_dev structure.
The wpan_dev structure will hold additional net_device attributes like
address options which are 802.15.4 specific. In the upcoming nl802154
implementation we will introduce a NL802154_FLAG_NEED_WPAN_DEV like
NL80211_FLAG_NEED_WDEV. For this flag an ieee802154_ptr in net_device is
needed. Additional we can access the wpan_dev attributes in upper layers
like IEEE 802.15.4 6LoWPAN easily. Current solution is a complicated
callback interface and getting these values over subif data structure
in mac802154.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Acked-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
10 years agoBluetooth: Fix invalid response for 'Start Discovery' command
Szymon Janc [Mon, 3 Nov 2014 13:20:56 +0000 (14:20 +0100)]
Bluetooth: Fix invalid response for 'Start Discovery' command

According to Management Interface API 'Start Discovery' command should
generate a Command Complete event on failure. Currently kernel is
sending Command Status on early errors. This results in userspace
ignoring such event due to invalid size.

bluetoothd[28499]: src/adapter.c:trigger_start_discovery()
bluetoothd[28499]: src/adapter.c:cancel_passive_scanning()
bluetoothd[28499]: src/adapter.c:start_discovery_timeout()
bluetoothd[28499]: src/adapter.c:start_discovery_complete() status 0x0a
bluetoothd[28499]: Wrong size of start discovery return parameters

Reported-by: Jukka Taimisto <jtt@codenomicon.com>
Signed-off-by: Szymon Janc <szymon.janc@tieto.com>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
10 years agoBluetooth: Add hci_conn_lookup_type() helper function
Marcel Holtmann [Mon, 3 Nov 2014 04:16:08 +0000 (05:16 +0100)]
Bluetooth: Add hci_conn_lookup_type() helper function

Some drivers require knowledge of what connection handle is assigned
to what connection link type (ACL or SCO/eSCO). Instead of having each
driver implement connection tracking, provide a simple helper function
for lookup of the link type.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
10 years agoBluetooth: btusb: Add internal callback for USB bulk rx data
Marcel Holtmann [Mon, 3 Nov 2014 04:16:07 +0000 (05:16 +0100)]
Bluetooth: btusb: Add internal callback for USB bulk rx data

Some vendors require special handling of the rx data from the USB
bulk endpoints. For that case provide an internal callback that
can overwrite it with a custom receive function.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
10 years agoBluetooth: Consolidate whitelist debugfs entry into device_list
Marcel Holtmann [Sun, 2 Nov 2014 20:46:52 +0000 (21:46 +0100)]
Bluetooth: Consolidate whitelist debugfs entry into device_list

The debufs entry for the BR/EDR whitelist is confusing since there is
a controller debugfs entry with the name white_list and both are two
different things.

With the BR/EDR whitelist, the actual interface in use is the device
list and thus just include all values from the internal BR/EDR whitelist
in the device_list debugfs entry.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
10 years agoBluetooth: Set HCI_QUIRK_STRICT_DUPLICATE_FILTER for Broadcom devices
Marcel Holtmann [Sun, 2 Nov 2014 19:52:24 +0000 (20:52 +0100)]
Bluetooth: Set HCI_QUIRK_STRICT_DUPLICATE_FILTER for Broadcom devices

The Bluetooth controllers from Broadcom use a strict scanning filter
policy that filters based on Bluetooth device addresses and not on
RSSI. So tell the core about this.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
10 years agoBluetooth: Introduce HCI_QUIRK_STRICT_DUPLICATE_FILTER
Marcel Holtmann [Sun, 2 Nov 2014 19:52:23 +0000 (20:52 +0100)]
Bluetooth: Introduce HCI_QUIRK_STRICT_DUPLICATE_FILTER

Some vendors decide to use a strict duplicate filter policy that only
filters on Bluetooth device addresses. This means that when the RSSI
changes, these devices are not reported again. During discovery it is
useful to actually get the RSSI updates.

Since this is specific to each controller, add a new quirk setting
that allows drivers to tell the core what kind of filtering policy
the controller uses.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
10 years agoieee802154: remove unnecessary functions
Alexander Aring [Sun, 2 Nov 2014 20:43:06 +0000 (21:43 +0100)]
ieee802154: remove unnecessary functions

This patch fixes commit c7420c367d63a7e1414e010afb52c3837fd9134e
("mac802154: move mac_params functions into mac_cmd"). The mac_params
functions wasn't deleted by this commit.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Reported-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
10 years agomac802154: cfg: add missing include
Alexander Aring [Sun, 2 Nov 2014 20:43:05 +0000 (21:43 +0100)]
mac802154: cfg: add missing include

Running make C=2 occurs warning:

symbol 'mac802154_config_ops' was not declared. Should it be static?

This patch adds a missing include in cfg.c to solve this warning.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Reported-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
10 years agoieee802154: sysfs: add missing include
Alexander Aring [Sun, 2 Nov 2014 20:43:04 +0000 (21:43 +0100)]
ieee802154: sysfs: add missing include

Running make C=2 occurs in warnings:

symbol 'wpan_phy_class' was not declared. Should it be static?
symbol 'wpan_phy_sysfs_init' was not declared. Should it be static?
symbol 'wpan_phy_sysfs_exit' wasnot declared. Should it be static?

This patch adds a missing include "sysfs.h" to solve these warnings.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Reported-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
10 years agomac802154: fix byteorder issues
Alexander Aring [Sun, 2 Nov 2014 20:43:03 +0000 (21:43 +0100)]
mac802154: fix byteorder issues

Running make C=2 occurs these warnings:

cast from restricted __be64
incorrect type in argument 1 (different base types)
expected unsigned long long[unsigned] [usertype] val
got restricted __be64 [usertype]<noident>
cast from restricted __be64
cast to restricted __le64

This patch fix these warnings by forcing to __le64 type and using swabp64
instead swab64.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Reported-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
10 years agoieee802154: fix byteorder issues
Alexander Aring [Sun, 2 Nov 2014 20:43:02 +0000 (21:43 +0100)]
ieee802154: fix byteorder issues

This patch fix byteorder issues which occurs because we compare __le64
with an host byteorder value. Simple add a cpu_to_le64 to convert the
host byteorder values to __le64.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Reported-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
10 years agoieee802154: add missing ULL definition
Alexander Aring [Sun, 2 Nov 2014 20:43:01 +0000 (21:43 +0100)]
ieee802154: add missing ULL definition

Running make C=2 occurs warning:

constant 0xffffffffffffffff is so big it is unsigned long

This patch fix this warning by adding a ULL to the constant definitions.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Reported-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
10 years agoBluetooth: Switch HCI H5 driver to use hci_reset_dev() function
Marcel Holtmann [Sun, 2 Nov 2014 07:15:39 +0000 (08:15 +0100)]
Bluetooth: Switch HCI H5 driver to use hci_reset_dev() function

Instead of having the driver generate the HCI Hardware Error event
manually, just call hci_reset_dev() to trigger the upper stack reset.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
10 years agoBluetooth: Add hci_reset_dev() for driver triggerd stack reset
Marcel Holtmann [Sun, 2 Nov 2014 07:15:38 +0000 (08:15 +0100)]
Bluetooth: Add hci_reset_dev() for driver triggerd stack reset

Some Bluetooth drivers require to reset the upper stack. To avoid having
all drivers send HCI Hardware Error events, provide a generic function
to wrap the reset functionality.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
10 years agoBluetooth: Introduce BT_BREDR and BT_LE config options
Marcel Holtmann [Sun, 2 Nov 2014 02:32:25 +0000 (03:32 +0100)]
Bluetooth: Introduce BT_BREDR and BT_LE config options

The current kernel options do not make it clear which modules are for
Bluetooth Classic (BR/EDR) and which are for Bluetooth Low Energy (LE).

To make it really clear, introduce BT_BREDR and BT_LE options with
proper dependencies into the different modules. Both new options
default to y to not create a regression with previous kernel config
files.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
10 years agoBluetooth: Use HCI_EV_HARDWARE_ERROR define for event payload
Marcel Holtmann [Sun, 2 Nov 2014 02:02:01 +0000 (03:02 +0100)]
Bluetooth: Use HCI_EV_HARDWARE_ERROR define for event payload

When constructing the event payload for the HCI_Hardware_Error event
message, use the HCI_EV_HARDWARE_ERROR define.

In addition rename the variables from hard_err to hw_err to clearly
indicate that this is about the hardware error and not a hard error.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
10 years agoBluetooth: Print error message for HCI_Hardware_Error event
Marcel Holtmann [Sun, 2 Nov 2014 01:56:41 +0000 (02:56 +0100)]
Bluetooth: Print error message for HCI_Hardware_Error event

When the HCI_Hardware_Error event is send by the controller or
injected by the driver, then at least print an error message.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
10 years agoBluetooth: Check status of command complete for HCI_Reset
Marcel Holtmann [Sun, 2 Nov 2014 01:45:58 +0000 (02:45 +0100)]
Bluetooth: Check status of command complete for HCI_Reset

When the HCI_Reset command returns, the status needs to be checked. It
is unlikely that HCI_Reset actually fails, but when it fails, it is a
bad idea to reset all values since the controller will have not reset
its values in that case.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
10 years agoieee802154: 6lowpan: remove set of mac address
Alexander Aring [Sun, 2 Nov 2014 03:18:47 +0000 (04:18 +0100)]
ieee802154: 6lowpan: remove set of mac address

Currently the ieee802154 6lowpan interface operates on wpan interfaces
only. Setting the wpan mac address over 6lowpan interface is complex and
maybe we can't never do this. This patch removes the set of mac address
handling in ieee802154 6lowpan interface for now.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
10 years agomac802154: iface: add validation for extended address
Alexander Aring [Sun, 2 Nov 2014 03:18:46 +0000 (04:18 +0100)]
mac802154: iface: add validation for extended address

This patch use the validation function to check if an extended address
is valid or not while set the extended address.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
10 years agoieee802154: add extended address validation helper
Alexander Aring [Sun, 2 Nov 2014 03:18:45 +0000 (04:18 +0100)]
ieee802154: add extended address validation helper

This patch introduce an extended address validation helper to check if
an extended address is valid or not.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
10 years agomac802154: move phy settings into netlink receive
Alexander Aring [Sun, 2 Nov 2014 03:18:44 +0000 (04:18 +0100)]
mac802154: move phy settings into netlink receive

All PHY attributes should be directly set to the transceiver after netlink.
MAC attributes should be set by interface up. Currently the macparams
netlink cmd contains mixed attributes of phy and mac settings. This patch
moves all phy settings to the netlink receive function for setting macparams.
This is the only way which doesn't change the userspace API and keep the
deprecated netlink interface alive.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
10 years agomac802154: set panid address filter on ifup
Alexander Aring [Sun, 2 Nov 2014 03:18:43 +0000 (04:18 +0100)]
mac802154: set panid address filter on ifup

This patch moves the setting of hardware panid address filtering
inside of interface up instead doing it it directly inside of netlink
interface. The netlink call which can only be called when netif isn't
running sets only the necessary panid value in sdata. After an
interface up the address filter will be set with this value.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
10 years agomac802154: set short address filter on ifup
Alexander Aring [Sun, 2 Nov 2014 03:18:42 +0000 (04:18 +0100)]
mac802154: set short address filter on ifup

This patch moves the setting of hardware short address filtering
inside of interface up instead doing it it directly inside of netlink
interface. The netlink call which can only be called when netif isn't
running sets only the necessary short_addr value in sdata. After an
interface up the address filter will be set with this value.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
10 years agomac802154: set extended address filter on ifup
Alexander Aring [Sun, 2 Nov 2014 03:18:41 +0000 (04:18 +0100)]
mac802154: set extended address filter on ifup

This patch moves the setting of hardware extended address filtering
inside of interface up instead doing it directly inside of netlink interface.
Also we don't need to set the sdata extended attribute in netlink. This
is already done by ndo_set_mac_address of net_device_ops.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
10 years agomac802154: add helper for converting dev_addr
Alexander Aring [Sun, 2 Nov 2014 03:18:40 +0000 (04:18 +0100)]
mac802154: add helper for converting dev_addr

This patch adds a helper for converting the dev_addr attribute in
netdevice to __le64 type. The dev_addr attribute is a char pointer
and contains the extended address in big endian byte order.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
10 years agoieee802154: don't allow to change addr while netif_running
Alexander Aring [Sun, 2 Nov 2014 03:18:39 +0000 (04:18 +0100)]
ieee802154: don't allow to change addr while netif_running

This patch changes the actual behaviour for setting address attributes.
We should not change addresses while netif_running is true. Furthermore
when netif_running is running the address attributes becomes read only
and we can remove locking mechanism in receive and transmit hothpaths
of 802.15.4 subsystem.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
10 years agocfg802154: convert deprecated iface add and del
Alexander Aring [Sun, 2 Nov 2014 03:18:38 +0000 (04:18 +0100)]
cfg802154: convert deprecated iface add and del

This patch removes the wpan_phy callbacks for add and del an interface
on a phy. Instead we introduce deprecated cfg802154 callbacks for this.
Furthermore we introduce a new netlink interface nl802154 which use
different callbacks. The deprecated function is to have a backwards
compatibility with the current netlink interface.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
10 years agoieee802154: add helper wpan_phy_to_rdev function
Alexander Aring [Sun, 2 Nov 2014 03:18:37 +0000 (04:18 +0100)]
ieee802154: add helper wpan_phy_to_rdev function

This patch introduce a function to get the cfg802154_registered_device
from a wpan_phy.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
10 years agomac802154: introduce mac802154_config_ops
Alexander Aring [Sun, 2 Nov 2014 03:18:36 +0000 (04:18 +0100)]
mac802154: introduce mac802154_config_ops

This patch introduces mac802154_config_ops struct. Like wireless this
struct should be the only one interface between ieee802154 to mac802154
or possible HardMAC drivers.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
10 years agocfg802154: introduce cfg802154_registered_device
Alexander Aring [Sun, 2 Nov 2014 03:18:35 +0000 (04:18 +0100)]
cfg802154: introduce cfg802154_registered_device

This patch introduce the cfg802154_registered_device struct. Like
cfg80211_registered_device in wireless this should contain similar
functionality for cfg802154. This patch should not change any behaviour.
We just adds cfg802154_registered_device as container for wpan_phy struct.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
10 years agoat86rf230: add default channel settings
Alexander Aring [Sun, 2 Nov 2014 03:18:34 +0000 (04:18 +0100)]
at86rf230: add default channel settings

This patch sets the reset state channels accoridng at86rf2xx datasheets.
We don't need to set the default page here which is zero on all chips.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
10 years agoieee802154: remove default channel settings
Alexander Aring [Sun, 2 Nov 2014 03:18:33 +0000 (04:18 +0100)]
ieee802154: remove default channel settings

This patch removes the default channel setting. A channel is always set
and there is no default channel setting according 802.15.4.

Drivers should set the default channel and page in probing routine. This
behaviour is currently a lack of all 802.15.4 drivers.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
10 years agoat86rf230: fix page parameter constraints
Alexander Aring [Sun, 2 Nov 2014 03:18:32 +0000 (04:18 +0100)]
at86rf230: fix page parameter constraints

Since commit e37d2ec82a222f1819e7793a27bc052999a379fb ("mac802154: ops:
declare channel and page as u8") the page parameter can't be below zero.
This patch fix a kbuild test robot warning. Furthermore this check
should be removed and handled by netlink 802.15.4 interface.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
10 years agoBluetooth: Fix hci_sync missing wakeup interrupt
Chan-yeol Park [Fri, 31 Oct 2014 05:23:06 +0000 (14:23 +0900)]
Bluetooth: Fix hci_sync missing wakeup interrupt

__hci_cmd_sync_ev(), __hci_req_sync() could miss wake_up_interrupt from
hci_req_sync_complete() because hci_cmd_work() workqueue and its response
could be completed before they are ready to get the signal through
add_wait_queue(), set_current_state(TASK_INTERRUPTIBLE).

Signed-off-by: Chan-yeol Park <chanyeol.park@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>