This adds two fixes for compilation with kernel 5.4:
1. dev_open from include/linux/netdevice.h needs a second parameter
since kernel 5.0:
00f54e68924e ("net: core: dev: Add extack argument to dev_open()")
2. get_ds() macro definition has been dropped since kernel 5.1:
736706bee329 ("get rid of legacy 'get_ds()' function")
Since get_ds() has been just a macro before, replace it in
the driver instead of creating a version switch.
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Since kernel 4.15, init_timer is not available anymore, and has been
replaced by timer_setup. The fixes compilation of wl_linuc.c, which
returned the following errors beforehand (line-wrapped manually):
.../broadcom-wl-5.10.56.27.3/driver/wl_linux.c: In function 'wl_init_timer':
.../broadcom-wl-5.10.56.27.3/driver/wl_linux.c:2576:2: error: implicit
declaration of function 'init_timer'; did you mean 'init_timers'?
[-Werror=implicit-function-declaration]
init_timer(&t->timer);
^~~~~~~~~~
init_timers
.../broadcom-wl-5.10.56.27.3/driver/wl_linux.c:2577:10: error:
'struct timer_list' has no member named 'data'
t->timer.data = (ulong) t;
^
.../broadcom-wl-5.10.56.27.3/driver/wl_linux.c:2578:20: error: assignment
to 'void (*)(struct timer_list *)' from incompatible pointer type
'void (*)(ulong)' {aka 'void (*)(long unsigned int)'}
[-Werror=incompatible-pointer-types]
t->timer.function = wl_timer;
This should fix build of several devices on bcm63xx with testing
kernel (4.19).
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
The SUBDIRS variable has been removed in kernel 5.4, and was deprecated
since the beginnig of kernel git history in favour of M or KBUILD_EXTMOD.
Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
This change makes the names of Broadcom targets consistent by using
the common notation based on SoC/CPU ID (which is used internally
anyway), bcmXXXX instead of brcmXXXX.
This is even used for target TITLE in make menuconfig already,
only the short target name used brcm so far.
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
This change makes the names of Broadcom targets consistent by using
the common notation based on SoC/CPU ID (which is used internally
anyway), bcmXXXX instead of brcmXXXX.
This is even used for target TITLE in make menuconfig already,
only the short target name used brcm so far.
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
After commit e82a4d9cfb ("config: regenerate *_shipped sources") the mconf
parser became more strict as a side effect and started to spew a series of
warnings when evaluating our generated kconfig sources:
tmp/.config-package.in:705:warning: ignoring unsupported character '@'
The root cause of these warnings is a wrong use of the @SYMBOL dependency
syntax in various Makefile. Fix the corresponding Makefiles by turning
`@SYM||@SYM2` expressions into the proper `@(SYM||SYM2)` form.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
The last_rx field was removed from net_device. Since the field wasn't
used by the generic subsystem, and the driver only writes to it, just
remove the usage.
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
The build system already defines KERNEL_CROSS which defaults to TARGET_CROSS.
Make use of this variable for kernel makefiles.
Signed-off-by: Karl Vogel <karl.vogel@gmail.com>
Now that we have working module dependency generation, we can switch to
AutoProbe and let modprobe handle loading required modules.
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
Reoder the build to build the glue module first and pass the glue module's
Module.symvers to the wl driver builds.
This allows modpost to properly store a wl_glue dependency in the driver.
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
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>
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>
Add nonshared flag to package depending on specific targets or subtargets as
there's no guarantee otherwise that they'll be available in the shared repo.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Without this patch adding the wifi device to the bridge may fail
because the bridge is not already configured when the wifi device gets
configured. This patch makes broadcom-wl wait till the bridge is ready.
This fixes#17262
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 46749
This fixes some build problems with musl. The binary only program
nas.exe wants to link against __assert, which is copied from uClibc.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 46021
- Support HT40 instead of HT40+/HT40- like mac80211
- Enable 11n if htmode is HT20 or HT40
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
SVN-Revision: 43063
Attempting to build broadcom_wl (from trunk) with the linaro 4.9.x
toolchain produces the following errors:
<...>/wl_linux.c: In function 'wl_dump_ver':
<...>/wl_linux.c:2302:3: error: macro "__DATE__" might prevent reproducible builds [-Werror=date-time]
__DATE__, __TIME__, EPI_VERSION_STR);
^
<...>/wl_linux.c:2302:13: error: macro "__TIME__" might prevent reproducible builds [-Werror=date-time]
__DATE__, __TIME__, EPI_VERSION_STR);
^
cc1: some warnings being treated as errors
Remove the use of the __DATE__ and __TIME__ macros, as the info is not
really useful.
Signed-off-by: Nathan Hintz <nlhintz@hotmail.com>
SVN-Revision: 43046
This adds default tx and rx antennas, so that LuCI shows automatic as the default radio option for the antennas.
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
SVN-Revision: 42085
When the original mac addresses are not valid assign the first one to
the internal wifi core, this matches the manufacture mac address in
most cases. In addition refresh the patches.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 41545
Some devices have an nvram setting, which make broadcom-wl turn of the
led all the time. When the driver is switched on and we find such a
setting we replace it with a better value.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 41518
Some series of devices are using the same mac address, which causes
conflicts for these devices we generate a new mac address based on the
base address. This patch adds this functionality to braodcom-wl.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 41514
When enabling multiple VIFS, the driver sometimes crashes. The frequency
of the crash increases as more VIFS are enabled.
Signed-off-by: Nathan Hintz <nlhintz@hotmail.com>
SVN-Revision: 38762
Read the number of virtual interfaces to support from the device
capabilities; as some newer devices can support up to 16.
Signed-off-by: Nathan Hintz <nlhintz@hotmail.com>
SVN-Revision: 38759
Some devices initialize with a default address (common to all H/W).
The address needs to be changeable so that a unique address can be
assigned to each AP.
Signed-off-by: Nathan Hintz <nlhintz@hotmail.com>
SVN-Revision: 38757
Default gmode to "GOnly" unless explicitly overwridden. This corrects
processing for 11ng to specify "GOnly" for gmode instead of "Auto"
(which translated to "bg").
Signed-off-by: Nathan Hintz <nlhintz@hotmail.com>
SVN-Revision: 38754