]> git.karo-electronics.de Git - karo-tx-linux.git/log
karo-tx-linux.git
12 years agomac80211: don't transmit 40MHz frames to 20MHz peer
Thomas Pedersen [Thu, 26 Apr 2012 22:01:07 +0000 (15:01 -0700)]
mac80211: don't transmit 40MHz frames to 20MHz peer

If a mesh peer indicates it is operating as 20MHz-only in its HT
operation IE, have the rate control algorithm respect this by disabling
the equivalent bit in the ieee80211_sta HT capabilities.

Signed-off-by: Thomas Pedersen <thomas@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomac80211: insert mesh peer after init
Thomas Pedersen [Thu, 26 Apr 2012 22:01:06 +0000 (15:01 -0700)]
mac80211: insert mesh peer after init

Drivers need the station rate info when inserting a new sta_info. The
patch "mac80211: refactor mesh peer initialization" wrongly assumed the
rate info could be applied after insertion. After further review, this
is clearly not the case.

This fixes a regression where HT parameters were not applied before
inserting the sta_info, causing performance degradation.

Signed-off-by: Thomas Pedersen <thomas@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomwifiex: fix static checker warnings
Amitkumar Karwar [Thu, 26 Apr 2012 20:02:57 +0000 (13:02 -0700)]
mwifiex: fix static checker warnings

"oui_type" in structure "ieee_types_vendor_header" is not used separately,
so include it in "oui" array. Now complete oui will be compared fixing
following warnings.

drivers/net/wireless/mwifiex/sta_ioctl.c:1410 mwifiex_set_gen_ie_helper()
        error: memcmp() 'pvendor_ie->oui' too small (3 vs 4)
drivers/net/wireless/mwifiex/sta_ioctl.c:1435 mwifiex_set_gen_ie_helper()
        error: memcmp() 'pvendor_ie->oui' too small (3 vs 4)
drivers/net/wireless/mwifiex/scan.c:1177 mwifiex_update_bss_desc_with_ie()
        error: memcmp() 'vendor_ie->vend_hdr.oui' too small (3 vs 4)
drivers/net/wireless/mwifiex/scan.c:1185 mwifiex_update_bss_desc_with_ie()
        error: memcmp() 'vendor_ie->vend_hdr.oui' too small (3 vs 4)

Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Avinash Patil <patila@marvell.com>
Signed-off-by: Kiran Divekar <dkiran@marvell.com>
Signed-off-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomac80211: fix rate control update on 2040 bss change
Rajkumar Manoharan [Wed, 25 Apr 2012 14:54:24 +0000 (20:24 +0530)]
mac80211: fix rate control update on 2040 bss change

The rate control updation never be called on 2040 BSS change.
The station should update its rate control on receiving beacon
with different HT mode in the HT operation IE. Not doing so,
leads to sending frames with higher(ht40) rates whereas AP is
operating in lower mode (ht20).

Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agocfg80211: Remove compile warnings
Andrei Emeltchenko [Wed, 25 Apr 2012 12:45:55 +0000 (15:45 +0300)]
cfg80211: Remove compile warnings

Use default key to handle similar iface types. This removes compile warnings:

net/wireless/util.c: In function ‘cfg80211_change_iface’:
net/wireless/util.c:846:3: warning: enumeration value ‘NL80211_IFTYPE_MAX’
not handled in switch [-Wswitch]

Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomwifiex: add support for SD8786 sdio
WarheadsSE [Tue, 24 Apr 2012 19:57:21 +0000 (15:57 -0400)]
mwifiex: add support for SD8786 sdio

modified:   drivers/net/wireless/mwifiex/Kconfig
- notate additional chipset
modified:   drivers/net/wireless/mwifiex/sdio.c
- add definition of id (0x9116)
- add to switch for firmware load
- add MODULE_FIRMWARE
modified:   drivers/net/wireless/mwifiex/sdio.h
- add definition of default firmware name

Signed-off-by: Jason Plum <max@warheads.net>
Acked-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agowireless: at76c50x: allocating too much data
Dan Carpenter [Sat, 21 Apr 2012 12:23:44 +0000 (15:23 +0300)]
wireless: at76c50x: allocating too much data

This is a cut and paste mistake, sizeof(struct mib_local) was intended
instead of sizeof(struct mib_phy).  The call to at76_get_mib() uses
sizeof(struct mib_local) correctly, although I changed that to
sizeof(*m) for style reasons after discussion with some of the wireless
maintainers.

The current code works fine because mib_phy structs are larger than
mib_local structs.  But we may as well clean it up.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoMerge branch 'wireless-next' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi...
John W. Linville [Fri, 27 Apr 2012 20:03:48 +0000 (16:03 -0400)]
Merge branch 'wireless-next' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi

12 years agoMerge branch 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetoot...
John W. Linville [Fri, 27 Apr 2012 20:01:56 +0000 (16:01 -0400)]
Merge branch 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next

12 years agoiwlwifi: don't init trans->reg_lock from the op_mode
Emmanuel Grumbach [Mon, 23 Apr 2012 22:03:06 +0000 (15:03 -0700)]
iwlwifi: don't init trans->reg_lock from the op_mode

This doesn't make any sense. Init it from the transport instead.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
12 years agoiwlwifi: add option to disable 5GHz band
Stanislaw Gruszka [Thu, 19 Apr 2012 16:51:24 +0000 (09:51 -0700)]
iwlwifi: add option to disable 5GHz band

There are various problems happened on 5GHz band not observed on
2.4 GHz (microcode errors, queue stuck, etc... ) . Also roaming
between 5GHz AP and 2GHz does not work very well. To workaround
the problems add option to disable 5GHz support. This will help
on environments where APs are dual-band, and devices will not try
to associate on band where issues happen.

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
12 years agoiwlwifi: use IWL_* instead of dev_printk when possible
Emmanuel Grumbach [Thu, 19 Apr 2012 07:29:58 +0000 (10:29 +0300)]
iwlwifi: use IWL_* instead of dev_printk when possible

Also remove a debug print when allocation error occurred.
The kernel will complain anyway.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
12 years agoiwlwifi: add loose coex lut
Wey-Yi Guy [Thu, 19 Apr 2012 16:50:42 +0000 (09:50 -0700)]
iwlwifi: add loose coex lut

Add the Loose coex LUT and will use later for better bt coex tpt

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
12 years agoiwlwifi: change kill mask based on reduce power state
Wey-Yi Guy [Thu, 19 Apr 2012 16:50:06 +0000 (09:50 -0700)]
iwlwifi: change kill mask based on reduce power state

In bt coex, consider reduce tx power as part of ack/cts kill mask

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
12 years agoiwlwifi: send reduce tx power info in command
Wey-Yi Guy [Thu, 19 Apr 2012 16:49:44 +0000 (09:49 -0700)]
iwlwifi: send reduce tx power info in command

Add the reduce tx power information in bt coex host command

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
12 years agoiwlwifi: small define change
Wey-Yi Guy [Thu, 19 Apr 2012 16:49:03 +0000 (09:49 -0700)]
iwlwifi: small define change

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
12 years agoiwlwifi: add reduced tx power threshold define
Wey-Yi Guy [Thu, 19 Apr 2012 16:48:34 +0000 (09:48 -0700)]
iwlwifi: add reduced tx power threshold define

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
12 years agoiwlwifi: add checking for the condition to reduce tx power
Wey-Yi Guy [Thu, 19 Apr 2012 16:48:01 +0000 (09:48 -0700)]
iwlwifi: add checking for the condition to reduce tx power

When bluetooth coex is active and certain condition matched,
driver need to decide should the tx power been reduce or not.
Adding the logic to manage it.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
12 years agoiwlwifi: add BT reduced tx power flag
Wey-Yi Guy [Thu, 19 Apr 2012 16:47:30 +0000 (09:47 -0700)]
iwlwifi: add BT reduced tx power flag

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
12 years agoiwlwifi: remove unused macros
Wey-Yi Guy [Thu, 19 Apr 2012 16:46:56 +0000 (09:46 -0700)]
iwlwifi: remove unused macros

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
12 years agolibertas: include sched.h on firmware.c
Luis R. Rodriguez [Tue, 24 Apr 2012 02:55:48 +0000 (19:55 -0700)]
libertas: include sched.h on firmware.c

Do not assume we have our subsystem including this for us,
at least for older kernels this is not true. Lets just be
explicit about this requirement for the usage of wake_up().

Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomac80211: Adds clean sdata helper
Andrei Emeltchenko [Tue, 24 Apr 2012 11:18:28 +0000 (14:18 +0300)]
mac80211: Adds clean sdata helper

Adds hepler to clean sdata ieee80211_clean_sdata similar way as
ieee80211_setup_sdata is implemented. The function will be used by other
interfaces later.

Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoath9k: Fix IDLE Powersave
Sujith Manoharan [Tue, 24 Apr 2012 04:53:20 +0000 (10:23 +0530)]
ath9k: Fix IDLE Powersave

* PS_WAIT_FOR_TX_ACK is used in network-sleep mode and checking
  it for handling IDLE transitions is incorrect. Fix this.

* RX PCU/DMA engines have to be stopped before setting the chip into
  full-sleep mode - otherwise the chip becomes mute.

* Make things a bit clear by checking explicitly for network-sleep
  mode in the tx() routine and add a couple of debug statements
  to aid PS debugging.

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomac80211: fix num_mcast_sta counting issues
Felix Fietkau [Mon, 23 Apr 2012 17:49:03 +0000 (19:49 +0200)]
mac80211: fix num_mcast_sta counting issues

Moving a STA to an AP VLAN prevents num_mcast_sta from being decremented
once the STA leaves, because sta->sdata changes. Fix this by checking
for AP VLANs as well.

Also exclude 4-addr VLAN stations from num_mcast_sta - remote 4-addr
stations ignore 3-address multicast frames anyway. In a typical bridge
configuration they receive the same packets as 4-address unicast.

This patch also fixes clearing the sdata->u.vlan.sta pointer when the
STA is removed from a 4-addr VLAN.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomac80211: rename AP variable num_sta_authorized to num_mcast_sta
Felix Fietkau [Mon, 23 Apr 2012 17:49:02 +0000 (19:49 +0200)]
mac80211: rename AP variable num_sta_authorized to num_mcast_sta

It is only used to test for BSS multicast receivers.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Reviewed-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomac80211: check for non-managed interface
Wey-Yi Guy [Mon, 23 Apr 2012 16:30:32 +0000 (09:30 -0700)]
mac80211: check for non-managed interface

Average beacon signal only keep tracked by managed interface,
give warning and return 0 for the others.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoBluetooth: Fix coding style issues
Gustavo Padovan [Tue, 24 Apr 2012 04:09:25 +0000 (01:09 -0300)]
Bluetooth: Fix coding style issues

New code added to the Bluetooth subsystem needs to be compliant with the
new style rules.

Signed-off-by: Gustavo Padovan <gustavo@padovan.org>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
12 years agoBluetooth: properly use pr_fmt() on lib.c
Luis R. Rodriguez [Tue, 24 Apr 2012 02:45:06 +0000 (19:45 -0700)]
Bluetooth: properly use pr_fmt() on lib.c

pr_fmt() is either defined or we redefine it. Typically
drivers define it prior to including printk.h but this
is done under the assumption that no other subsystem
it uses has already defined pr_fmt(). In such cases
pr_fmt() should be undefined and redefined.

Doing this properly shaves down compilation time quite
considerably.

Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
Signed-off-by: Gustavo Padovan <gustavo@padovan.org>
12 years agoiwlwifi: use new mac80211 queue scheme
Johannes Berg [Tue, 17 Apr 2012 14:39:03 +0000 (07:39 -0700)]
iwlwifi: use new mac80211 queue scheme

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
12 years agoiwlwifi: clean up module parameters
Johannes Berg [Tue, 17 Apr 2012 14:36:30 +0000 (07:36 -0700)]
iwlwifi: clean up module parameters

For now at least, all module parameters should be
with the core functionality, so move them there,
while at it rename to iwlwifi_mod_params. Also
rename iwl-shared.h to iwl-modparams.h to reflect
the real contents.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
12 years agoiwlwifi: revert workaround to restore 1000 rx throughput
Don Fry [Fri, 23 Mar 2012 22:41:07 +0000 (15:41 -0700)]
iwlwifi: revert workaround to restore 1000 rx throughput

A workaround in commit c0486b7ccc5 resulted in a 40% drop in receive
throughput in order to fix a transmit problem.  The transmit problem
no longer occurs, so restore the receive throughput.

Signed-off-by: Don Fry <donald.h.fry@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
12 years agoiwlwifi: use direct calls for transport free
Johannes Berg [Thu, 12 Apr 2012 13:24:30 +0000 (06:24 -0700)]
iwlwifi: use direct calls for transport free

Since the transport allocates and frees itself in
the transport specific code, there's no need for
virtual functions for it. Remove the free method
and call the correct functions directly.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
12 years agoiwlwifi: clean up some hw file includes
Johannes Berg [Tue, 3 Apr 2012 18:57:59 +0000 (20:57 +0200)]
iwlwifi: clean up some hw file includes

We can't get rid of everything yet due to
the BT definitions that I'm not quite sure
yet how to handle, but we can get rid of
most unneeded includes.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
12 years agoiwlwifi: move OTP defines
Johannes Berg [Tue, 3 Apr 2012 18:49:20 +0000 (20:49 +0200)]
iwlwifi: move OTP defines

Since the PCI core shouldn't include the
iwl-eeprom.h header file, move the OTP
definitions into iwl-agn-hw.h which can
be included.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
12 years agoiwlwifi: move antenna definitions to config
Johannes Berg [Tue, 3 Apr 2012 18:38:44 +0000 (20:38 +0200)]
iwlwifi: move antenna definitions to config

Since they're used in the config, they
should be declared in iwl-config.h.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
12 years agoiwlwifi: move eeprom versions to HW files
Johannes Berg [Tue, 3 Apr 2012 18:41:07 +0000 (20:41 +0200)]
iwlwifi: move eeprom versions to HW files

The hardware files belong to the core PCI
functionality, but the eeprom header file
mixes higher-level functionality and the
defines, so move out the specific defines
and put them into the appropriate HW files
instead.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
12 years agoiwlwifi: move watchdog definitions to config
Johannes Berg [Tue, 3 Apr 2012 18:38:44 +0000 (20:38 +0200)]
iwlwifi: move watchdog definitions to config

Since they're used in the config, they
should be declared in iwl-config.h.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
12 years agoiwlwifi: move PLCP defines to config
Johannes Berg [Tue, 3 Apr 2012 18:34:46 +0000 (20:34 +0200)]
iwlwifi: move PLCP defines to config

Since they're used in the config, they
should be declared in iwl-config.h.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
12 years agoiwlwifi: move driver defines to iwl-drv.h
Johannes Berg [Tue, 3 Apr 2012 23:44:37 +0000 (16:44 -0700)]
iwlwifi: move driver defines to iwl-drv.h

These defines will have to be shared
between modules, but they seem better
placed in iwl-drv.h than iwl-shared.h.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
12 years agoiwlwifi: remove duplicate iwlagn_mod_params declaration
Johannes Berg [Tue, 3 Apr 2012 23:42:03 +0000 (16:42 -0700)]
iwlwifi: remove duplicate iwlagn_mod_params declaration

We only need one declaration, not multiple.
Keep the one in iwl-shared.h, which will
probably be renamed to iwl-modparams.h at
some point in the future.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
12 years agoiwlwifi: remove TX/RX frame statistics
Johannes Berg [Mon, 23 Apr 2012 21:25:51 +0000 (14:25 -0700)]
iwlwifi: remove TX/RX frame statistics

Keeping statistics per frame type really isn't
very useful, and needs a huge amount of code
so remove it. Since that is the only thing in
iwl-core.{c,h} now, those files can be killed.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
12 years agoiwlwifi: remove traffic log
Johannes Berg [Tue, 3 Apr 2012 23:35:41 +0000 (16:35 -0700)]
iwlwifi: remove traffic log

This is superseded by tracing and no longer needed.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
12 years agoiwlwifi: move iwl_cmd_echo_test
Johannes Berg [Mon, 2 Apr 2012 13:15:58 +0000 (15:15 +0200)]
iwlwifi: move iwl_cmd_echo_test

The function can be static with the only user.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
12 years agoiwlwifi: move TIME_UNIT
Johannes Berg [Mon, 2 Apr 2012 13:14:48 +0000 (15:14 +0200)]
iwlwifi: move TIME_UNIT

We're getting rid of iwl-core.h, move TIME_UNIT out.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
12 years agoiwlwifi: remove bt_siso_mode declaration
Johannes Berg [Mon, 2 Apr 2012 13:09:26 +0000 (15:09 +0200)]
iwlwifi: remove bt_siso_mode declaration

That variable doesn't exist anywhere.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
12 years agoiwlwifi: include net/mac80211.h to avoid compiler error
Wey-Yi Guy [Tue, 3 Apr 2012 23:23:37 +0000 (16:23 -0700)]
iwlwifi: include net/mac80211.h to avoid compiler error

without the include, kernel compiling will fail, but not compat.
this patch need to be merge with iwlwifi-clean-up-iwl-shared.h-includes.patch

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
12 years agoiwlwifi: clean up iwl-shared.h includes
Johannes Berg [Mon, 2 Apr 2012 13:04:33 +0000 (15:04 +0200)]
iwlwifi: clean up iwl-shared.h includes

That file is now holding just a few defines and
the module parameters, so it shouldn't include
anything. Make sure the right users include the
right files instead.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
12 years agoiwlwifi: move iwl_have_debug_level
Johannes Berg [Mon, 2 Apr 2012 12:54:16 +0000 (14:54 +0200)]
iwlwifi: move iwl_have_debug_level

This function belongs into the debugging framework.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
12 years agoiwlwifi: move debugfs registration function declarations
Johannes Berg [Mon, 2 Apr 2012 12:53:08 +0000 (14:53 +0200)]
iwlwifi: move debugfs registration function declarations

They clearly belong into iwl-agn.h as they have no
relation to the (generic) debug logging framework.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
12 years agoiwlwifi: remove debugfs logspam
Johannes Berg [Fri, 30 Mar 2012 07:37:39 +0000 (09:37 +0200)]
iwlwifi: remove debugfs logspam

There really is no point in printing very verbose
error messages when somebody tries to access a
debugfs file before it is ready. Or even worse,
printing verbose messages when memory allocation
fails which *already* prints a huge warning.

Remove all IWL_ERR messages from debugfs.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
12 years agoiwlwifi: properly set basic rates
Johannes Berg [Thu, 8 Mar 2012 08:37:53 +0000 (09:37 +0100)]
iwlwifi: properly set basic rates

This fixes a long-standing bug: iwlwifi always assumes
that the CCK ACK rates are 1 and 2 MBps and the OFDM
ACK rates are 6, 12 and 24 MBps. Fix this problem by
using the basic rates the AP (or in AP case hostapd)
told us to use and add the necessary mandatory rates
to the mix.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
12 years agoiwlwifi: Added debugfs calib disabled write
David Spinadel [Sat, 31 Mar 2012 15:31:05 +0000 (08:31 -0700)]
iwlwifi: Added debugfs calib disabled write

Added the option to disable calibration via debugfs.

Signed-off-by: David Spinadel <david.spinadel@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
12 years agoiwlwifi: provide proper API to disable all interrupts
Emmanuel Grumbach [Sat, 31 Mar 2012 15:28:38 +0000 (08:28 -0700)]
iwlwifi: provide proper API to disable all interrupts

Since the op_mode may go away, the transport needs to be able to
be told not to update the op_mode at all (even for RF kill).
Provide this API and use it in the proper places.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
12 years agoiwlwifi: check RF kill register when interrupts have been disabled
Emmanuel Grumbach [Wed, 28 Mar 2012 08:34:02 +0000 (10:34 +0200)]
iwlwifi: check RF kill register when interrupts have been disabled

Since the interrupts have been disabled, we may have missed an RF
kill interrupt. Check the register to be sure the op_mode is in
sync.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
12 years agoiwlwifi: enable RF kill interrupt in start_hw
Emmanuel Grumbach [Wed, 28 Mar 2012 08:33:09 +0000 (10:33 +0200)]
iwlwifi: enable RF kill interrupt in start_hw

The op_mode wants to know about changes in HW RF kill state.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
12 years agoiwlwifi: first enable RF kill interrupt, then check register
Emmanuel Grumbach [Wed, 28 Mar 2012 07:57:46 +0000 (09:57 +0200)]
iwlwifi: first enable RF kill interrupt, then check register

This can solve a race (very unlikely to happen though).

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
12 years agoiwlwifi: make a static inline to read the RF kill register
Emmanuel Grumbach [Wed, 28 Mar 2012 09:00:58 +0000 (11:00 +0200)]
iwlwifi: make a static inline to read the RF kill register

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
12 years agort2800: add chipset revision RT5390R support
Anisse Astier [Mon, 23 Apr 2012 10:33:11 +0000 (12:33 +0200)]
rt2800: add chipset revision RT5390R support

About 70% of the chips with revision RT5390R initialize incorrectly, using
the auxiliary antenna instead of the main one. The net result is that
signal reception is very poor (no AP further than 1M).

This chipset differs from RT5390 and RT5390F by its support of hardware
antenna diversity. Therefore antenna selection should be done
differently, by disabling software features and previously selected
antenna.

This changeset does just that, and makes all RT5390R work properly.

This is based on Ralink's 2012_03_22_RT5572_Linux_STA_v2.6.0.0_DPO
driver.

Signed-off-by: Anisse Astier <anisse@astier.eu>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agocfg80211: Validate legacy rateset.
Bala Shanmugam [Fri, 20 Apr 2012 13:42:58 +0000 (19:12 +0530)]
cfg80211: Validate legacy rateset.

Legacy rates are not validated while configuring
tx rateset using iw. So below cmd is accepted by nl80211.
sudo iw wlan2 set bitrates legacy-2.4 1 2 3

Validate legacy rates and return
error if any rate in the rateset is not valid.

Signed-off-by: Bala Shanmugam <bkamatch@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomac80211: declare ieee80211_ave_rssi as EXPORT
Wey-Yi Guy [Fri, 20 Apr 2012 18:57:00 +0000 (11:57 -0700)]
mac80211: declare ieee80211_ave_rssi as EXPORT

ieee80211_ave_rssi need to be declare as export for driver to use it.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomac80211: fixup for mesh TSF adjustment latency in Toffset setpoint
Javier Cardona [Fri, 20 Apr 2012 16:52:56 +0000 (09:52 -0700)]
mac80211: fixup for mesh TSF adjustment latency in Toffset setpoint

The original patch defined the correction margin but did not apply it.

Signed-off-by: Shinichi Hotori <hotorinn@gmail.com>
Signed-off-by: Yu Niiro <yu.niiro@gmail.com>
Signed-off-by: Javier Cardona <javier@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoath9k: extend DFS detector stats in dfs_debugfs
Zefir Kurtisi [Fri, 20 Apr 2012 15:20:34 +0000 (17:20 +0200)]
ath9k: extend DFS detector stats in dfs_debugfs

Extend debugfs entry for dfs_stats with DFS detection events
and shared pool statistics.

Signed-off-by: Zefir Kurtisi <zefir.kurtisi@neratec.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoath9k: don't strip mic on non-encrypted frames in tkip
Michael Liang [Fri, 20 Apr 2012 09:11:57 +0000 (17:11 +0800)]
ath9k: don't strip mic on non-encrypted frames in tkip

Fix the following bug: in tkip mode, qos-null ps on/off packets
are dropped due to incorrect packet length so that ath9k softap
can't handle powersave state transition of peer STA correctly.

Signed-off-by: Michael Liang <mliang@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agortlwifi: rtl8192se: Convert driver to use private dm struct
Larry Finger [Thu, 19 Apr 2012 21:32:44 +0000 (16:32 -0500)]
rtlwifi: rtl8192se: Convert driver to use private dm struct

Convert driver to use private version of dig_t instead of global version.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agortlwifi: rtl8192de: Convert driver to use private dm structs
Larry Finger [Thu, 19 Apr 2012 21:32:43 +0000 (16:32 -0500)]
rtlwifi: rtl8192de: Convert driver to use private dm structs

Convert driver to use the private dig_t instead of a global version.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agortlwifi: rtl8192c: Convert driver to use private ps_t struct
Larry Finger [Thu, 19 Apr 2012 21:32:42 +0000 (16:32 -0500)]
rtlwifi: rtl8192c: Convert driver to use private ps_t struct

Convert driver to use the private instead of global version.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agortlwifi: rtl8192c: Convert driver to use private dm structs
Larry Finger [Thu, 19 Apr 2012 21:32:41 +0000 (16:32 -0500)]
rtlwifi: rtl8192c: Convert driver to use private dm structs

Convert rtl8192c to use the dm_digtable struct in the common header file
instead of the global variable. Without this change, every instance of
rtl8192ce and rtl8192cu will be using the same global arrays.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agortlwifi: Add dm structs to private structure
Larry Finger [Thu, 19 Apr 2012 21:32:40 +0000 (16:32 -0500)]
rtlwifi: Add dm structs to private structure

Add the dig_t and ps_t structures to the private variables.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agortlwifi: Move dig_t and ps_t structs
Larry Finger [Thu, 19 Apr 2012 21:32:39 +0000 (16:32 -0500)]
rtlwifi: Move dig_t and ps_t structs

Move struct definitions for dig_t and ps_t to the common header file.

This move is needed to convert these structures from a "per-driver" to a
"per-interface" basis.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoath9k_hw: increase tx abort timeout for half/quarter channels
Felix Fietkau [Thu, 19 Apr 2012 19:18:29 +0000 (21:18 +0200)]
ath9k_hw: increase tx abort timeout for half/quarter channels

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoath9k_hw: disable fast channel change when changing from/to half/quarter mode
Felix Fietkau [Thu, 19 Apr 2012 19:18:28 +0000 (21:18 +0200)]
ath9k_hw: disable fast channel change when changing from/to half/quarter mode

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoath9k_hw: disable Tx IQ calibration on half/quarter channels
Felix Fietkau [Thu, 19 Apr 2012 19:18:27 +0000 (21:18 +0200)]
ath9k_hw: disable Tx IQ calibration on half/quarter channels

It does not work properly and reduces throughput.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoath9k_hw: fix and clean up PHY activation delay
Felix Fietkau [Thu, 19 Apr 2012 19:18:26 +0000 (21:18 +0200)]
ath9k_hw: fix and clean up PHY activation delay

The delay calculation is the same for all chips, however some parts of the
code missed the extra delay factor for half/quarter.
Clean up the code and move the delay calculation to a common place.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoath9k_hw: increase symbol overlap window for half/quarter channels
Felix Fietkau [Thu, 19 Apr 2012 19:18:25 +0000 (21:18 +0200)]
ath9k_hw: increase symbol overlap window for half/quarter channels

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoath9k_hw: set the PHY mode for half/quarter channels on AR9003
Felix Fietkau [Thu, 19 Apr 2012 19:18:24 +0000 (21:18 +0200)]
ath9k_hw: set the PHY mode for half/quarter channels on AR9003

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoath9k_hw: increase ACK timeout for half/quarter channels
Felix Fietkau [Thu, 19 Apr 2012 19:18:23 +0000 (21:18 +0200)]
ath9k_hw: increase ACK timeout for half/quarter channels

For some reason the MAC timing is a bit off when waiting for ACKs, so add
some extra delay to the ACK timeout values. Significantly reduces the
number of retransmissions in my tests.
Also disable the 2.4 GHz ACK timeout workaround in half/quarter mode, it
is not required there.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoath9k_hw: use standard SIFS time as reference for half/quarter channels
Felix Fietkau [Thu, 19 Apr 2012 19:18:22 +0000 (21:18 +0200)]
ath9k_hw: use standard SIFS time as reference for half/quarter channels

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoath9k_hw: remove ATH_BTCOEX_CFG_MCI
Rajkumar Manoharan [Thu, 19 Apr 2012 13:43:52 +0000 (19:13 +0530)]
ath9k_hw: remove ATH_BTCOEX_CFG_MCI

AR9462 uses modified version of 3-Wire hw scheme for btcoex.
MCI itself is not a separate hw scheme but it aids to manage
multiple bt profiles. In ar9462, bt priority traffic is identified
by the number of bt profile types instead of gpio. So that this
patch removes MCI hw scheme.

Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoath9k: simplify beacon configuration for beaconing vifs
Rajkumar Manoharan [Thu, 19 Apr 2012 13:43:51 +0000 (19:13 +0530)]
ath9k: simplify beacon configuration for beaconing vifs

As of now beacon configuration is being called multiple times
in bss info change notification. This patch avoids multiple
configuration and make it simpler.

Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoath9k: make DFS detector pools SMP safe
Zefir Kurtisi [Thu, 19 Apr 2012 12:03:04 +0000 (14:03 +0200)]
ath9k: make DFS detector pools SMP safe

This adds locking of the detector's shared pulse and PRI sequence
pools to enable multi-wiphy operation on SMP systems.

Signed-off-by: Zefir Kurtisi <zefir.kurtisi@neratec.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agolibertas: add missing include
Felix Fietkau [Thu, 19 Apr 2012 11:54:12 +0000 (13:54 +0200)]
libertas: add missing include

Without it, I get compile errors due to missing TASK_NORMAL,
TASK_UNINTERRUPTIBLE and schedule.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Acked-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agort2x00: Use GFP_KERNEL for rx buffer allocation on USB devices
Helmut Schaa [Thu, 19 Apr 2012 11:24:10 +0000 (13:24 +0200)]
rt2x00: Use GFP_KERNEL for rx buffer allocation on USB devices

Since the RX path on USB devices is handled in process context we can
use GFP_KERNEL for RX buffer allocation. This should reduce the
likelihood of allocation failures.

Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
Acked-by: Gertjan van Wingerde <gwingerde@gmail.com>
Tested-By: Marc Dietrich <marvin24@gmx.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agort2800: debugfs register access: BBP is 256 bytes big
Anisse Astier [Thu, 19 Apr 2012 09:20:32 +0000 (11:20 +0200)]
rt2800: debugfs register access: BBP is 256 bytes big

We're already using BBP for values > 128. Make that explicit and allow
debugfs access.

Signed-off-by: Anisse Astier <anisse@astier.eu>
Acked-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomwifiex: add support for Marvell USB8797 chipset
Amitkumar Karwar [Thu, 19 Apr 2012 03:08:28 +0000 (20:08 -0700)]
mwifiex: add support for Marvell USB8797 chipset

This patch supports Avastar 88W8797 chipset with USB interface.

The corresponding firmware image file is located at:
"mrvl/usb8797_uapsta.bin"

Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: Kiran Divekar <dkiran@marvell.com>
Signed-off-by: Frank Huang <frankh@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomac80211: fix STA channel width field
Thomas Pedersen [Thu, 19 Apr 2012 02:24:14 +0000 (19:24 -0700)]
mac80211: fix STA channel width field

According to IEEE 802.11 8.4.2.59, set the "STA channel width" bit to 0
if transmitting STA is using a 20mhz channel.

Signed-off-by: Thomas Pedersen <thomas@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomac80211: don't set mesh peer ht caps if ht disabled
Thomas Pedersen [Thu, 19 Apr 2012 02:24:13 +0000 (19:24 -0700)]
mac80211: don't set mesh peer ht caps if ht disabled

Blindly setting ht caps on a mesh peer's station entry would result in
MCS rates being used by the rate control algorithm even if no ht had
been configured. Fix this by checking the channel type before assigning
ht capabilites.

Signed-off-by: Thomas Pedersen <thomas@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomac80211: refactor mesh peer rate handling
Thomas Pedersen [Thu, 19 Apr 2012 02:23:43 +0000 (19:23 -0700)]
mac80211: refactor mesh peer rate handling

To avoid passing supp_rates and basic_rates around all the time, just
derive these when needed in mesh_matches_local() and mesh_peer_init().

Signed-off-by: Thomas Pedersen <thomas@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomac80211: refactor mesh peer initialization
Thomas Pedersen [Thu, 19 Apr 2012 02:23:42 +0000 (19:23 -0700)]
mac80211: refactor mesh peer initialization

This patch unifies the previous two paths toward mesh peer creation a
bit. It also fixes a bug where a peer's changing rates or HT mode
wouldn't register on leaving and then returning to the mesh with a sta
entry still present.

Also clean up locking and clear possibly stale ht cap.

Signed-off-by: Thomas Pedersen <thomas@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoath9k: fix TX power reporting on AR9003 chips
Gabor Juhos [Wed, 18 Apr 2012 20:23:38 +0000 (22:23 +0200)]
ath9k: fix TX power reporting on AR9003 chips

The current code unconditionally reads the target
power values for all modes from the EEPROM. However
In 'ar9003_hw_set_power_per_rate_table' the regulatory
caps are applied only on a mode specific subset of the
power values.

The reported TX power level is calculated from the
maximum of the power values. Because some of these
values are uncapped in certain cases, the reported
TX power will be wrong.

On the older chipset, we don't have such problems
because only the mode specific subset of the power
levels are retrieved from the EEPROM on those. Do
the same for the AR9003 chips to fix the issue.

Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Acked-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agolibertas CS: convert to asynchronous firmware loading
Daniel Drake [Wed, 18 Apr 2012 19:09:44 +0000 (20:09 +0100)]
libertas CS: convert to asynchronous firmware loading

Signed-off-by: Daniel Drake <dsd@laptop.org>
Tested-by: Dan Williams <dcbw@redhat.com>
Acked-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoath9k: Fix compile warnings when DEBUGFS is disabled.
Ben Greear [Tue, 17 Apr 2012 22:19:03 +0000 (15:19 -0700)]
ath9k: Fix compile warnings when DEBUGFS is disabled.

This fixes two compile warnings, and removes a useless
cast when assigning the 'sc' variable.

Reported-by: Gabor Juhos <juhosg@openwrt.org>
Signed-off-by: Ben Greear <greearb@candelatech.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomac80211: Support on-channel scan option.
Ben Greear [Tue, 17 Apr 2012 17:54:16 +0000 (10:54 -0700)]
mac80211: Support on-channel scan option.

This based on an idea posted by Stanislaw Gruszka,
though I accept full blame for the implementation!

This has been tested with ath9k.

The idea is to let users scan on the current operating
channel without interrupting normal traffic more than
absolutely necessary (changing power level might reset
some hardware, for instance).

Signed-off-by: Ben Greear <greearb@candelatech.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agowireless: rt2x00: rt2800usb more devices were identified
Xose Vazquez Perez [Tue, 17 Apr 2012 14:28:05 +0000 (16:28 +0200)]
wireless: rt2x00: rt2800usb more devices were identified

found in 2012_03_22_RT5572_Linux_STA_v2.6.0.0_DPO

RT3070:
(0x2019,0x5201)  Planex Communications, Inc. RT8070
(0x7392,0x4085)  2L Central Europe BV 8070
7392 is Edimax

RT35xx:
(0x1690,0x0761) Askey
was Fujitsu Stylistic 550, but 1690 is Askey

Signed-off-by: Xose Vazquez Perez <xose.vazquez@gmail.com>
Acked-by: Gertjan van Wingerde <gwingerde@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoath9k: add possible wiphy interface combinations
Felix Fietkau [Tue, 17 Apr 2012 00:40:07 +0000 (02:40 +0200)]
ath9k: add possible wiphy interface combinations

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agowireless: rt2x00: rt2800usb add more devices ids
Xose Vazquez Perez [Mon, 16 Apr 2012 23:50:32 +0000 (01:50 +0200)]
wireless: rt2x00: rt2800usb add more devices ids

They were taken from ralink drivers:
2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO
2012_03_22_RT5572_Linux_STA_v2.6.0.0_DPO

0x1eda,0x2210 RT3070 Airties

0x083a,0xb511 RT3370 Panasonic
0x0471,0x20dd RT3370 Philips

0x1690,0x0764 RT35xx Askey
0x0df6,0x0065 RT35xx Sitecom
0x0df6,0x0066 RT35xx Sitecom
0x0df6,0x0068 RT35xx Sitecom

0x2001,0x3c1c RT5370 DLink
0x2001,0x3c1d RT5370 DLink

2001 is D-Link not Alpha

Signed-off-by: Xose Vazquez Perez <xose.vazquez@gmail.com>
Acked-by: Gertjan van Wingerde <gwingerde@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoBluetooth: Add support for reusing the same hci_conn for LE links
Vinicius Costa Gomes [Fri, 20 Apr 2012 18:46:08 +0000 (15:46 -0300)]
Bluetooth: Add support for reusing the same hci_conn for LE links

As most LE devices leave advertising mode when they enter the connected
state, we may want to "pass" that connection to other users.

The first user will be the pairing procedure, the connection is
established without an associated socket, after the pairing is
complete, userspace may want to discover via GATT what services the
newly bonded device has.

If userspace establishes the connection while the timeout still
hasn't expired, the connection will be re-used.

Signed-off-by: Vinicius Costa Gomes <vinicius.gomes@openbossa.org>
Tested-by: João Paulo Rechi Vita <jprvita@openbossa.org>
Signed-off-by: Gustavo Padovan <gustavo@padovan.org>
12 years agoBluetooth: Search global l2cap channels by src/dst addresses
Ido Yariv [Fri, 20 Apr 2012 18:46:07 +0000 (15:46 -0300)]
Bluetooth: Search global l2cap channels by src/dst addresses

The cid or psm and the source address might not be enough to uniquely
identify a global channel, especially when the source address is our
own.

For instance, when trying to communicate with two LE devices in master
mode, data received from the both devices is sent to the same socket.

Fix this by taking the destination address into account when choosing
the socket.

Signed-off-by: Ido Yariv <ido@wizery.com>
Signed-off-by: Arik Nemtsov <arik@wizery.com>
Tested-by: João Paulo Rechi Vita <jprvita@openbossa.org>
Signed-off-by: Gustavo Padovan <gustavo@padovan.org>
12 years agoBluetooth: Remove unneeded initialization in hci_alloc_dev()
David Herrmann [Sun, 22 Apr 2012 12:39:59 +0000 (14:39 +0200)]
Bluetooth: Remove unneeded initialization in hci_alloc_dev()

We allocate memory with kzalloc() so there is no need to call
memset(..., 0, ...) or similar.

Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
12 years agoBluetooth: Move device initialization to hci_alloc_dev()
David Herrmann [Sun, 22 Apr 2012 12:39:58 +0000 (14:39 +0200)]
Bluetooth: Move device initialization to hci_alloc_dev()

We currently initialize locks, lists, works, etc. in hci_register_dev()
(hci_alloc_dev() was added later) which is bogus because an hdev is in an
invalid state if it is not registered.
This patch moves all memory initialization to hci_alloc_dev(). Device
registering and registration of sub-modules is still left in
hci_register_dev() as it belongs there.

The benefit is (despite cleaning up the code-base) we can now always be
sure that an hdev is a valid object and can be locked and worked on even
though it may not be registered.

This patch also reorders the initialization to be easier to understand.
First the memory is initialized, then all generic structures and as last
step the sub-init functions are called. This guarantees that all
dependencies are initialized in the right order and makes it also easier
to find a specific line. We previously initialized it in the same order as
the "struct hci_dev" is declared which seems pretty random.

Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
12 years agoBluetooth: Move hci_alloc/free_dev close to hci_register/unregister_dev
David Herrmann [Sun, 22 Apr 2012 12:39:57 +0000 (14:39 +0200)]
Bluetooth: Move hci_alloc/free_dev close to hci_register/unregister_dev

alloc() and register() (and free() and unregister()) are closely related
so move them more closely together. This will also allow to move
functionality from register() to alloc() without needing
forward-declarations.

Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>