Commit graph

653 commits

Author SHA1 Message Date
Felix Fietkau
00bc7f0357 mac80211: merge a number of minstrel/minstrel_ht performance and memory usage improvements
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-12-19 13:51:21 +01:00
Felix Fietkau
720b99215d treewide: clean up download hashes
Replace *MD5SUM with *HASH, replace MD5 hashes with SHA256

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-12-16 22:39:22 +01:00
Felix Fietkau
28f6951600 ath10k: fix a soft-lockup on firmware restart
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-12-14 12:13:13 +01:00
Felix Fietkau
7dcccacb98 ath10k: fix a bug on sending null-func frames
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-12-14 12:04:52 +01:00
Felix Fietkau
66482e179b ath10k: fix DMA allocation issues
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-12-13 12:44:57 +01:00
Felix Fietkau
57f7f91f0c mac80211: refresh all patches
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-12-13 12:34:13 +01:00
Felix Fietkau
4872c36c55 ath9k: add a RCU related bugfix
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-12-13 12:34:12 +01:00
Martin Blumenstingl
448b9b67e1 kernel: mac80211: disable ath9k bands via device tree
These properties allow overriding the settings from the EEPROM
which indicate whether a band is enabled or not.
Setting this property is only needed when the RF circuit does not
support the 2.4GHz or 5GHz band while it is enabled nevertheless in the
EEPROM.

These patches will be replaced with a future upstream version which
will introduces an ieee80211 device tree property to disable bands.

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
2016-11-29 21:40:16 +01:00
Martin Blumenstingl
3f889418a5 kernel: mac80211: add pending ath9k EEPROM swapping patches
There are two types of swapping the EEPROM data in the ath9k driver.
Before this series one type of swapping could not be used without the
other.

The first type of swapping looks at the "magic bytes" at the start of
the EEPROM data and performs swab16 on the EEPROM contents if needed.
The second type of swapping is EEPROM format specific and swaps
specific fields within the EEPROM itself (swab16, swab32 - depends on
the EEPROM format).

With this series the second part now looks at the EEPMISC register
inside the EEPROM, which uses a bit to indicate if the EEPROM data
is Big Endian (this is also done by the FreeBSD kernel).
This has a nice advantage: currently there are some out-of-tree hacks
(in OpenWrt and LEDE) where the EEPROM has a Big Endian header on a
Big Endian system (= no swab16 is performed) but the EEPROM itself
indicates that it's data is Little Endian. Until now the out-of-tree
code simply did a swab16 before passing the data to ath9k, so ath9k
first did the swab16 - this also enabled the format specific swapping.
These out-of-tree hacks are still working with the new logic, but it
is recommended to remove them. This implementation is based on a
discussion with Arnd Bergmann who raised concerns about the
robustness and portability of the swapping logic in the original OF
support patch review, see [0].

After a second round of patches (= v1 of this series) neither Arnd
Bergmann nor I were really happy with the complexity of the EEPROM
swapping logic. Based on a discussion (see [1] and [2]) we decided
that ath9k should use a defined format (specifying the endianness
of the data - I went with __le16 and __le32) when accessing the
EEPROM fields. A benefit of this is that we enable the EEPMISC based
swapping logic by default, just like the FreeBSD driver, see [3]. On
the devices which I have tested (see below) ath9k now works without
having to specify the "endian_check" field in ath9k_platform_data (or
a similar logic which could provide this via devicetree) as ath9k now
detects the endianness automatically. Only EEPROMs which are mangled
by some out-of-tree code still need the endian_check flag (or one can
simply remove that mangling from the out-of-tree code).

[0] http://www.spinics.net/lists/linux-wireless/msg152634.html
[1] https://marc.info/?l=linux-wireless&m=147250597503174&w=2
[2] https://marc.info/?l=linux-wireless&m=147254388611344&w=2
[3] 50719b56d9/sys/dev/ath/ath_hal/ah_eeprom_9287.c (L351)

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
2016-11-29 21:40:16 +01:00
Martin Blumenstingl
1847248fc1 kernel: mac80211: backport ath9k device tree support patches
These patches add support for configuring ath9k based devices via
devicetree. This was tested on PCI(e) based devices. This should work
for AHB based devices as well (adding more AHB specific properties may
still be needed) as soon as the ath79 platform is ready to populate the
ath9k wmac via devicetree.
This patchset was accepted upstream, more information can be found on
the linux-wireless list:
https://www.spinics.net/lists/linux-wireless/msg155474.html

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
2016-11-29 21:40:16 +01:00
Alexey Brodkin
84d57fc485 mac80211: Make wlcore platform-independent
TI wl18xx and wl12xx are Wi-Fi/Bluetooth combo modules
that could be found on different existing boards.

But it is possible to get those modules as a separate
component and use with existing boards as well as
new boards equipped with either module may appear so we
remove dependency on OMAP instead we add dependency on MMC
because this Wi-Fi module uses SDIO interface.

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Jo-Philipp Wich <jo@mein.io>
Cc: Felix Fietkau <nbd@nbd.name>
Cc: Imre Kaloz <kaloz@openwrt.org>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
2016-11-16 10:54:33 +01:00
Matthias Schiffer
fa845e9978
ath9k: add support for the HSR tuner of the Ubiquiti UAP Outdoor+
Without setting the HSR to the selected channel, the WLAN of the UAP
Outdoor+ will exhibit high packet loss in RX.

Based-on-patch-by: Stefan Rompf <stefan@loplof.de>
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
2016-11-15 18:54:06 +01:00
Matthias Schiffer
a250556d27
ath9k: fix ath9k_hw_gpio_get() to return 0 or 1 on success
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
2016-11-15 18:54:05 +01:00
Mathias Kresin
b6832817eb mac80211: rt2x00: add support for mac addr from device tree
Backport upstream accepted patch which allows to override the EEPROM
mac address with one from device tree.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2016-11-09 20:02:18 +01:00
Mathias Kresin
e7c019c24d mac80211: rt2x00: fold patches
The patch 615-rt2x00-fix_20mhz_clk.patch fixes code introduced by
611-rt2x00-rf_vals-rt3352-xtal20.patch and makes the the platform data
property clk_is_20mhz obsolete.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2016-11-09 20:02:18 +01:00
Mathias Kresin
4f7a0601e6 mac80211: rt2x00: add mtd-eeprom swab function
Most of the lantiq devices with ralink wifi have the EEPROM stored
in big endian byte order in flash, but the driver expects the EEPROM to
be in little endian.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2016-11-08 11:17:11 +01:00
Mathias Kresin
7f235df571 mac80211: rt2x00: remove eeprom filename dependency from mtd-eeprom
The ralink,mtd-eeprom device tree property doesn't require the
ralink,eeprom property to work.

Rework the error handling and user notification as well. Do not log an
error if the mtd-eeprom parameter isn't used. It could be intentional
and should not scare the user.

Check if the number of bytes read from the mtd devices matches the
requested number of bytes.

In case of an mtd read error, give a hint to the user which partition
was tried to read from.

In case everything is fine, notify the user as well.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2016-11-08 11:17:10 +01:00
Mathias Kresin
2516c0572e mac80211: rt2x00: improve eeprom_file property handling
Call the rt2x00lib_get_eeprom_file_name only once and from the function
where the EEPROM filename is required.

Error only out if an EEPROM file is mandatory. Use the
REQUIRE_EEPROM_FILE bit to determine if it is mandatory.

Do not set the REQUIRE_EEPROM_FILE bit while requesting an EEPROM file.
It should be (and is) set before requesting an EEPROM file.

Do not redirect users to upstream while using a function of a custom
patch.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2016-11-08 11:17:10 +01:00
Felix Fietkau
17ecd879b8 Revert "mwl8k: remove synchronous device init hack"
This reverts commit cb037d1842.
See 6aa07b8202 for more information

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-11-04 13:23:07 +01:00
Felix Fietkau
6aa07b8202 Revert "mac80211: remove ath10k delayed initialization hack"
This reverts commit efd9dec319.

ath10k can take a long time to probe, long enough for netifd to fail to
initialize already configured wireless devices

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-11-04 12:58:52 +01:00
Felix Fietkau
cae688544d mac80211: fix A-MSDU tx aggregation (FS#174)
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-11-04 10:32:05 +01:00
Felix Fietkau
db82db3203 mac80211: minor cleanup
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-11-04 10:31:42 +01:00
Felix Fietkau
5c11a4b311 mac80211: fix a tx A-MPDU aggregation issue
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-11-04 10:31:27 +01:00
Felix Fietkau
12bd0f2820 mac80211: replace the previous fix with a revert of the faulty upstream commit
This avoids potential breakage in rt2x00usb

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-11-03 12:13:50 +01:00
Felix Fietkau
cb037d1842 mwl8k: remove synchronous device init hack
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-11-03 11:08:01 +01:00
Mathias Kresin
efd9dec319 mac80211: remove ath10k delayed initialization hack
LEDE no longer requires all PHYs to be initialized to
create the configuration files during bootup. This patch
removes the now obsolete ath10k patch.

Signed-off-by: Mathias Kresin <dev@kresin.me>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2016-11-03 11:08:01 +01:00
Christian Lamparter
5f8f8a3661 base-files, mac80211, broadcom-wl: wifi detection and configuration
Currently, the wifi detection script is executed as part of
the (early) boot process. Pluggable wifi USB devices, which
are inserted at a later time are not automatically
detected and therefore they don't show up in LuCI.

A user has to deal with wifi detection manually, or restart
the router.

However, the current "sleep 1" window - which the boot
process waits for wifi devices to "settle down" - is too
short to detect wifi devices for some routers anyway.

For example, this can happen with USB WLAN devices on the
WNDR4700. This is because the usb controller needs to load
its firmware from UBI and initialize, before it can operate.

The issue can be seen on a BT HomeHub 5A as well as soon as
the caldata are on an ubi volume. This is because the ath9k
card has to be initialized by owl-loader first. Which has to
wait for the firmware extraction script to retrieve the pci
initialization values inside the caldata.

This patch moves the wifi configuration to hotplug scripts.
For mac80211, the wifi configuration will now automatically
run any time a "ieee80211" device is added. Likewise
broadcom-wl's script checks for new "net" devices which
have the "wl$NUMBER" moniker.

Issues with spawning multiple interface configuration - in
case the detection script is run concurrently - have been
resolved by using a named section for the initial
configuration. Concurrent configuration scripts will now
simply overwrite the same existing configuration.

A workaround which preserves the "sleep 1" window for just
the first boot has been added. This allows the existing
brcm47xx boot and mvebu uci-default scripts to correctly
setup the initial mac addresses and regulatory domain.

And finally, the patch renames the "wifi detect" into
"wifi config". As the script no longer produces any output
that has to be redirected or appended to the configuration
file.

Thanks to Martin Blumenstingl for helping with the implementation
and testing of the patch.

Acked-by: Jo-Philipp Wich <jo@mein.io>
Signed-off-by: Mathias Kresin <dev@kresin.me>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-11-03 11:08:01 +01:00
Christian Lamparter
5e35b4562f base-files, mac80211, broadcom-wl: use uci to populate wireless config
Previously, wifi detect simply dumped its generated wireless
configuration to STDOUT. A second step was needed to append
the configuration to /etc/config/wireless (or create it, if
it didn't exist).

With this patch, The wifi detection script will now use uci
to update the wireless configuration directly.

This patch also makes the initially created wifi-iface a
named section ('default_radio$X' for mac80211 and
'default_wl$X' for broadcom). With this change, uci will
not print the cfgHASH to STDOUT (which would now corrupt
the wireless configuration). It will also prevent adding
duplicated wifi interface configurations, if the wifi
configuration is run concurrently.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2016-11-03 11:08:01 +01:00
Felix Fietkau
f78405f500 mac80211: fix regdomain change issues with CONFIG_ATH_USER_REGD
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-11-03 11:04:57 +01:00
Felix Fietkau
69ace0824f mac80211: fix a minor issue in the header padding patch
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-11-03 11:04:54 +01:00
Felix Fietkau
4dfc0be07b mac80211: fix AP powersave issues introduced in the last wireless-testing update (FS#241)
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-11-03 11:04:30 +01:00
Felix Fietkau
b7b223be41 mac80211: backport some upstream a-msdu tx fixes
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-10-17 12:18:25 +02:00
Felix Fietkau
5f9598a432 mac80211: fix build error in ath10k with hwmon enabled
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-10-17 11:01:37 +02:00
Felix Fietkau
ad51e09fd1 mac80211: update to wireless-testing 2016-10-08
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-10-13 17:06:03 +02:00
Álvaro Fernández Rojas
757228b137 mac80211: update rtl8xxxu patches
Adds the latest patches from Jes Sorensen for rtl8xxxu, which improve
rtl8732bu, rtl8192eu and rtl8188eu support.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2016-10-08 09:41:26 +02:00
Felix Fietkau
fc88eb3fdf ath9k: remove patch causing stability issues with powersave devices (FS#176)
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-09-30 10:50:20 +02:00
John Crispin
72e9d19f6e mac80211: fix rfkill dependency
Signed-off-by: John Crispin <john@phrozen.org>
2016-09-29 11:39:41 +02:00
Álvaro Fernández Rojas
c795794eef mac80211: use upstream patches for rtl8xxxu
Also improves rtl8188eu support.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2016-09-29 10:32:41 +02:00
Rafał Miłecki
a0ce6982d8 mac80211: backport brcmfmac changes from 2016-09-27
This fixes bug that could cause WARNING on every add_key/del_key call.
It also replaces WARNING with a simple message. They may still occur
e.g. on station going out of range and A-MPDU stall in the firmware.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2016-09-27 18:23:53 +02:00
Rafał Miłecki
45b73af7f6 mac80211: backport brcmfmac changes from 2016-09-26
All these patches are in wireless-drirvers-next. There is support for
hidden SSID, few new devices and many fixes.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2016-09-27 07:00:53 +02:00
Felix Fietkau
da4e81960d mac80211: fix crash in mac80211_hwsim
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-09-26 16:19:58 +02:00
Álvaro Fernández Rojas
092e77d948 rtl8xxxu: add support for rtl8188eu
Patches by Jes Sorensen:
https://git.kernel.org/cgit/linux/kernel/git/jes/linux.git/

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2016-09-15 20:23:46 +02:00
Álvaro Fernández Rojas
f7670a2d07 mac80211: stop brcmfmac from selecting all SDIO firmwares
Now that we have firmwares separated and brcm2708 being the only target that
actually selects SDIO support, avoid selecting all firmwares by default.
sunxi should select the proper firmwares once SDIO support is enabled and
tested.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2016-09-15 20:23:46 +02:00
Álvaro Fernández Rojas
daa5691a4d linux-firmware: separate packages for Broadcom FullMAC SDIO firmwares
Using few packages will allow saving some space by decreasing rootfs
size.

Moreover there are more firmware files that may require packaging and
even more to come later.

This can especially useful now, with per device rootfs.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2016-09-15 20:23:46 +02:00
Rafał Miłecki
65c5d097a4 mac80211: stop brcmfmac from selecting all PCIe firmwares
Now we have firmwares separated and bcm53xx selecting required ones make
use of it to actually save that rootfs space.
Other targets using brcmfmac (brcm2708 and sunxi) use SDIO interface and
firmware so they don't won't be affected.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2016-09-14 22:12:57 +02:00
Rafał Miłecki
ac887f4832 linux-firmware: separate packages for Broadcom FullMAC PCIe firmwares
Using few packages will allow saving some space by decreasing rootfs
size. Dropping 43602a1 firmware saves 316 580 B. Dropping 4366b1 saves
468 188 B.

Moreover there are more firmware files that may require packaging and
even more to come later (e.g. 4366c0).

This can especially useful now, with per device rootfs.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2016-09-13 10:31:01 +02:00
Felix Fietkau
f3747020e2 mac80211: fix tx issue with CCMP PN generated in hardware
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-09-12 11:25:33 +02:00
Felix Fietkau
c4bfb119d8 mac80211: remove the fq-disable hack, now that reordering is fixed
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-09-08 15:28:38 +02:00
Felix Fietkau
a194ffd4a8 mac80211: fix packet loss on fq reordering
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-09-08 15:28:38 +02:00
Felix Fietkau
49a6f67c39 mac80211: backport new register bitfield macros
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-09-05 17:46:26 +02:00