carl9170fw.git
8 years agokconfig: allow kconfig to handle longer path names
Markus Mayer [Wed, 9 Dec 2015 22:56:12 +0000 (14:56 -0800)]
kconfig: allow kconfig to handle longer path names

The current (arbitrary) limit of 128 characters for path names has
proven too short for Android builds, as longer path names are used
there.

Change conf.c, so it can handle path lengths up to PATH_MAX characters.

Signed-off-by: Markus Mayer <mmayer@broadcom.com>
Signed-off-by: Michal Marek <mmarek@suse.com>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
8 years agokconfig: Fix copy&paste error
Michal Sojka [Mon, 19 Oct 2015 14:51:02 +0000 (16:51 +0200)]
kconfig: Fix copy&paste error

Fixes: 31847b67bec0 ("kconfig: allow use of relations other than (in)equality")
Signed-off-by: Michal Sojka <sojkam1@fel.cvut.cz>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Michal Marek <mmarek@suse.cz>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
8 years agokbuild: document recursive dependency limitation / resolution
Luis R. Rodriguez [Wed, 7 Oct 2015 23:16:33 +0000 (16:16 -0700)]
kbuild: document recursive dependency limitation / resolution

Recursive dependency issues with kconfig are unavoidable due to
some limitations with kconfig, since these issues are recurring
provide a hint to the user how they can resolve these dependency
issues and also document why such limitation exists.

While at it also document a bit of future prospects of ways to
enhance Kconfig, including providing formal semantics and evaluation
of use of a SAT solver. If you're interested in this work or prospects
of it check out the kconfig-sat project wiki [0] and mailing list [1].

[0] http://kernelnewbies.org/KernelProjects/kconfig-sat
[1] https://groups.google.com/d/forum/kconfig-sat

Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: James Bottomley <jbottomley@odin.com>
Cc: Josh Triplett <josh@joshtriplett.org>
Cc: Paul Bolle <pebolle@tiscali.nl>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Cc: Takashi Iwai <tiwai@suse.de>
Cc: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Jonathan Corbet <corbet@lwn.net>
Cc: Mate Soos <soos.mate@gmail.com>
Signed-off-by: Luis R. Rodriguez <mcgrof@suse.com>
Signed-off-by: Michal Marek <mmarek@suse.com>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
8 years agokconfig: warn of unhandled characters in Kconfig commands
Andreas Ruprecht [Sun, 12 Jul 2015 07:41:50 +0000 (09:41 +0200)]
kconfig: warn of unhandled characters in Kconfig commands

In Kconfig, definitions of options take the following form:
"<COMMAND> <PARAM> <PARAM> ...". COMMANDs and PARAMs are treated
slightly different by the underlying parser.

While commit 2e0d737fc76f ("kconfig: don't silently ignore unhandled
characters") introduced a warning for unsupported characters around
PARAMs, it does not cover situations where a COMMAND has additional
characters before it.

This change makes Kconfig emit a warning if superfluous characters
are found before COMMANDs. As the 'help' statement sometimes is
written as '---help---', the '-' character would now also be regarded
as unhandled and generate a warning. To avoid that, '-' is added to
the list of allowed characters, and the token '---help---' is included
in the zconf.gperf file.

Reported-by: Valentin Rothberg <valentinrothberg@gmail.com>
Signed-off-by: Andreas Ruprecht <andreas.ruprecht@fau.de>
Reviewed-by: Ulf Magnusson <ulfalizer@gmail.com>
Tested-by: Ulf Magnusson <ulfalizer@gmail.com>
Signed-off-by: Michal Marek <mmarek@suse.com>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
8 years agokconfig: Delete unnecessary checks before the function call "sym_calc_value"
Markus Elfring [Tue, 7 Jul 2015 19:48:23 +0000 (21:48 +0200)]
kconfig: Delete unnecessary checks before the function call "sym_calc_value"

The sym_calc_value() function tests whether its argument is NULL and then
returns immediately. Thus the test around the call is not needed.

This issue was detected by using the Coccinelle software.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
Signed-off-by: Michal Marek <mmarek@suse.com>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
8 years agokconfig: allow use of relations other than (in)equality
Jan Beulich [Mon, 15 Jun 2015 12:00:21 +0000 (13:00 +0100)]
kconfig: allow use of relations other than (in)equality

Over the years I found it desirable to be able to use all sorts of
relations, not just (in)equality. And apparently I'm not the only one,
as there's at least one example in the tree where the programmer
assumed this would work (see DEBUG_UART_8250_WORD in
arch/arm/Kconfig.debug). Another possible use would e.g. be to fold the
two SMP/NR_CPUS prompts into one: SMP could be promptless, simply
depending on NR_CPUS > 1.

A (desirable) side effect of this change - resulting from numeric
values now necessarily being compared as numbers rather than as
strings - is that comparing hex values now works as expected: Other
than int ones (which aren't allowed to have leading zeroes), zeroes
following the 0x prefix made them compare unequal even if their values
were equal.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Michal Marek <mmarek@suse.cz>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
8 years agokconfig: don't silently ignore unhandled characters
Jan Beulich [Tue, 20 Jan 2015 12:52:48 +0000 (12:52 +0000)]
kconfig: don't silently ignore unhandled characters

At the very least we should tell people that what they wrote is not
what the utility understands.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Paul Bolle <pebolle@tiscali.nl>
Signed-off-by: Michal Marek <mmarek@suse.cz>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
8 years agoKconfig: Remove bad inference rules expr_eliminate_dups2()
Martin Walch [Fri, 22 May 2015 11:41:52 +0000 (13:41 +0200)]
Kconfig: Remove bad inference rules expr_eliminate_dups2()

expr_eliminate_dups2() in config/expr.c applies two invalid
inference rules:

(FOO || BAR) && (!FOO && !BAR) -> n
(FOO && BAR) || (!FOO || !BAR) -> y

They would be correct in propositional logic, but this is a three-valued
logic, and here it is wrong in that it changes semantics. It becomes
immediately visible when assigning the value 1 to both, FOO and BAR:

(FOO || BAR) && (!FOO && !BAR)
-> min(max(1, 1), min(2-1, 2-1)) = min(1, 1) = 1

while n evaluates to 0 and

(FOO && BAR) || (!FOO || !BAR)
-> max(min(1, 1), max(2-1, 2-1)) = max(1, 1) = 1

with y evaluating to 2.

Fix it by removing expr_eliminate_dups2() and the functions that have no
use anywhere else: expr_extract_eq_and(), expr_extract_eq_or(),
and expr_extract_eq() from config/expr.c

Currently the bug is not triggered in mainline, so this patch does not
modify the configuration space there. To observe the bug consider this
example:

config MODULES
        def_bool y
        option modules

config FOO
        def_tristate m

config BAR
        def_tristate m

config TEST1
        def_tristate y
        depends on (FOO || BAR) && (!FOO && !BAR)

if TEST1 = n
comment "TEST1 broken"
endif

config TEST2
        def_tristate y
        depends on (FOO && BAR) || (!FOO || !BAR)

if TEST2 = y
comment "TEST2 broken"
endif

config TEST3
        def_tristate y
        depends on m && !m

if TEST3 = n
comment "TEST3 broken"
endif

TEST1, TEST2 and TEST3 should all evaluate to m, but without the patch,
none of them does. It is probably not obvious that TEST3 is the same bug,
but it becomes clear when considering what happens internally to the
expression
m && !m":
First it expands to
(m && MODULES) && !(m && MODULES),
then it is transformed into
(m && MODULES) && (!m || !MODULES),
and finally due to the bug it is replaced with n.

As a side effect, this patch reduces code size in expr.c by roughly 10%
and slightly improves startup time for all configuration frontends.

Signed-off-by: Martin Walch <walch.martin@web.de>
Signed-off-by: Michal Marek <mmarek@suse.cz>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
8 years agomac80211: add A-MSDU tx support
Felix Fietkau [Thu, 3 Mar 2016 21:59:00 +0000 (22:59 +0100)]
mac80211: add A-MSDU tx support

Requires software tx queueing and fast-xmit support. For good
performance, drivers need frag_list support as well. This avoids the
need for copying data of aggregated frames. Running without it is only
supported for debugging purposes.

To avoid performance and packet size issues, the rate control module or
driver needs to limit the maximum A-MSDU size by setting
max_rc_amsdu_len in struct ieee80211_sta.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
[fix locking issue]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
8 years agomac80211: add fast-rx path
Johannes Berg [Thu, 31 Mar 2016 17:02:10 +0000 (20:02 +0300)]
mac80211: add fast-rx path

The regular RX path has a lot of code, but with a few
assumptions on the hardware it's possible to reduce the
amount of code significantly. Currently the assumptions
on the driver are the following:
 * hardware/driver reordering buffer (if supporting aggregation)
 * hardware/driver decryption & PN checking (if using encryption)
 * hardware/driver did de-duplication
 * hardware/driver did A-MSDU deaggregation
 * AP_LINK_PS is used (in AP mode)
 * no client powersave handling in mac80211 (in client mode)

of which some are actually checked per packet:
 * de-duplication
 * PN checking
 * decryption
and additionally packets must
 * not be A-MSDU (have been deaggregated by driver/device)
 * be data packets
 * not be fragmented
 * be unicast
 * have RFC 1042 header

Additionally dynamically we assume:
 * no encryption or CCMP/GCMP, TKIP/WEP/other not allowed
 * station must be authorized
 * 4-addr format not enabled

Some data needed for the RX path is cached in a new per-station
"fast_rx" structure, so that we only need to look at this and
the packet, no other memory when processing packets on the fast
RX path.

After doing the above per-packet checks, the data path collapses
down to a pretty simple conversion function taking advantage of
the data cached in the small fast_rx struct.

This should speed up the RX processing, and will make it easier
to reason about parallelizing RX (for which statistics will need
to be per-CPU still.)

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
8 years agoieee80211: support parsing Fine Timing Measurement action frame
Avraham Stern [Thu, 17 Mar 2016 13:02:53 +0000 (15:02 +0200)]
ieee80211: support parsing Fine Timing Measurement action frame

Add definition for Fine Timing Measurement (FTM) frame format
as defined in IEEE802.11-REVmcD5.0 section 9.6.8.33

Signed-off-by: Avraham Stern <avraham.stern@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
8 years agomac80211: limit the A-MSDU Tx based on peer's capabilities
Emmanuel Grumbach [Sun, 13 Dec 2015 13:41:05 +0000 (15:41 +0200)]
mac80211: limit the A-MSDU Tx based on peer's capabilities

In VHT, the specification allows to limit the number of
MSDUs in an A-MSDU in the Extended Capabilities IE. There
is also a limitation on the byte size in the VHT IE.
In HT, the only limitation is on the byte size.
Parse the capabilities from the peer and make them
available to the driver.

In HT, there is another limitation when a BA agreement
is active: the byte size can't be greater than 4095.
This is not enforced here.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
8 years agomac80211: process and save VHT MU-MIMO group frame
Sara Sharon [Tue, 8 Dec 2015 14:04:31 +0000 (16:04 +0200)]
mac80211: process and save VHT MU-MIMO group frame

The Group ID Management frame is an Action frame of
category VHT. It is transmitted by the AP to assign
or change the user position of a STA for one or more
group IDs.
Process and save the group membership data. Notify
underlying driver of changes.

Signed-off-by: Sara Sharon <sara.sharon@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
8 years agowireless: add WNM action frame categories
Johannes Berg [Wed, 7 Oct 2015 13:48:26 +0000 (15:48 +0200)]
wireless: add WNM action frame categories

Add the WNM and unprotected WNM categories and mark the latter
as not robust.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
8 years agowireless: update robust action frame list
Johannes Berg [Wed, 7 Oct 2015 13:48:25 +0000 (15:48 +0200)]
wireless: update robust action frame list

Unprotected DMG and VHT action frames are not protected, reflect
that in the list.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
8 years agonet/ieee80211: ieee80211_is_* can be boolean
Yaowei Bai [Thu, 8 Oct 2015 13:28:55 +0000 (21:28 +0800)]
net/ieee80211: ieee80211_is_* can be boolean

This patch makes ieee80211_is_* return bool to improve
readability due to these particular functions only using either
one or zero as their return value.

No functional change.

Signed-off-by: Yaowei Bai <bywxiaobai@163.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
8 years agowireless: mark element IDs 8 and 9 reserved
Johannes Berg [Fri, 28 Aug 2015 12:31:48 +0000 (14:31 +0200)]
wireless: mark element IDs 8 and 9 reserved

These were never used in the tree, and are marked as reserved
in the IEEE 802.11 documentation (ANA).

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
8 years agomac80211: allow to transmit A-MSDU within A-MPDU
Emmanuel Grumbach [Sun, 16 Aug 2015 08:13:22 +0000 (11:13 +0300)]
mac80211: allow to transmit A-MSDU within A-MPDU

Advertise the capability to send A-MSDU within A-MPDU
in the AddBA request sent by mac80211. Let the driver
know about the peer's capabilities.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
8 years agomac80211: fix BIT position for TDLS WIDE extended cap
Emmanuel Grumbach [Sun, 19 Jul 2015 13:09:12 +0000 (16:09 +0300)]
mac80211: fix BIT position for TDLS WIDE extended cap

The bit was not according to ieee80211 specification.
Fix that.

Reviewed-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
8 years agocarl9170 toolchain: update to gcc 6.1.0, newlib 2.4.0 and binutils 2.26
Christian Lamparter [Wed, 27 Apr 2016 13:25:30 +0000 (15:25 +0200)]
carl9170 toolchain: update to gcc 6.1.0, newlib 2.4.0 and binutils 2.26

Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
8 years agocarl9170 firmware: fix off-by-one error when CARL9170FW_USB_MODESWITCH is set
Christian Lamparter [Mon, 15 Feb 2016 16:32:14 +0000 (17:32 +0100)]
carl9170 firmware: fix off-by-one error when CARL9170FW_USB_MODESWITCH is set

usb/usb.c: In function ‘usb_set_configuration’:
usb/usb.c:544:1: error: control reaches end of non-void function [-Werror=return-type]

Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
8 years agocarl9170 firmware: reserve feature flag for PATTERN_GENERATOR
Christian Lamparter [Mon, 15 Feb 2016 00:15:02 +0000 (01:15 +0100)]
carl9170 firmware: reserve feature flag for PATTERN_GENERATOR

Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
8 years agocarl9170 firmware: add get_random_u16 helper
Christian Lamparter [Sun, 14 Feb 2016 23:33:56 +0000 (00:33 +0100)]
carl9170 firmware: add get_random_u16 helper

The HW has a built-in random number generator. This
patch adds a convenient helper to get random 16-bit
values in the firmware.

Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
8 years agocarl9170 toolchain: update to gcc-5.3.0
Christian Lamparter [Fri, 4 Dec 2015 23:02:24 +0000 (00:02 +0100)]
carl9170 toolchain: update to gcc-5.3.0

Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
9 years agocarl9170 toolchain: update to gcc-5.2.0
Christian Lamparter [Fri, 21 Aug 2015 11:54:27 +0000 (13:54 +0200)]
carl9170 toolchain: update to gcc-5.2.0

Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
9 years agocarl9170 firmware tools: fix compile errors in wol.c
Christian Lamparter [Fri, 21 Aug 2015 11:44:36 +0000 (13:44 +0200)]
carl9170 firmware tools: fix compile errors in wol.c

wol.c: In function ‘monitor_init’:
wol.c:40:19: warning: implicit declaration of function ‘if_nametoindex’
  ll.sll_ifindex = if_nametoindex(ifname);
                   ^
wol.c:46:45: warning: implicit declaration of function ‘htons’
  monitor_sock = socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL));
                                             ^

Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
9 years agocarl9170 firmware: fix CMake developer Warning about CMP0050
Christian Lamparter [Wed, 20 May 2015 12:22:58 +0000 (14:22 +0200)]
carl9170 firmware: fix CMake developer Warning about CMP0050

This patch fixes the numerous warnings about the unsupported use
of the SOURCE signature for the add_custom_command:

"CMake Warning (dev) at carlfw/CMakeLists.txt (add_custom_command):
  Policy CMP0050 is not set: Disallow add_custom_command SOURCE signatures.
  Run "cmake --help-policy CMP0050" for policy details.  Use the cmake_policy
  command to set the policy and suppress this warning.

  The SOURCE signatures of add_custom_command are no longer supported.
This warning is for project developers.  Use -Wno-dev to suppress it."

Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
9 years agokconfig: Do not print status messages in make -s mode
Michal Marek [Wed, 8 Apr 2015 11:30:42 +0000 (13:30 +0200)]
kconfig: Do not print status messages in make -s mode

Add an -s option to the various frontends and pass it when make -s is
used. Also, use $(kecho) instead of @echo in the Makefile.

Signed-off-by: Michal Marek <mmarek@suse.cz>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
9 years agokconfig: Remove unnecessary prototypes from headers
Michal Marek [Tue, 24 Feb 2015 15:37:13 +0000 (16:37 +0100)]
kconfig: Remove unnecessary prototypes from headers

Signed-off-by: Michal Marek <mmarek@suse.cz>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
9 years agokconfig: Remove dead code
Michal Marek [Tue, 24 Feb 2015 15:32:09 +0000 (16:32 +0100)]
kconfig: Remove dead code

Signed-off-by: Michal Marek <mmarek@suse.cz>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
9 years agokconfig: Get rid of the P() macro in headers
Michal Marek [Tue, 27 Jan 2015 16:11:42 +0000 (17:11 +0100)]
kconfig: Get rid of the P() macro in headers

This was originally meant for dlopen()ing a potential kconfig shared
library. The unused dlopen code has already been removed in commit
5a6f8d2b (kconfig: nuke LKC_DIRECT_LINK cruft), so let's remove the
rest. The lkc_proto.h change was made with the following sed script:

  sed -r 's/^P\(([^,]*), *([^,]*), *(.*)\);/\2 \1\3;/'

Plus some manual adjustments.

Signed-off-by: Michal Marek <mmarek@suse.cz>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
9 years agokconfig: use va_end to match corresponding va_start
Colin Ian King [Mon, 12 Jan 2015 13:18:26 +0000 (13:18 +0000)]
kconfig: use va_end to match corresponding va_start

Although on some systems va_end is a no-op, it is good practice
to use va_end, especially since the manual states:

"Each invocation of va_start() must be matched by a corresponding
invocation of va_end() in the same function."

Signed-off-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: Michal Marek <mmarek@suse.cz>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
9 years agomac80111: Add BIP-CMAC-256 cipher
Jouni Malinen [Sat, 24 Jan 2015 17:52:08 +0000 (19:52 +0200)]
mac80111: Add BIP-CMAC-256 cipher

This allows mac80211 to configure BIP-CMAC-256 to the driver and also
use software-implementation within mac80211 when the driver does not
support this with hardware accelaration.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
9 years agocfg80211: Add new GCMP, CCMP-256, BIP-GMAC, BIP-CMAC-256 ciphers
Jouni Malinen [Sat, 24 Jan 2015 17:52:05 +0000 (19:52 +0200)]
cfg80211: Add new GCMP, CCMP-256, BIP-GMAC, BIP-CMAC-256 ciphers

This makes cfg80211 aware of the GCMP, GCMP-256, CCMP-256, BIP-GMAC-128,
BIP-GMAC-256, and BIP-CMAC-256 cipher suites. These new cipher suites
were defined in IEEE Std 802.11ac-2013.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
9 years agocarl9170 toolchain: update to gcc-5.1.0
Christian Lamparter [Tue, 19 May 2015 13:07:23 +0000 (15:07 +0200)]
carl9170 toolchain: update to gcc-5.1.0

Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
9 years agocarl9170 firmware: support write one byte at a time command
Christian Lamparter [Wed, 21 Jan 2015 15:56:40 +0000 (16:56 +0100)]
carl9170 firmware: support write one byte at a time command

This command is necessary to write into the serial eeprom.

Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
9 years agocarl9170: add register definitions for EEPROM and SPI controller
Christian Lamparter [Wed, 21 Jan 2015 15:39:26 +0000 (16:39 +0100)]
carl9170: add register definitions for EEPROM and SPI controller

Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
9 years agocarl9170: fix spelling in config file
Christian Lamparter [Sat, 10 Jan 2015 18:46:07 +0000 (19:46 +0100)]
carl9170: fix spelling in config file

Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
9 years agocarl9170 toolchain: add SHA256 for binutils-2.25
Christian Lamparter [Sat, 10 Jan 2015 17:20:41 +0000 (18:20 +0100)]
carl9170 toolchain: add SHA256 for binutils-2.25

Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
9 years agokconfig: Fix warning "‘jump’ may be used uninitialized"
Peter Kümmel [Tue, 4 Nov 2014 11:01:59 +0000 (12:01 +0100)]
kconfig: Fix warning "‘jump’ may be used uninitialized"

Warning:
In file included from scripts/kconfig/zconf.tab.c:2537:0:
scripts/kconfig/menu.c: In function ‘get_symbol_str’:
scripts/kconfig/menu.c:590:18: warning: ‘jump’ may be used uninitialized in this function [-Wmaybe-uninitialized]
     jump->offset = strlen(r->s);

Simplifies the test logic because (head && local) means (jump != 0)
and makes GCC happy when checking if the jump pointer was initialized.

Signed-off-by: Peter Kümmel <syntheticpp@gmx.net>
Signed-off-by: Michal Marek <mmarek@suse.cz>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
9 years agoReplace mentions of "list_struct" to "list_head"
Andrey Utkin [Fri, 14 Nov 2014 01:09:55 +0000 (05:09 +0400)]
Replace mentions of "list_struct" to "list_head"

There's no such thing as "list_struct".

Signed-off-by: Andrey Utkin <andrey.krieger.utkin@gmail.com>
Acked-by: Steven Rostedt <rostedt@goodmis.org>
Acked-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Acked-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
9 years agokbuild: trivial - use tabs for code indent where possible
Masahiro Yamada [Tue, 10 Jun 2014 10:08:13 +0000 (19:08 +0900)]
kbuild: trivial - use tabs for code indent where possible

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Signed-off-by: Michal Marek <mmarek@suse.cz>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
9 years agokbuild: trivial - remove trailing empty lines
Masahiro Yamada [Thu, 29 May 2014 05:12:29 +0000 (14:12 +0900)]
kbuild: trivial - remove trailing empty lines

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
9 years agokconfig: make allnoconfig disable options behind EMBEDDED and EXPERT
Josh Triplett [Mon, 7 Apr 2014 22:39:09 +0000 (15:39 -0700)]
kconfig: make allnoconfig disable options behind EMBEDDED and EXPERT

"make allnoconfig" exists to ease testing of minimal configurations.
Documentation/SubmitChecklist includes a note to test with allnoconfig.
This helps catch missing dependencies on common-but-not-required
functionality, which might otherwise go unnoticed.

However, allnoconfig still leaves many symbols enabled, because they're
hidden behind CONFIG_EMBEDDED or CONFIG_EXPERT.  For instance, allnoconfig
still has CONFIG_PRINTK and CONFIG_BLOCK enabled, so drivers don't
typically get build-tested with those disabled.

To address this, introduce a new Kconfig option "allnoconfig_y", used on
symbols which only exist to hide other symbols.  Set it on CONFIG_EMBEDDED
(which then selects CONFIG_EXPERT).  allnoconfig will then disable all the
symbols hidden behind those.

Signed-off-by: Josh Triplett <josh@joshtriplett.org>
Tested-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Michal Marek <mmarek@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
9 years agocarl9170 tools: add attribute macros to host library file
Christian Lamparter [Thu, 1 Jan 2015 16:34:17 +0000 (17:34 +0100)]
carl9170 tools: add attribute macros to host library file

The macros [__packed, __aligned(x), ...] are already defined
as part of newlib's sys/cdefs.h. However they are not part of
standard libc which is used to compile the host tools.

Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
9 years agomac80211: add parsing of TDLS specific IEs
Arik Nemtsov [Sun, 9 Nov 2014 16:50:18 +0000 (18:50 +0200)]
mac80211: add parsing of TDLS specific IEs

These are used in TDLS channel switching code.

Signed-off-by: Arik Nemtsov <arikx.nemtsov@intel.com>
Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
9 years agocfg/mac80211: define TDLS channel switch feature bit
Arik Nemtsov [Sun, 9 Nov 2014 16:50:14 +0000 (18:50 +0200)]
cfg/mac80211: define TDLS channel switch feature bit

Define some related TDLS protocol constants and advertise channel switch
support in the extended-capabilities IE when the feature bit is defined.

Actually supporting TDLS channel-switching also requires support for
some new nl80211 commands, to be introduced by future patches.

Signed-off-by: Arik Nemtsov <arikx.nemtsov@intel.com>
Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
9 years agomac80211: add BSS coex IE to TDLS setup frames
Arik Nemtsov [Sun, 9 Nov 2014 16:50:13 +0000 (18:50 +0200)]
mac80211: add BSS coex IE to TDLS setup frames

Add the BSS coex IE in case we support HT40 channels, as mandated by
section 8.5.13 in IEEE802.11 2012.

Signed-off-by: Arik Nemtsov <arikx.nemtsov@intel.com>
Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
9 years agoieee80211: add "max length of AMPDU" enum for VHT
Eran Harary [Mon, 3 Nov 2014 18:06:47 +0000 (20:06 +0200)]
ieee80211: add "max length of AMPDU" enum for VHT

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

Signed-off-by: Eran Harary <eran.harary@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
9 years agomac80211: add extended channel switching capability if the driver supports CSA
Luciano Coelho [Wed, 8 Oct 2014 06:48:36 +0000 (09:48 +0300)]
mac80211: add extended channel switching capability if the driver supports CSA

The Extended Channel Switching capability bit in the extended
capabilities element must be set if the driver supports CSA on
non-beaconing interfaces.

Since this capability needs to be set during driver registration, the
extended_capabiliities global variable needs to be moved to the local
structure so that it can be modified.

Signed-off-by: Luciano Coelho <luciano.coelho@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
9 years agocfg80211: add WMM traffic stream API
Johannes Berg [Tue, 9 Sep 2014 19:55:35 +0000 (22:55 +0300)]
cfg80211: add WMM traffic stream API

Add nl80211 and driver API to validate, add and delete traffic
streams with appropriate settings.

The API calls for userspace doing the action frame handshake
with the peer, and then allows only to set up the parameters
in the driver. To avoid setting up a session only to tear it
down again, the validate API is provided, but the real usage
later can still fail so userspace must be prepared for that.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
9 years agomac80211: support DTPC IE (from Cisco Client eXtensions)
Steinar H. Gunderson [Wed, 3 Sep 2014 13:48:37 +0000 (06:48 -0700)]
mac80211: support DTPC IE (from Cisco Client eXtensions)

Linux already supports 802.11h, where the access point can tell the
client to reduce its transmission power. However, 802.11h is only
defined for 5 GHz, where the need for this is much smaller than on
2.4 GHz.

Cisco has their own solution, called DTPC (Dynamic Transmit Power
Control). Cisco APs on a controller sometimes but not always send
802.11h; they always send DTPC, even on 2.4 GHz. This patch adds support
for parsing and honoring the DTPC IE in addition to the 802.11h
element (they do not always contain the same limits, so both must
be honored); the format is not documented, but very simple.

Tested (on top of wireless.git and on 3.16.1) against a Cisco Aironet
1142 joined to a Cisco 2504 WLC, by setting various transmit power
levels for the given access points and observing the results.
The Wireshark 802.11 dissector agrees with the interpretation of the
element, except for negative numbers, which seem to never happen
anyway.

Signed-off-by: Steinar H. Gunderson <sgunderson@bigfoot.com>
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
9 years agocfg80211: add Intel Mobile Communications copyright
Johannes Berg [Wed, 3 Sep 2014 12:24:58 +0000 (15:24 +0300)]
cfg80211: add Intel Mobile Communications copyright

Our legal structure changed at some point (see wikipedia), but
we forgot to immediately switch over to the new copyright
notice.

For files that we have modified in the time since the change,
add the proper copyright notice now.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
9 years agoieee80211: Support parsing TPC report element in action frames
Andrei Otcheretianski [Wed, 30 Jul 2014 11:36:18 +0000 (14:36 +0300)]
ieee80211: Support parsing TPC report element in action frames

TPC report element is contained in spectrum management's tpc report
action frames and in radio measurement's link measurement report
action frames. Add a function which checks whether an action frame
contains this element. This may be needed by the drivers in order
to set the correct tx power value in these frames.

Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
9 years agomac80211: add TDLS QoS param IE on setup-confirm
Arik Nemtsov [Thu, 17 Jul 2014 14:14:24 +0000 (17:14 +0300)]
mac80211: add TDLS QoS param IE on setup-confirm

When TDLS QoS is supported by the the peer and the local card, add
the WMM parameter IE to the setup-confirm frame. Take the QoS settings
from the current AP, or if unsupported, use the default values from
the specification. This behavior is mandated by IEEE802.11-2012 section
10.22.4.

Signed-off-by: Arik Nemtsov <arikx.nemtsov@intel.com>
Reviewed-by: Liad Kaufman <liad.kaufman@intel.com>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
9 years agomac80211: add API to request TDLS operation from userspace
Arik Nemtsov [Wed, 11 Jun 2014 14:18:25 +0000 (17:18 +0300)]
mac80211: add API to request TDLS operation from userspace

Write a mac80211 to the cfg80211 API for requesting a userspace TDLS
operation. Define TDLS specific reason codes that can be used here.

Signed-off-by: Arik Nemtsov <arikx.nemtsov@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
9 years agowireless: add missing WLAN_EID_BSS_INTOLERANT_CHL_REPORT
Jes Sorensen [Mon, 26 May 2014 16:06:34 +0000 (18:06 +0200)]
wireless: add missing WLAN_EID_BSS_INTOLERANT_CHL_REPORT

Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
9 years agocarl9170: update COPYRIGHT boilerplate text
Christian Lamparter [Thu, 1 Jan 2015 13:42:58 +0000 (14:42 +0100)]
carl9170: update COPYRIGHT boilerplate text

The boilderplate text had an obsolete address in it.
Link to the GNU Project's licence website instead.

Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
9 years agocarl9170 toolchain: update to gcc 4.9.2, newlib 2.2.0 and binutils 2.25
Christian Lamparter [Thu, 1 Jan 2015 13:18:02 +0000 (14:18 +0100)]
carl9170 toolchain: update to gcc 4.9.2, newlib 2.2.0 and binutils 2.25

Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
10 years agocarl9170 toolchain: update to gcc-4.9.1
Christian Lamparter [Wed, 17 Sep 2014 17:57:56 +0000 (19:57 +0200)]
carl9170 toolchain: update to gcc-4.9.1

For users with issues due to a gcc-4.9 host compiler:
<https://bugzilla.redhat.com/show_bug.cgi?id=1087374>

Note: The README.md has been updated as well. For
requests about the firmware (or driver) please
include "carl9170" in the subject line.

Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
10 years agocarl9170 firmware: investigate 80/88MHz clock freezes
Christian Lamparter [Tue, 16 Sep 2014 17:38:32 +0000 (19:38 +0200)]
carl9170 firmware: investigate 80/88MHz clock freezes

The SoC can run up to 80/88MHz in HT40 mode. This improves
throughput and timing accuracy over the 40/44MHz clock.
However some devices seem to become unstable under load.

Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
10 years agocarl9170 firmware: update README.md
Christian Lamparter [Thu, 7 Aug 2014 18:00:14 +0000 (20:00 +0200)]
carl9170 firmware: update README.md

New version of the README in markdown. Includes additional
information about contact and firmware configuration.

Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
10 years agocarl9170 firmware: command endpoint is bulk in full-speed mode
Christian Lamparter [Thu, 7 Aug 2014 09:56:25 +0000 (11:56 +0200)]
carl9170 firmware: command endpoint is bulk in full-speed mode

Roland Wahl discovered that endpoint 4 needs to be an bulk
endpoint in the full-speed configuration.

Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
10 years agowireless: max MSDU size for DMG networks
Vladimir Kondratiev [Wed, 19 Mar 2014 11:14:40 +0000 (13:14 +0200)]
wireless: max MSDU size for DMG networks

In the 802.11ad, aka DMG (Dynamic Multi-Gigabit), aka 60Ghz
spec, maximum MSDU size extended to 7920 bytes.
add #define for this.

Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
10 years agoieee80211: remove function ieee80211_{dsss_chan_to_freq, freq_to_dsss_chan}
Zhao, Gang [Tue, 18 Feb 2014 13:36:03 +0000 (21:36 +0800)]
ieee80211: remove function ieee80211_{dsss_chan_to_freq, freq_to_dsss_chan}

Function ieee80211_{dsss_chan_to_freq, freq_to_dsss_chan} have been
replaced with ieee80211_{channel_to_frequency, frequency_to_channel}.

There should be no users of the two functions now. So remove them.

Cc: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Zhao, Gang <gamerh2o@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
10 years agowireless: sort and extend element ID list
Johannes Berg [Tue, 4 Feb 2014 08:41:04 +0000 (09:41 +0100)]
wireless: sort and extend element ID list

The element ID list is currently almost sorted by amendment
or similar topic, but the order is difficult to maintain and
not very transparent. Sort the list by ID instead, and add
a lot of missing IDs.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
10 years agomac80211: fix bufferable MMPDU RX handling
Johannes Berg [Fri, 24 Jan 2014 13:41:44 +0000 (14:41 +0100)]
mac80211: fix bufferable MMPDU RX handling

Action, disassoc and deauth frames are bufferable, and as such don't
have the PM bit in the frame control field reserved which means we
need to react to the bit when receiving in such a frame.

Fix this by introducing a new helper ieee80211_is_bufferable_mmpdu()
and using it for the RX path that currently ignores the PM bit in
any non-data frames for doze->wake transitions, but listens to it in
all frames for wake->doze transitions, both of which are wrong.

Also use the new helper in the TX path to clean up the code.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
10 years agoieee80211: add definition for SMS4 key len
Avinash Patil [Fri, 10 Jan 2014 19:08:55 +0000 (11:08 -0800)]
ieee80211: add definition for SMS4 key len

Add SMS4 key length definition to ieee80211_key_len enum.
It's used by WAPI.

Signed-off-by: Avinash Patil <patila@marvell.com>
Signed-off-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
10 years agoieee80211: add definition for TDLS wide band extended capability
Avinash Patil [Thu, 9 Jan 2014 23:22:57 +0000 (15:22 -0800)]
ieee80211: add definition for TDLS wide band extended capability

Seventh bit of 8th byte of extended capabilities specifies wide
bandwidth support for TDLS links. Add this definition to ieee80211.

Signed-off-by: Avinash Patil <patila@marvell.com>
Signed-off-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
10 years agocarl9170 toolchain: update to gcc 4.9.0 and newlib 2.1.0
Christian Lamparter [Thu, 1 May 2014 19:39:49 +0000 (21:39 +0200)]
carl9170 toolchain: update to gcc 4.9.0 and newlib 2.1.0

Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
10 years agocarl9170 firmware: replace already defined __section with __in_section
Christian Lamparter [Thu, 1 May 2014 19:38:35 +0000 (21:38 +0200)]
carl9170 firmware: replace already defined __section with __in_section

newlib already provides __section... and unfortunately it differs
from our own. This commit introduces a new define __in_section for
now.

Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
10 years agomac80211: enable easier manipulation of VHT beamforming caps
Eyal Shapira [Mon, 11 Nov 2013 18:14:00 +0000 (20:14 +0200)]
mac80211: enable easier manipulation of VHT beamforming caps

Introduce shift and mask defines for beamformee STS cap and number
of sounding dimensions cap as these can take any 3 bit value.
While at it also cleanup an unrequired parenthesis.

Signed-off-by: Eyal Shapira <eyal@wizery.com>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
10 years agoMerge branch 'master' of git://github.com/chunkeey/carl9170fw
Christian Lamparter [Sun, 22 Dec 2013 04:14:09 +0000 (05:14 +0100)]
Merge branch 'master' of git://github.com/chunkeey/carl9170fw

10 years agocarl9170 toolchain: update to binutils-2.24
Christian Lamparter [Mon, 2 Dec 2013 19:39:35 +0000 (20:39 +0100)]
carl9170 toolchain: update to binutils-2.24

Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
11 years agomac80211: process the CSA frame for mesh accordingly
Chun-Yeow Yeoh [Tue, 15 Oct 2013 02:08:27 +0000 (19:08 -0700)]
mac80211: process the CSA frame for mesh accordingly

Process the CSA frame according to the procedures define in IEEE Std
802.11-2012 section 10.9.8.4.3 as follow:
* The mesh channel switch parameters element (MCSP) must be availabe.
* If the MCSP's TTL is 1, drop the frame but still process the CSA.
* If the MCSP's precedence value is less than or equal to the current
  precedence value, drop the frame and do not process the CSA.
* The CSA frame is forwarded after TTL is decremented by 1 and the
  initiator field is set to 0. Transmit restrict field and others
  are maintained as is.
* No beacon or probe response frame are handled here.

Also, introduce the debug message used for mesh CSA purpose.

Signed-off-by: Chun-Yeow Yeoh <yeohchunyeow@cozybit.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
11 years agokconfig: fix bug in search results string: use strlen(gstr->s), not gstr->len
Martin Walch [Thu, 3 Oct 2013 16:35:16 +0000 (18:35 +0200)]
kconfig: fix bug in search results string: use strlen(gstr->s), not gstr->len

The struct gstr has a capacity that may differ from the actual string length.

However, a string manipulation in the function search_conf made the assumption
that it is the same, which led to messing up some search results, especially
when the content of the gstr in use had not yet reached at least 63 chars.

Signed-off-by: Martin Walch <walch.martin@web.de>
Acked-by: Wang YanQing <udknight@gmail.com>
Acked-by: Benjamin Poirier <bpoirier@suse.de>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
11 years agokconfig: remove unused definition from scanner
Martin Walch [Thu, 3 Oct 2013 16:33:47 +0000 (18:33 +0200)]
kconfig: remove unused definition from scanner

The definition ws [ \n\t] is not used anywhere. Drop it to avoid confusion.

As it is a dead definition, any changes in the resulting code generated by
flex would be surprising (actually testing this showed that there are really
no changes). So, there is no need to touch the existing zconf.lex.c_shipped.

Signed-off-by: Martin Walch <walch.martin@web.de>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: "Yann E. MORIN: <yann.morin.1998@free.fr>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
11 years agokconfig: adjust warning message for conflicting types
Martin Walch [Thu, 3 Oct 2013 16:32:02 +0000 (18:32 +0200)]
kconfig: adjust warning message for conflicting types

Each symbol must have exactly one type assigned. However, if a symbol happens
to have two different types assigned at runtime, a warning is printed and the
first type is preserved while the second type is being ignored.

The warning message says

type of <symbol name> redefined from <first type> to <second type>

which may be misleading as it may create the impression that the second type
replaces the first type.

This patch clarifies this by changing the warning to

ignoring type redefinition of <symbol name> from <first type> to <second type>

Signed-off-by: Martin Walch <walch.martin@web.de>
Acked-by: Wang YanQing <udknight@gmail.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
11 years agokconfig: fix trivial typos and update mconf documentation
Martin Walch [Thu, 3 Oct 2013 15:28:14 +0000 (17:28 +0200)]
kconfig: fix trivial typos and update mconf documentation

This fixes lots of typos in comments and strings.

It also updates the documentation strings in mconf to reflect the changes in
the user interface from the two commits

6364fd0cb1e4c7f72b974613e0cf5744ae4d2cb2
  menuconfig: Add Save/Load buttons
1bdbac478a858d2aa73a6784c7c2e09de0f6d06b
  menuconfig: Get rid of the top-level entries for "Load an Alternate/Save an Alternate"

And it updates the layout of the example search result, i. e. moves down the
"Defined at" and "Depends on" lines and adds a symbol state ([=n]) to the
symbol in the "Selected by" line.

Furthermore, the help texts now should fit in 80 columns again when viewed
in mconf.

Signed-off-by: Martin Walch <walch.martin@web.de>
Reviewed-by: Jean Delvare <jdelvare@suse.de>
Reviewed-by: Wang YanQing <udknight@gmail.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
11 years agokconfig: add short explanation to SYMBOL_WRITE
Martin Walch [Thu, 3 Oct 2013 15:21:23 +0000 (17:21 +0200)]
kconfig: add short explanation to SYMBOL_WRITE

replace the question mark in the comment after SYMBOL_WRITE with an explanation

Signed-off-by: Martin Walch <walch.martin@web.de>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
11 years agoMerge branch 'master' of git://github.com/chunkeey/carl9170fw
Christian Lamparter [Fri, 25 Oct 2013 21:05:15 +0000 (23:05 +0200)]
Merge branch 'master' of git://github.com/chunkeey/carl9170fw

11 years agocarl9170 firmware: update to version 1.9.9 1.9.9
Christian Lamparter [Fri, 25 Oct 2013 20:55:51 +0000 (22:55 +0200)]
carl9170 firmware: update to version 1.9.9

Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
11 years agoMerge branch 'master' of git://github.com/chunkeey/carl9170fw
Christian Lamparter [Fri, 25 Oct 2013 19:57:24 +0000 (21:57 +0200)]
Merge branch 'master' of git://github.com/chunkeey/carl9170fw

11 years agoieee80211: fix vht cap definitions
Eliad Peller [Thu, 29 Aug 2013 12:03:14 +0000 (15:03 +0300)]
ieee80211: fix vht cap definitions

VHT_CAP_BEAMFORMER_ANTENNAS cap is actually defined in the draft as
VHT_CAP_BEAMFORMEE_STS_MAX, and its size is 3 bits long.

VHT_CAP_SOUNDING_DIMENSIONS is also 3 bits long.

Fix the definitions and change the cap masking accordingly.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
11 years agowireless: make TU conversion macros available
Johannes Berg [Thu, 25 Jul 2013 19:45:17 +0000 (21:45 +0200)]
wireless: make TU conversion macros available

A few places in the code (mac80211 and iwlmvm) use the same
TU_TO_JIFFIES() macro and could use TU_TO_EXP_TIME() that
mac80211 has. Make these available to everyone and use them.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
11 years agoieee80211: add definition for 802.11ac information elements
Fred Zhou [Thu, 1 Aug 2013 06:16:28 +0000 (14:16 +0800)]
ieee80211: add definition for 802.11ac information elements

Add element IDs for Extended BSS Load, VHT TX
Power Envelope, AID, and Quiet Channel.

Signed-off-by: Fred Zhou <fred.zy@gmail.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
11 years agoieee80211: add definition for interworking support
Avinash Patil [Sat, 27 Jul 2013 00:02:29 +0000 (17:02 -0700)]
ieee80211: add definition for interworking support

IEEE802.11u interworking support is advertised via extended
capabilities IE bit 31. This is 7th bit of 4th byte of extended
capabilities.

Signed-off-by: Avinash Patil <patila@marvell.com>
Signed-off-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
11 years agomac80211: set mesh formation field properly
Jacob Minshall [Wed, 29 May 2013 21:32:36 +0000 (14:32 -0700)]
mac80211: set mesh formation field properly

Cap max peerings at 63 in accordance with IEEE-2012 8.4.2.100.7.
Triggers a beacon regeneration every time the number of peerings changes.
Previously this would only happen if the "accepting peerings" bit changed.

Signed-off-by: Jacob Minshall <jacob@cozybit.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
11 years agokconfig: do not allow more than one symbol to have 'option modules'
Yann E. MORIN [Tue, 3 Sep 2013 20:22:26 +0000 (22:22 +0200)]
kconfig: do not allow more than one symbol to have 'option modules'

Previously, it was possible to have more than one symbol with the
'option modules' attached to them, although only the last one would
in fact control tristates.

Since this does not make much sense, only allow at most one symbol to
control tristates.

Note: it is still possible to have more than one symbol that control
tristates, but indirectly:

    config MOD1
        bool "mod1"
        select MODULES
    config MOD2
        bool "mod2"
        select MODULES
    config MODULES
        bool
        option modules

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Michal Marek <mmarek@suse.cz>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
11 years agokconfig: do not special-case 'MODULES' symbol
Yann E. MORIN [Tue, 3 Sep 2013 15:07:18 +0000 (17:07 +0200)]
kconfig: do not special-case 'MODULES' symbol

Currently, the 'MODULES' symbol is hard-coded to be the default symbol
that enables/disables tristates, if no other symbol was declared with
'option modules'.

While this used to be needed for the Linux kernel, we now have an
explicit 'option modules' attached to the 'MODULES' symbol (since
cset 11097a036), so we no longer need to special-case it in the
kconfig code.

Furthermore, kconfig is extensively used out of the Linux kernel, and
other projects may have another meaning for a symbol named 'MODULES'.

This patch changes the way we enable/disable tristates: if a symbol was
found with 'option modules' attached to it, then that symbol controls
enabling tristates. Otherwise, tristates are disabled, even if a symbol
named 'MODULES' exists.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Michal Marek <mmarek@suse.cz>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
11 years agokconfig: silence warning when parsing auto.conf when a symbol has changed type
Yann E. MORIN [Tue, 6 Aug 2013 16:45:07 +0000 (18:45 +0200)]
kconfig: silence warning when parsing auto.conf when a symbol has changed type

When a symbol changes type from tristate to bool, and was previously set to
'm', a subsequent silentoldconfig would warn about inconsistency, such as:

    include/config/auto.conf:3014:warning: symbol value 'm' invalid for
    HOTPLUG_PCI_PCIE

Seen by Linus with the merge in aa8032b (sequence to reproduce by Michal):
    git checkout 1fe0135
    make mrproper
    make allmodconfig
    make silentoldconfig
    git checkout aa8032b
    make allmodconfig
    make silentoldconfig

Since HOTPLUG_PCI_PCIE changed from tristate to bool in aa8032b, it was
previously set to 'm' in auto.conf by the first allmodconfig+silentoldconfig,
but then was set to 'y' by the second allmodconfig. Then the second
silentoldconfig prints the warning.

The warning in this case is a spurious warning, which happens at the time
kconfig tries to detect symbols that have changed, to touch the empty
header files in include/config used for dependency-tracking by make.

Silence the warning when we read the old auto.conf file, since it is
perfectly legit that a symbol changed type since the previous call.

Thread in:
    http://marc.info/?l=linux-pci&m=137569198904000&w=2

Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Michal Marek <mmarek@suse.cz>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Bjorn Helgaas <bhelgaas@google.com>
Cc: Yinghai Lu <yinghai@kernel.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
11 years agokconfig: switch to "long long" for sanity
Kees Cook [Thu, 18 Jul 2013 18:32:01 +0000 (11:32 -0700)]
kconfig: switch to "long long" for sanity

Instead of using "long" for kconfig "hex" and "range" values, which may
change in size depending on the host architecture, use "long long". This
will allow values greater than INT_MAX on 32-bit hosts when cross
compiling.

Signed-off-by: Kees Cook <keescook@chromium.org>
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
11 years agokconfig: simplify symbol-search code
Yann E. MORIN [Tue, 16 Jul 2013 18:39:42 +0000 (20:39 +0200)]
kconfig: simplify symbol-search code

There is no need for a double indirection in the temporary array that
stores the internediate search results.

Reported-by: Jean Delvare <jdelvare@suse.de>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Reviewed-by: Jean Delvare <jdelvare@suse.de>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
11 years agokconfig: don't allocate n+1 elements in temporary array
Yann E. MORIN [Tue, 16 Jul 2013 18:32:33 +0000 (20:32 +0200)]
kconfig: don't allocate n+1 elements in temporary array

The temporary array that stores the search results is not NULL-terminated,
so there is no reason to allocate n+1 elements.

Reported-by: Jean Delvare <jdelvare@suse.de>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Reviewed-by: Jean Delvare <jdelvare@suse.de>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
11 years agokconfig: minor style fixes in symbol-search code
Yann E. MORIN [Tue, 16 Jul 2013 18:28:51 +0000 (20:28 +0200)]
kconfig: minor style fixes in symbol-search code

Two minor style fixes:
  - no space before/after parenthesis in function definition
  - no {} for single-line if()

And one grammar fix in a comment.

Reported-by: Jean Delvare <jdelvare@suse.de>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Jean Delvare <jdelvare@suse.de>
Reviewed-by: Jean Delvare <jdelvare@suse.de>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
11 years agokconfig: avoid multiple calls to strlen
Yann E. MORIN [Sat, 13 Jul 2013 13:09:43 +0000 (15:09 +0200)]
kconfig: avoid multiple calls to strlen

Calls to strlen are costly, so avoid calling strln as much as we can.

Reported-by: Jean Delvare <jdelvare@suse.de>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Jean Delvare <jdelvare@suse.de>
Reviewed-by: Jean Delvare <jdelvare@suse.de>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
11 years agokconfig: allow "hex" and "range" to support longs
Kees Cook [Fri, 28 Jun 2013 19:56:51 +0000 (12:56 -0700)]
kconfig: allow "hex" and "range" to support longs

The parsing routines for Kconfig files use strtol(), but store and
render values as int. Switch types and formating to long to support a
wider range of values. For example, 0x80000000 wasn't representable.

Signed-off-by: Kees Cook <keescook@chromium.org>
Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
11 years agoRevert "kconfig: fix randomising choice entries in presence of KCONFIG_ALLCONFIG"
Yann E. MORIN [Tue, 25 Jun 2013 21:37:44 +0000 (23:37 +0200)]
Revert "kconfig: fix randomising choice entries in presence of KCONFIG_ALLCONFIG"

This reverts commit 8357b48549e17b3e4e402c7f977b65708922e60f.

It breaks more stuff than it fixes.

Reported-by: Fengguang Wu <fengguang.wu@intel.com>
Reported-by: Sedat Dilek <sedat.dilek@gmail.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Fengguang Wu <fengguang.wu@intel.com>
Cc: Sedat Dilek <sedat.dilek@gmail.com>
Cc: Sam Ravnborg <sam@ravnborg.org>
Cc: Stephen Rothwell <sfr@canb.auug.org.au>
Cc: Alexandre Bounine <alexandre.bounine@idt.com>
Cc: Matt Porter <mporter@kernel.crashing.org>
Signed-off-by: Michal Marek <mmarek@suse.cz>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
11 years agokconfig: fix randomising choice entries in presence of KCONFIG_ALLCONFIG
Yann E. MORIN [Tue, 18 Jun 2013 17:35:29 +0000 (19:35 +0200)]
kconfig: fix randomising choice entries in presence of KCONFIG_ALLCONFIG

Currently, randconfig does randomise choice entries, unless KCONFIG_ALLCONFIG
is specified.

For example, given those two files (Thomas' test-case):

    ---8<--- Config.test.in
    config OPTIONA
        bool "Option A"

    choice
        prompt "This is a choice"

    config CHOICE_OPTIONA
        bool "Choice Option A"

    config CHOICE_OPTIONB
        bool "Choice Option B"

    endchoice

    config OPTIONB
        bool "Option B"
    ---8<--- Config.test.in

    ---8<--- config.defaults
    CONFIG_OPTIONA=y
    ---8<--- config.defaults

And running:
    ./config/conf --randconfig Config.test.in

does properly randomise the two choice symbols (and the two booleans).

However, running:
    KCONFIG_ALLCONFIG=config.defaults \
    ./config/conf --randconfig Config.test.in

does *not* reandomise the two choice entries, and only CHOICE_OPTIONA
will ever be selected. (OPTIONA will always be set (expected), and
OPTIONB will be be properly randomised (expected).)

This patch defers setting that a choice has a value until a symbol for
that choice is indeed set, so that choices are properly randomised when
KCONFIG_ALLCONFIG is set, but not if a symbol for that choice is set.

Reported-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Michal Marek <mmarek@suse.cz>
Cc: Sam Ravnborg <sam@ravnborg.org>
Cc: Sedat Dilek <sedat.dilek@gmail.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
11 years agokconfig: loop as long as we changed some symbols in randconfig
Yann E. MORIN [Sun, 28 Apr 2013 20:36:38 +0000 (22:36 +0200)]
kconfig: loop as long as we changed some symbols in randconfig

Because of choice-in-a-choice constructs, it can happen that not all
symbols are assigned a value during randconfig, leading in rare cases
to this situation:

    ---8<--- choice-in-choice.in
    choice
        bool "A/B/C"
    config A
        bool "A"

    config B
        bool "B"
    if B
    choice
        bool "E/F"
    config E
        bool "E"
    config F
        bool "F"
    endchoice
    endif # B

    config C
        bool "C"
    endchoice
    ---8<---

    $ ./config/conf --randconfig choice-in-choice.in
    [--SNIP--]
    $ ./config/conf --silentoldconfig choice-in-choice.in </dev/null
    [--SNIP--]
    A/B/C
      1. A (A)
    > 2. B (B)
      3. C (C)
    choice[1-3]: 2
      E/F
      > 1. E (E) (NEW)
        2. F (F) (NEW)
      choice[1-2]: aborted!

    Console input/output is redirected. Run 'make oldconfig' to update
    configuration.

Fix this by looping in randconfig for as long as some symbol gets assigned
a value.

Note: this was spotted with the USB EHCI Debug Device Gadget (USB_G_DBGP),
which uses this choice-in-a-choice construct, and exhibits this problem.
The example above is just a stripped-down minimalist test-case.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>