Add multiple patch to make the package compilable again.
Aside from some fixup of obvius wrong code, some real fix were needed.
This fix any compilation warning found on compiling the package on
bcm47xx. (omitted since they are too much)
The real problem of this package was the missing MODULE_LICENSE now
mandatory even without WERROR. Set to Proprietary.
And the big blocker is that Broadcom provided an object file targetting
an old kernel version.
The module on modprobe try to find the symbol printk but printk was
dropped and replaced to _printk.
To handle this change we use objcopy tool to rename the symbol to the
new name permitting a correct modprobe and creation of .ko
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Drop set_fs and get_fs since they are not present in kernel > 5.13.
Fix compilation warning:
/__w/openwrt/openwrt/openwrt/build_dir/target-mipsel-openwrt-linux-musl_musl/linux-bcm47xx_generic/broadcom-wl-5.10.56.27.3/driver/wl_iw.c: In function 'dev_wlc_ioctl':
/__w/openwrt/openwrt/openwrt/build_dir/target-mipsel-openwrt-linux-musl_musl/linux-bcm47xx_generic/broadcom-wl-5.10.56.27.3/driver/wl_iw.c:121:14: error: implicit declaration of function 'get_fs'; did you mean 'sget_fc'? [-Werror=implicit-function-declaration]
121 | fs = get_fs();
| ^~~~~~
| sget_fc
/__w/openwrt/openwrt/openwrt/build_dir/target-mipsel-openwrt-linux-musl_musl/linux-bcm47xx_generic/broadcom-wl-5.10.56.27.3/driver/wl_iw.c:121:14: error: incompatible types when assigning to type 'mm_segment_t' from type 'int'
/__w/openwrt/openwrt/openwrt/build_dir/target-mipsel-openwrt-linux-musl_musl/linux-bcm47xx_generic/broadcom-wl-5.10.56.27.3/driver/wl_iw.c:122:9: error: implicit declaration of function 'set_fs'; did you mean 'sget_fc'? [-Werror=implicit-function-declaration]
122 | set_fs(KERNEL_DS);
| ^~~~~~
| sget_fc
/__w/openwrt/openwrt/openwrt/build_dir/target-mipsel-openwrt-linux-musl_musl/linux-bcm47xx_generic/broadcom-wl-5.10.56.27.3/driver/wl_iw.c:122:16: error: 'KERNEL_DS' undeclared (first use in this function); did you mean 'KERNFS_NS'?
122 | set_fs(KERNEL_DS);
| ^~~~~~~~~
| KERNFS_NS
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Add patch fixing compilation warning related to if clause not guarding in
wl_iw.c
Fix compilation warning:
/__w/openwrt/openwrt/openwrt/build_dir/target-mipsel-openwrt-linux-musl_musl/linux-bcm47xx_legacy/broadcom-wl-5.10.56.27.3/driver/wl_iw.c: In function 'wl_iw_set_freq':
/__w/openwrt/openwrt/openwrt/build_dir/target-mipsel-openwrt-linux-musl_musl/linux-bcm47xx_legacy/broadcom-wl-5.10.56.27.3/driver/wl_iw.c:393:9: error: this 'if' clause does not guard... [-Werror=misleading-indentation]
393 | if (fwrq->m > 4000 && fwrq->m < 5000)
| ^~
/__w/openwrt/openwrt/openwrt/build_dir/target-mipsel-openwrt-linux-musl_musl/linux-bcm47xx_legacy/broadcom-wl-5.10.56.27.3/driver/wl_iw.c:396:17: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
396 | chan = wf_mhz2channel(fwrq->m, sf);
| ^~~~
cc1: all warnings being treated as errors
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
This adds a few fixes for compiling against Linux 5.10:
1. segment_eq() has been removed with upstream commit
428e2976a5bf7e7f5554286d7a5a33b8147b106a ("uaccess: remove
segment_eq") and can use uaccess_kernel() instead
2. ioremap_nocache() is removed and is now an alias for ioremap() with
upstream commit 4bdc0d676a643140bdf17dbf7eafedee3d496a3c ("remove
ioremap_nocache and devm_ioremap_nocache")
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
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 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>
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
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
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 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
Modify the band reporting for broadcom devices to correctly report
HW capability. Currently, 802.11na devices report "bgn"; but should be
reporting "an".
Signed-off-by: Nathan Hintz <nlhintz@hotmail.com>
SVN-Revision: 38749
'netifd' treats all devices with a "." in their name as vlan devices.
Modify the name of virtual/WDS interfaces created by broadcom-wl to use
a "-" instead of a ".", so they will be treated as simple devices
by 'netifd'.
Signed-off-by: Nathan Hintz <nlhintz@hotmail.com>
SVN-Revision: 38748