GitHub/exynos8895/android_kernel_samsung_universal8895.git
12 years agoiwlwifi: remove messages from queue wake/stop
Johannes Berg [Wed, 7 Mar 2012 17:52:39 +0000 (09:52 -0800)]
iwlwifi: remove messages from queue wake/stop

The only reason we ever stop/wake queues at
the transport level is now that they become
full (or non-full), so the messages aren't
useful any more -- remove them.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: more status bit factoring
Don Fry [Wed, 7 Mar 2012 17:52:37 +0000 (09:52 -0800)]
iwlwifi: more status bit factoring

Continue splitting the status bits between transport and op_mode.
All but a few are separated.

Signed-off-by: Don Fry <donald.h.fry@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: move setting up fw parameters
Meenakshi Venkataraman [Wed, 7 Mar 2012 17:52:36 +0000 (09:52 -0800)]
iwlwifi: move setting up fw parameters

Gather parameters required to configure the
transport layer before invoking the transport
configuration API.

Change-Id: I5b39da284af6d9b5432a08911b4e1173a4d7207d
Signed-off-by: Meenakshi Venkataraman <meenakshi.venkataraman@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: configure transport layer from dvm op mode
Meenakshi Venkataraman [Wed, 7 Mar 2012 17:52:35 +0000 (09:52 -0800)]
iwlwifi: configure transport layer from dvm op mode

Introduce the iwl_trans_config struct which contains
state variables that only the op mode can determine,
but which the transport layer needs to know.

Signed-off-by: Meenakshi Venkataraman <meenakshi.venkataraman@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: log stop / wake queues
Emmanuel Grumbach [Wed, 7 Mar 2012 17:52:34 +0000 (09:52 -0800)]
iwlwifi: log stop / wake queues

There were a few missing occurences when we get PASSIVE_NO_RX
notification.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: make tx_cmd_pool kmem cache global
Stanislaw Gruszka [Wed, 7 Mar 2012 17:52:33 +0000 (09:52 -0800)]
iwlwifi: make tx_cmd_pool kmem cache global

Otherwise we are not able to run more than one device per driver:

[   24.743045] kmem_cache_create: duplicate cache iwl_dev_cmd
[   24.743051] Pid: 3165, comm: NetworkManager Not tainted 3.3.0-rc2-wl+ #5
[   24.743054] Call Trace:
[   24.743066]  [<ffffffff811717d5>] kmem_cache_create+0x655/0x700
[   24.743101]  [<ffffffffa03b9f8b>] iwl_alive_notify+0x1cb/0x1f0 [iwlwifi]
[   24.743111]  [<ffffffffa03ba442>] iwl_load_ucode_wait_alive+0x1b2/0x220 [iwlwifi]
[   24.743142]  [<ffffffffa03ba893>] iwl_run_init_ucode+0x73/0x100 [iwlwifi]
[   24.743152]  [<ffffffffa03b8fa1>] __iwl_up+0x81/0x220 [iwlwifi]
[   24.743161]  [<ffffffffa03b91c0>] iwlagn_mac_start+0x80/0x190 [iwlwifi]
[   24.743188]  [<ffffffffa03307b3>] ieee80211_do_open+0x293/0x770 [mac80211]

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: separate status to priv and trans
Don Fry [Wed, 7 Mar 2012 17:52:32 +0000 (09:52 -0800)]
iwlwifi: separate status to priv and trans

The shared status bits are a mixture of transport and op mode bits.
Some are used just by one or the other, some are shared.  Begin the
de-tangling of these bits.

Signed-off-by: Don Fry <donald.h.fry@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: add option to test MFP
David Spinadel [Wed, 7 Mar 2012 17:52:31 +0000 (09:52 -0800)]
iwlwifi: add option to test MFP

Add a Kconfig symbol to enable MFP for testing even
if the firmware file doesn't advertise it.

Signed-off-by: David Spinadel <david.spinadel@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: fixed testmode notifications length
Amit Beka [Wed, 7 Mar 2012 17:52:30 +0000 (09:52 -0800)]
iwlwifi: fixed testmode notifications length

The length of iwl_rx_packet doesn't include the
dword for the length itself, so add it manually.

Signed-off-by: Amit Beka <amit.beka@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: add testmode command for rx forwarding
Amit Beka [Wed, 7 Mar 2012 17:52:29 +0000 (09:52 -0800)]
iwlwifi: add testmode command for rx forwarding

Added a testmode command which tells iwl_rx_dispatch
to send the RX both as a notification to nl80211 and
with the registered RX handlers.

This is used for monitoring RX from userspace while preserving
the regular flows in the driver.

Signed-off-by: Amit Beka <amit.beka@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: reintroduce iwl_enable_rfkill_int
Stanislaw Gruszka [Wed, 7 Mar 2012 17:52:28 +0000 (09:52 -0800)]
iwlwifi: reintroduce iwl_enable_rfkill_int

If device is disabled by rfkill switch, do not enable all interrupts,
but only CSR_INT_BIT_RF_KILL to receive rfkill state change. Unblocking
other interrupts might cause problems, since driver can not be prepared
for receive them.

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: print DMA stop timeout error only if it happened
Stanislaw Gruszka [Wed, 7 Mar 2012 17:52:27 +0000 (09:52 -0800)]
iwlwifi: print DMA stop timeout error only if it happened

iwl_poll_direct_bit() return negative error value on timeout,
positive values do not indicate an error.

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: use writeb,writel,readl directly
Stanislaw Gruszka [Wed, 7 Mar 2012 17:52:26 +0000 (09:52 -0800)]
iwlwifi: use writeb,writel,readl directly

That change will save us some CPU cycles at run time. Having port-based
I/O seems to be not possible for PCIe devices.

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: cleanup/fix memory barriers
Stanislaw Gruszka [Wed, 7 Mar 2012 17:52:25 +0000 (09:52 -0800)]
iwlwifi: cleanup/fix memory barriers

wmb(), rmb() are not needed when writel(), readl() are used as
accessors for MMIO. We use them indirectly via iowrite32(),
ioread32().

What is needed mmiowb(), for synchronizing writes coming from
different CPUs on PCIe bridge (see in patch comments). This
fortunately is not needed on x86, where mmiowb() is just
defined as compiler barrier. As iwlwifi devices are most likely
not used on anything other than x86, this is not so important
fix.

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: always check if got h/w access before write
Stanislaw Gruszka [Wed, 7 Mar 2012 17:52:24 +0000 (09:52 -0800)]
iwlwifi: always check if got h/w access before write

Before we write to the device registers always check if
iwl_grap_nic_access() was successful.

On the way change return type of grab_nic_access() to bool, and add
likely()/unlikely() statement.

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: dump stack when fail to gain access to the device
Stanislaw Gruszka [Wed, 7 Mar 2012 17:52:23 +0000 (09:52 -0800)]
iwlwifi: dump stack when fail to gain access to the device

Print dump stack when the device is not responding. This should give
some more clue about the reason of failure. Also change the message we
print, since "MAC in deep sleep" is kinda confusing.

On the way add unlikely(), as fail to gain NIC access is hmm ...
unlikely.

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: return error if loading uCode failed
Johannes Berg [Wed, 7 Mar 2012 17:52:22 +0000 (09:52 -0800)]
iwlwifi: return error if loading uCode failed

In "iwlwifi: consolidate the start_device flow"
the code flow changed and the firmware is now
loaded by the transport layer, but the change
unfortunately lost error checking -- restore.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: remove unused max_nrg_cck from sensitivity and constify
Johannes Berg [Wed, 7 Mar 2012 17:52:21 +0000 (09:52 -0800)]
iwlwifi: remove unused max_nrg_cck from sensitivity and constify

The sensitivity parameters are never modified, so they
should be const. Also remove the unused max_nrg_cck
value to save some space.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: make EEPROM enhanced TX power a bool
Johannes Berg [Wed, 7 Mar 2012 17:52:20 +0000 (09:52 -0800)]
iwlwifi: make EEPROM enhanced TX power a bool

There's no need to carry around the function
pointer when a boolean indicating that the
EEPROM stores enhanced TX power information
is sufficient.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: move BT/HT params to shared
Johannes Berg [Wed, 7 Mar 2012 17:52:19 +0000 (09:52 -0800)]
iwlwifi: move BT/HT params to shared

Hardware parameters will be shared, so
move the definitions into the shared
header file.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: remove BT handlers from lib_ops
Johannes Berg [Wed, 7 Mar 2012 17:52:18 +0000 (09:52 -0800)]
iwlwifi: remove BT handlers from lib_ops

There's no need to have operations for
these as they simply depend on whether
the device has built-in bluetooth, so
just duplicate the information already
there (whether bt_params is present or
not).

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: transport's tx_agg_disable must be atomic
Johannes Berg [Wed, 7 Mar 2012 17:52:17 +0000 (09:52 -0800)]
iwlwifi: transport's tx_agg_disable must be atomic

At least as long as it is called from the reclaim
flow (iwlagn_check_ratid_empty) it must be atomic.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: redesign PASSIVE_NO_RX workaround
Johannes Berg [Wed, 7 Mar 2012 17:52:16 +0000 (09:52 -0800)]
iwlwifi: redesign PASSIVE_NO_RX workaround

The PASSIVE_NO_RX workaround currently crosses
through the op_mode and transport layers, which
is a bit odd. This also isn't necessary, if the
transport simply reports when queues are full
(or no longer full) the op_mode can keep track
of this state, and report to mac80211 only what
*it* thinks is appropriate. What is appropriate
can then be based on whether queues should be
stopped to wait for RX or not.

This significantly simplifies the transport API,
it no longer needs to expose anything to stop a
queue, nor to wake "any" queue, this can all be
handled in the upper layer completely.

Also simplify the handling to not be dependent
on the context, that makes little sense as the
queues are shared and both contexts have to be
on the same channel anyway.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: remove unused argument from iwlagn_suspend
Johannes Berg [Wed, 7 Mar 2012 17:52:15 +0000 (09:52 -0800)]
iwlwifi: remove unused argument from iwlagn_suspend

There's not much point in passing priv and
hw pointers since they can be derived from
each other, and the function doesn't use
the hw pointer anyway. Remove it.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: remove two unused arguments in testmode
Johannes Berg [Wed, 7 Mar 2012 17:52:14 +0000 (09:52 -0800)]
iwlwifi: remove two unused arguments in testmode

The dump functions never access the incoming
attributes, so don't pass them.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: remove unused argument from iwl_init_hw_rates
Johannes Berg [Wed, 7 Mar 2012 17:52:13 +0000 (09:52 -0800)]
iwlwifi: remove unused argument from iwl_init_hw_rates

The function never uses the priv argument as it
only fills in the passed data, so remove the
argument.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: move iwl_sta_id_or_broadcast to user
Johannes Berg [Wed, 7 Mar 2012 17:52:12 +0000 (09:52 -0800)]
iwlwifi: move iwl_sta_id_or_broadcast to user

There's only one user, so the function
can be moved into the correct file. It
also loses an argument along the way.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: remove unused argument from rs_initialize_lq
Johannes Berg [Wed, 7 Mar 2012 17:52:11 +0000 (09:52 -0800)]
iwlwifi: remove unused argument from rs_initialize_lq

The function never uses its conf argument,
so remove it.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: remove unused arguments from iwlagn_gain_computation
Johannes Berg [Wed, 7 Mar 2012 17:52:10 +0000 (09:52 -0800)]
iwlwifi: remove unused arguments from iwlagn_gain_computation

The function has two arguments it never uses,
remove them.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoMerge branch 'wl12xx-next' into for-linville
Luciano Coelho [Thu, 8 Mar 2012 12:40:40 +0000 (14:40 +0200)]
Merge branch 'wl12xx-next' into for-linville

12 years agowl12xx: implement SW Tx watchdog
Arik Nemtsov [Sat, 3 Mar 2012 20:18:00 +0000 (22:18 +0200)]
wl12xx: implement SW Tx watchdog

Track freed FW blocks during Tx. If no blocks were freed during a
predefined timeout, initiate a HW recovery. This helps in situations
when the FW watchdog fails.

Don't trigger recovery during activities that can temporarily stop
Tx. This includes:
- scanning
- buffering packets for sleeping stations (AP role)
- ROC on any role

Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agortl8187: Add AD-HOC support
Attila Fazekas [Thu, 23 Feb 2012 18:50:35 +0000 (19:50 +0100)]
rtl8187: Add AD-HOC support

Add AD-HOC support to the rtl8187 based on the rtl8180 source

Signed-off-by: Attila Fazekas <turul64@gmail.com>
Acked-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agobcma: silence PMU warning for BCM4331
Rafał Miłecki [Wed, 7 Mar 2012 08:11:22 +0000 (09:11 +0100)]
bcma: silence PMU warning for BCM4331

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomac80211: fix smatch lock errors in mesh
Thomas Pedersen [Wed, 7 Mar 2012 00:42:09 +0000 (16:42 -0800)]
mac80211: fix smatch lock errors in mesh

smatch was complaining:

CHECK   net/mac80211/mesh_pathtbl.c
net/mac80211/mesh_pathtbl.c:562 mesh_path_add() error: double lock
'bottom_half:'
net/mac80211/mesh_pathtbl.c:580 mesh_path_add() error: double unlock
'bottom_half:'
net/mac80211/mesh_pathtbl.c:589 mesh_path_add() error: double unlock
'bottom_half:'
net/mac80211/mesh_pathtbl.c:691 mpp_path_add() error: double lock
'bottom_half:'
net/mac80211/mesh_pathtbl.c:707 mpp_path_add() error: double unlock
'bottom_half:'
net/mac80211/mesh_pathtbl.c:716 mpp_path_add() error: double unlock
'bottom_half:'
net/mac80211/mesh_pathtbl.c:814 mesh_path_flush_by_nexthop() error:
double lock 'bottom_half:'
net/mac80211/mesh_pathtbl.c:819 mesh_path_flush_by_nexthop() error:
double unlock 'bottom_half:'
net/mac80211/mesh_pathtbl.c:887 mesh_path_del() error: double lock
'bottom_half:'
net/mac80211/mesh_pathtbl.c:901 mesh_path_del() error: double unlock
'bottom_half:'

So don't lock / unlock with _bh() while bottom halves are already
disabled.

Reported-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: Thomas Pedersen <thomas@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: make iwl_fill_probe_req static
Johannes Berg [Tue, 6 Mar 2012 21:31:08 +0000 (13:31 -0800)]
iwlwifi: make iwl_fill_probe_req static

This function is only used in iwl-scan.c, so
if we move it up a little in the file it can
be made static.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: clean up iwl-commands.h
Johannes Berg [Tue, 6 Mar 2012 21:31:07 +0000 (13:31 -0800)]
iwlwifi: clean up iwl-commands.h

Do some cleanups here:
 * remove an unused prototype
 * remove some unused constants
 * clean up includes

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: don't include iwl-prph.h everywhere
Johannes Berg [Tue, 6 Mar 2012 21:31:06 +0000 (13:31 -0800)]
iwlwifi: don't include iwl-prph.h everywhere

It's only needed in a few places.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: remove PA type configuration
Johannes Berg [Tue, 6 Mar 2012 21:31:05 +0000 (13:31 -0800)]
iwlwifi: remove PA type configuration

No need to have a special config variable
for the PA type, we can just use the
additional NIC config function to config
the hardware correctly.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: remove priv from shared
Johannes Berg [Tue, 6 Mar 2012 21:31:04 +0000 (13:31 -0800)]
iwlwifi: remove priv from shared

Finally nothing needs to access priv
from shared any more, so remove it.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: virtualize nic_config
Johannes Berg [Tue, 6 Mar 2012 21:31:03 +0000 (13:31 -0800)]
iwlwifi: virtualize nic_config

The nic_config sets uCode dependent register
bits, so it must be virtual in the op_mode.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: move packet to transport
Johannes Berg [Tue, 6 Mar 2012 21:31:02 +0000 (13:31 -0800)]
iwlwifi: move packet to transport

The base packet structure will (hopefully) be
the same for all transports, but what is in it
differs. Remove the union of all the possible
contents and move the packet itself into the
transport header file. This requires changing
all users of the union to just use pkt->data.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: move irq to PCIe
Johannes Berg [Tue, 6 Mar 2012 21:31:01 +0000 (13:31 -0800)]
iwlwifi: move irq to PCIe

Even if the variable might also be used by other
transports, there's no need for anything outside
of the transport itself to access it, so move it
into the private area.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: move all uCode load variables
Johannes Berg [Tue, 6 Mar 2012 21:31:00 +0000 (13:31 -0800)]
iwlwifi: move all uCode load variables

All variables related to uCode loading (the
waitqueue and done indication) should be in
the PCI-E transport's private data as this
is transport specific. Move them there.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: move ucode_owner to priv
Johannes Berg [Tue, 6 Mar 2012 21:30:59 +0000 (13:30 -0800)]
iwlwifi: move ucode_owner to priv

The transport doesn't really need to know as
we can enforce it in the command wrapper.
Move the ucode_owner variable into priv and
do all enforcing there.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: abstract out notification wait support
Johannes Berg [Tue, 6 Mar 2012 21:30:58 +0000 (13:30 -0800)]
iwlwifi: abstract out notification wait support

This will be sharable, but needs to live in the
op_mode as it is dependent on command processing.
Make a library out of the notification wait code.

Since I wrote all of the code originally and only
Intel employees changed it, we can also relicense
it to dual BSD/GPL.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: fix notification wait bug
Johannes Berg [Tue, 6 Mar 2012 21:30:57 +0000 (13:30 -0800)]
iwlwifi: fix notification wait bug

In "iwlwifi: consolidate the start_device flow"
Emmanuel added the return if the fw isn't there
but forgot to take into account that the struct
for notification wait needs to be added only
after the check -- fix that.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: constify remaining config data
Johannes Berg [Tue, 6 Mar 2012 21:30:56 +0000 (13:30 -0800)]
iwlwifi: constify remaining config data

The HW configuration settings base_params, ht_params
and bt_params all should be const, make it so.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: put use_rts_for_aggregation into hw_params
Johannes Berg [Tue, 6 Mar 2012 21:30:55 +0000 (13:30 -0800)]
iwlwifi: put use_rts_for_aggregation into hw_params

The hardware config ht_params shouldn't be modified,
so copy the use_rts_for_aggregation parameter into
hw_params and use/modify it there.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: use watchdog timeout from hw_params
Johannes Berg [Tue, 6 Mar 2012 21:30:54 +0000 (13:30 -0800)]
iwlwifi: use watchdog timeout from hw_params

This is the version that can be modified, the
config params should be read-only.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: keep plcp_delta_threshold in priv
Johannes Berg [Tue, 6 Mar 2012 21:30:53 +0000 (13:30 -0800)]
iwlwifi: keep plcp_delta_threshold in priv

The base_params shouldn't be writable, so keep
a copy of this in priv that can be modified.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: remove max_txq_num from hw_params
Johannes Berg [Tue, 6 Mar 2012 21:30:52 +0000 (13:30 -0800)]
iwlwifi: remove max_txq_num from hw_params

This can be used directly from the config now.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: remove num_of_queues module parameter
Johannes Berg [Tue, 6 Mar 2012 21:30:51 +0000 (13:30 -0800)]
iwlwifi: remove num_of_queues module parameter

This is a hardware parameter, so it shouldn't
be configurable by the user. Users can disable
aggregation (which is the only thing affected)
with 11n_disable.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: clean up iwl-core.h inclusions
Johannes Berg [Tue, 6 Mar 2012 21:30:50 +0000 (13:30 -0800)]
iwlwifi: clean up iwl-core.h inclusions

The transport doesn't need to include iwl-core.h any more.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: virtualize command queue full behaviour
Johannes Berg [Tue, 6 Mar 2012 21:30:49 +0000 (13:30 -0800)]
iwlwifi: virtualize command queue full behaviour

When the command queue is full, the transport
will return -ENOSPC, but the reaction to that
depends on the op_mode. Virtualize that, the
DVM op_mode checks for CT-kill and restarts
the hardware otherwise.

We may be able to get rid of this callback by
putting the behaviour check into the wrapper
but that needs more careful evaluation.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: make tracing use device as identifier
Johannes Berg [Tue, 6 Mar 2012 21:30:48 +0000 (13:30 -0800)]
iwlwifi: make tracing use device as identifier

Tracing used the priv pointer as an identifier,
which has the problem that we don't have it in
all code, and also some people say no pointers
should be "leaked" to userspace.

Use the device name instead, it is more useful
anyway.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: move status check functions out of shared
Johannes Berg [Tue, 6 Mar 2012 21:30:47 +0000 (13:30 -0800)]
iwlwifi: move status check functions out of shared

They are only used in the DVM op_mode.
Also move the rfkill debug macros that
depend on them.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: remove shadow_reg_enable from hw_params
Johannes Berg [Tue, 6 Mar 2012 21:30:46 +0000 (13:30 -0800)]
iwlwifi: remove shadow_reg_enable from hw_params

There's no need to copy shadow_reg_enable into
hw_params since it is a pure hardware parameter
that will never change, we can access it from
the config directly.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: remove AMT check from transport
Johannes Berg [Tue, 6 Mar 2012 21:30:45 +0000 (13:30 -0800)]
iwlwifi: remove AMT check from transport

As iwl_prepare_card_hw() is idempotent (and
many cards support AMT anyway) there's no
point in calling iwl_prepare_card_hw() only
for AMT capable devices -- call it always
and simplify the code that way.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: rename ucode.h to fw-file.h
Johannes Berg [Tue, 6 Mar 2012 21:30:44 +0000 (13:30 -0800)]
iwlwifi: rename ucode.h to fw-file.h

That name better reflects the contents
of the file and the fact that it isn't
related to iwl-ucode.c.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: move rfkill status handling out of transport
Johannes Berg [Tue, 6 Mar 2012 21:30:43 +0000 (13:30 -0800)]
iwlwifi: move rfkill status handling out of transport

The transport layer should only check the
hardware RF kill status, not impose any
policy or reaction based on it, so move
that out of it into the op_mode.

For now keep the restriction on loading
firmware, that will have to be removed
later.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: move mutex out of shared
Johannes Berg [Tue, 6 Mar 2012 21:30:42 +0000 (13:30 -0800)]
iwlwifi: move mutex out of shared

Now the mutex no longer needs to be
shared, so move it into iwl_priv.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: move lockdep assertion into DVM
Johannes Berg [Tue, 6 Mar 2012 21:30:41 +0000 (13:30 -0800)]
iwlwifi: move lockdep assertion into DVM

The fact that the mutex must be held is an
implementation detail of DVM, but something
has to ensure that no two synchronous cmds
are submitted concurrently. Move the lockdep
assertion into the DVM-specific code, but
also make the transport abort if there are
two concurrently commands.

The assertion is much more useful though as
the transport check can only catch it when
it actually happens, while the assertion
makes sure it can't possibly happen.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: move RF/CT kill check to command wrapper
Johannes Berg [Tue, 6 Mar 2012 21:30:40 +0000 (13:30 -0800)]
iwlwifi: move RF/CT kill check to command wrapper

Currently, we cannot send any commands when the
uCode is in RF or CT kill, but that will not be
true for all new uCode versions, so we need to
move the check into the uCode specific code.

Also remove the duplicate rfkill check.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: add wrappers for command sending
Johannes Berg [Tue, 6 Mar 2012 21:30:39 +0000 (13:30 -0800)]
iwlwifi: add wrappers for command sending

Add wrappers to send commands from the DVM
op-mode (which essentially consists of the
current driver). This will allow us to move
specific sanity checks there.

Also, this removes iwl_trans_send_cmd_pdu()
since that can now be taken care of in the
DVM-specific wrapper.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: remove iwl-wifi.h
Johannes Berg [Tue, 6 Mar 2012 21:30:38 +0000 (13:30 -0800)]
iwlwifi: remove iwl-wifi.h

This file was recently introduced, but then
directly abused -- it contained private data
that shouldn't have been used by anything
but the implementation of firmware requests
and some very core code. Now that it is no
longer accessed by any code but the code in
iwl-drv.c, we can dissolve it.

Also rename the iwl_nic struct to iwl_drv to
better reflect where and how it is used.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: split out firmware store
Johannes Berg [Tue, 6 Mar 2012 21:30:37 +0000 (13:30 -0800)]
iwlwifi: split out firmware store

Through the driver, struct iwl_fw will
store the firmware. Split this out into
a separate file, iwl-fw.h, and make all
other code use it. To do this, also move
the log pointers into it, and remove the
knowledge of "nic" from everything.

Now the op_mode has a fw pointer, and
(unfortunately) for now the shared data
also needs to keep one for the transport
to access dump the error log -- I think
that will move later.

Since I wanted to constify the firmware
pointers, some more changes were needed.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: move ucode loading to op_mode
Johannes Berg [Tue, 6 Mar 2012 21:30:36 +0000 (13:30 -0800)]
iwlwifi: move ucode loading to op_mode

uCode loading belongs to the op_mode, as it
is dependent on various things there and the
commands sent during it are specific to it.
Move the prototypes to iwl-agn.h to indicate
this. To make this possible, also move all
the calibration handling (which is op_mode
dependent after all).

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomac80211: Fix potential null pointer dereferencing
Ashok Nagarajan [Tue, 6 Mar 2012 20:48:30 +0000 (12:48 -0800)]
mac80211: Fix potential null pointer dereferencing

The patch "{nl,cfg,mac}80211: Implement RSSI threshold for mesh peering"
has a potential null pointer dereferencing problem. Thanks to Dan Carpenter
for pointing out. This patch will fix the issue.

Signed-off-by: Ashok Nagarajan <ashok@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoath9k: fix signal strength reporting issues
Felix Fietkau [Sat, 3 Mar 2012 14:17:06 +0000 (15:17 +0100)]
ath9k: fix signal strength reporting issues

On A-MPDU frames, the hardware only reports valid signal strength data for
the last subframe. The driver also mangled rx_stats->rs_rssi using the
ATH_EP_RND macro in a way that may make sense for ANI, but definitely
not for reporting to mac80211.
This patch changes the code to calculate the signal strength from the rssi
directly instead of taking the average value, and flag everything but
the last subframe in an A-MPDU to tell mac80211 to ignore the signal strength
entirely, fixing signal strength fluctuation issues reported by various
users.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoath9k: get rid of double queueing of rx frames on EDMA
Felix Fietkau [Sat, 3 Mar 2012 14:17:05 +0000 (15:17 +0100)]
ath9k: get rid of double queueing of rx frames on EDMA

Process rx status directly instead of separating the completion test from
the actual rx status processing.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoath9k: remove rssi/antenna information from recv debug stats
Felix Fietkau [Sat, 3 Mar 2012 14:17:04 +0000 (15:17 +0100)]
ath9k: remove rssi/antenna information from recv debug stats

The way this is implemented (simply storing the last value) is absolutely
worthless for debugging anything, and the same information is also available
through the MAC sample feature, so there's no point in keeping this around.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoath9k: make MAC sample statistics optional
Felix Fietkau [Sat, 3 Mar 2012 14:17:03 +0000 (15:17 +0100)]
ath9k: make MAC sample statistics optional

They're more expensive than some of the other debug options and only used
in very rare situations, so it sometimes makes sense to disable them while
leaving in debugfs support.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoath9k_hw: use cold instead of warm reset on AR9280
Felix Fietkau [Sat, 3 Mar 2012 14:17:02 +0000 (15:17 +0100)]
ath9k_hw: use cold instead of warm reset on AR9280

Cold reset is more reliable for getting the hardware out of some specific
stuck states.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomac80211: Filter duplicate IE ids
Paul Stewart [Fri, 24 Feb 2012 01:59:53 +0000 (17:59 -0800)]
mac80211: Filter duplicate IE ids

mac80211 is lenient with respect to reception of corrupted beacons.
Even if the frame is corrupted as a whole, the available IE elements
are still passed back and accepted, sometimes replacing legitimate
data.  It is unknown to what extent this "feature" is made use of,
but it is clear that in some cases, this is detrimental.  One such
case is reported in http://crosbug.com/26832 where an AP corrupts
its beacons but not its probe responses.

One approach would be to completely reject frames with invaid data
(for example, if the last tag extends beyond the end of the enclosing
PDU).  The enclosed approach is much more conservative: we simply
prevent later IEs from overwriting the state from previous ones.
This approach hopes that there might be some salient data in the
IE stream before the corruption, and seeks to at least prevent that
data from being overwritten.  This approach will fix the case above.

Further, we flag element structures that contain data we think might
be corrupted, so that as we fill the mac80211 BSS structure, we try
not to replace data from an un-corrupted probe response with that
of a corrupted beacon, for example.

Short of any statistics gathering in the various forms of AP breakage,
it's not possible to ascertain the side effects of more stringent
discarding of data.

Signed-off-by: Paul Stewart <pstew@chromium.org>
Cc: Sam Leffler <sleffler@chromium.org>
Cc: Eliad Peller <eliad@wizery.com>
Acked-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoNFC: NCI code identation fixes
Samuel Ortiz [Mon, 5 Mar 2012 00:03:54 +0000 (01:03 +0100)]
NFC: NCI code identation fixes

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoNFC: Core code identation fixes
Samuel Ortiz [Mon, 5 Mar 2012 00:03:53 +0000 (01:03 +0100)]
NFC: Core code identation fixes

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoNFC: LLCP code identation fixes
Samuel Ortiz [Mon, 5 Mar 2012 00:03:52 +0000 (01:03 +0100)]
NFC: LLCP code identation fixes

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoNFC: Fix LLCP sockets releasing path
Samuel Ortiz [Mon, 5 Mar 2012 00:03:51 +0000 (01:03 +0100)]
NFC: Fix LLCP sockets releasing path

The socket local pointer needs to be set to NULL when the adapter is
removed or the MAC goes down.
If the socket release code is called after such an event, the socket
reference count still needs to be decreased in order for the socket to
eventually be freed.

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoNFC: Remove the rf mode parameter from the DEP link up routine
Samuel Ortiz [Mon, 5 Mar 2012 00:03:50 +0000 (01:03 +0100)]
NFC: Remove the rf mode parameter from the DEP link up routine

When calling nfc_dep_link_up, we implicitely are in initiator mode.
Which means we also can provide the general bytes as a function argument,
as all drivers will eventually request them.

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoNFC: SN is not an invalid GT value
Samuel Ortiz [Mon, 5 Mar 2012 00:03:49 +0000 (01:03 +0100)]
NFC: SN is not an invalid GT value

We just don't do anything with it when parsing the general bytes.
We handle it from the CONNECT reception code.

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoNFC: Unlink LLCP child sockets from llcp_sock_release
Samuel Ortiz [Mon, 5 Mar 2012 00:03:48 +0000 (01:03 +0100)]
NFC: Unlink LLCP child sockets from llcp_sock_release

The parent socket (the bound one) could be freed before its children, so
we should unlink the children without trying to reach it through the parent.

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoNFC: Export NFCID when detecting a p2p target with pn533
Samuel Ortiz [Mon, 5 Mar 2012 00:03:47 +0000 (01:03 +0100)]
NFC: Export NFCID when detecting a p2p target with pn533

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoNFC: Export Jewel/Topaz ID from pn533
Samuel Ortiz [Mon, 5 Mar 2012 00:03:46 +0000 (01:03 +0100)]
NFC: Export Jewel/Topaz ID from pn533

The jewel ID is the NFCID1 for Topaz NFC tags.

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoNFC: Export sensf from pn533
Samuel Ortiz [Mon, 5 Mar 2012 00:03:45 +0000 (01:03 +0100)]
NFC: Export sensf from pn533

sensf is the detection response for Felica NFC tags.

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoNFC: Fragment LLCP I frames
Samuel Ortiz [Mon, 5 Mar 2012 00:03:44 +0000 (01:03 +0100)]
NFC: Fragment LLCP I frames

Based on the receiver MIU, we have to fragment the frame to be
transmitted.

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoNFC: Set MIU and RW values from CONNECT and CC LLCP frames
Samuel Ortiz [Mon, 5 Mar 2012 00:03:43 +0000 (01:03 +0100)]
NFC: Set MIU and RW values from CONNECT and CC LLCP frames

We use the maximum values for the LLCP Maximum Information Unit and Receive
Window Size.

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoNFC: Send LLCP RR frames to acknowledge received I frames
Samuel Ortiz [Mon, 5 Mar 2012 00:03:42 +0000 (01:03 +0100)]
NFC: Send LLCP RR frames to acknowledge received I frames

In order to acknowledge an I frame, we have to either queue pending local
I frames or queue a receiver ready frame.

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoNFC: Set the right LLCP N(R) value for I frames
Samuel Ortiz [Mon, 5 Mar 2012 00:03:41 +0000 (01:03 +0100)]
NFC: Set the right LLCP N(R) value for I frames

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoNFC: Clear LLCP SDPs whan MAC goes down
Samuel Ortiz [Mon, 5 Mar 2012 00:03:40 +0000 (01:03 +0100)]
NFC: Clear LLCP SDPs whan MAC goes down

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoNFC: Clear pn533 target structure
Samuel Ortiz [Mon, 5 Mar 2012 00:03:39 +0000 (01:03 +0100)]
NFC: Clear pn533 target structure

The polled target structure should be memset to 0 in order to avoid
sel_res and sens_res garbage.

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoNFC: Fix bitops usage in LLCP
Samuel Ortiz [Mon, 5 Mar 2012 00:03:38 +0000 (01:03 +0100)]
NFC: Fix bitops usage in LLCP

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoNFC: LLCP socket sendmsg implemetation
Samuel Ortiz [Mon, 5 Mar 2012 00:03:37 +0000 (01:03 +0100)]
NFC: LLCP socket sendmsg implemetation

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoNFC: Handle Receiver Not Ready LLCP frame
Samuel Ortiz [Mon, 5 Mar 2012 00:03:36 +0000 (01:03 +0100)]
NFC: Handle Receiver Not Ready LLCP frame

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoNFC: Factorize the I frame queueing routine
Samuel Ortiz [Mon, 5 Mar 2012 00:03:35 +0000 (01:03 +0100)]
NFC: Factorize the I frame queueing routine

This one will be called from the I frame command sending.

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoNFC: Add device powered netlink attribute
Samuel Ortiz [Mon, 5 Mar 2012 00:03:34 +0000 (01:03 +0100)]
NFC: Add device powered netlink attribute

For user space to know if a device is up or down.

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoNFC: Export NFCID1 from pn533
Samuel Ortiz [Mon, 5 Mar 2012 00:03:33 +0000 (01:03 +0100)]
NFC: Export NFCID1 from pn533

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agobcma: add support for on-chip OTP memory used for SPROM storage
Arend van Spriel [Tue, 6 Mar 2012 14:50:48 +0000 (15:50 +0100)]
bcma: add support for on-chip OTP memory used for SPROM storage

Wireless Broadcom chips can have either their SPROM data stored
on either external SPROM or on-chip OTP memory. Both are accessed
through the same register space. This patch adds support for the
on-chip OTP memory.

Tested with:
BCM43224 OTP and SPROM
BCM4331 SPROM
BCM4313 OTP

This patch is in response to linux-wireless thread [1].

[1] http://article.gmane.org/gmane.linux.kernel.wireless.general/85426

Tested-by: Saul St. John <saul.stjohn@gmail.com>
Tested-by: Rafal Milecki <zajec5@gmail.com>
Tested-by: Hauke Mehrtens <hauke@hauke-m.de>
Cc: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agobcma: return error in bcma_sprom_get() when fallback fails
Arend van Spriel [Tue, 6 Mar 2012 14:50:47 +0000 (15:50 +0100)]
bcma: return error in bcma_sprom_get() when fallback fails

When not SPROM is available a fallback mechanism is used. However,
when that fails the code currently continues. This patch assures
that the bcma_sprom_get() function aborts when that happens.

Cc: Rafal Milecki <zajec5@gmail.com>
Cc: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoath5k: do not re-run AGC calibration periodically
Felix Fietkau [Tue, 6 Mar 2012 10:06:38 +0000 (11:06 +0100)]
ath5k: do not re-run AGC calibration periodically

All other Atheros drivers run the AGC gain calibration and DC offset
calibration only after reset. Running them periodically has caused stability
issues on some (primarily AR2315/2413/5413/5414 based) devices, leading to
messages such as:

ath5k phy0: gain calibration timeout (2462MHz)
ath5k phy0: calibration of channel 11 failed

Related bug reports:
https://dev.openwrt.org/ticket/10574
https://bugzilla.redhat.com/show_bug.cgi?id=795141

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Acked-by: Nick Kossifidis <mickflemm@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoath5k: do not stop queues for full calibration
Felix Fietkau [Tue, 6 Mar 2012 10:06:37 +0000 (11:06 +0100)]
ath5k: do not stop queues for full calibration

Some calibration types interfere with tx activity, but the queue stop does
not prevent that. In fact, some calibration types need tx activity to properly
function, so stopping the queues for them is counterproductive.
In some tests this patch has been shown to improve stability, especially in
AP or ad-hoc mode.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Acked-by: Nick Kossifidis <mickflemm@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>