Commit Graph

23 Commits

Author SHA1 Message Date
Christian Marangi
3ccdc15c6a
kernel: broadcom-wl: multiple fix to make the package compilable again
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>
2023-05-12 03:15:45 +02:00
Christian Marangi
f3fc9ac1aa
kernel: broadcom-wl: add patch dropping set_fs and get_fs for > 5.13
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>
2023-05-12 03:15:44 +02:00
Christian Marangi
40b075042b
kernel: broadcom-wl: add patch fixing compilation warning
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>
2023-05-12 03:15:43 +02:00
Florian Fainelli
cd3de51bb4 broadcom-wl: Fix compilation with kernel 5.10
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>
2022-06-20 14:29:12 -07:00
Adrian Schmutzler
23d3fafd87 broadcom-wl: fix compilation with kernel 5.4
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>
2020-04-12 12:41:12 +02:00
Adrian Schmutzler
d761b9f211 broadcom-wl: fix compilation with kernel >= 4.15
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>
2020-04-12 12:35:37 +02:00
Jonas Gorski
592472f60f broadcom-wl: fix compilation with 4.14
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>
2018-02-11 23:15:05 +01:00
Hauke Mehrtens
db4550c4c8 broadcom-wl: fix compile with kernel 4.9
ENOENT could not be found by the compiler when compiling again kernel
4.9.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2017-10-18 23:26:15 +02:00
Hauke Mehrtens
adbb8801ac broadcom-wl: fix section mismatches in broadcom-wl driver
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>

SVN-Revision: 46745
2015-08-29 17:37:41 +00:00
Hauke Mehrtens
1772c47c51 broadcom-wl: fix build with musl
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
2015-06-17 22:37:49 +00:00
Felix Fietkau
fc822a4370 broadcom_wl: eliminate compiler error with gcc-4.9-linaro
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
2014-10-24 18:05:51 +00:00
Jonas Gorski
9a24294b02 brcm-wl: use new brcm63xx fallback sprom
This fixes brcm63xx fallback sprom extraction.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 42725
2014-10-02 12:24:05 +00:00
Hauke Mehrtens
8bc5902d72 broadcom-wl: add support for a8xx broadcom devices
Tested on Comtrend VR-3025u (brcm6368 + a8d6-43222).

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

SVN-Revision: 42084
2014-08-08 22:58:54 +00:00
Hauke Mehrtens
189edfef1a broadcom-wl: assign first increased mac address to internal wifi core
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
2014-07-07 17:38:54 +00:00
Hauke Mehrtens
817c56f77c broadcom-wl: fixup mac addresses.
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
2014-07-05 19:23:40 +00:00
Hauke Mehrtens
753d52c2a4 broadcom-wl: support probe of 'wds' devices
'nas' requires probe of 'wds' devices to be successful;
so don't fail them.

Signed-off-by: Nathan Hintz <nlhintz@hotmail.com>

SVN-Revision: 38763
2013-11-11 22:04:53 +00:00
Hauke Mehrtens
697f4a19e5 broadcom-wl: fix crash when starting multiple virtual interfaces
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
2013-11-11 22:04:26 +00:00
Hauke Mehrtens
b98f77f3d9 broadcom-wl: perform additional cleanup on wl module unload
Signed-off-by: Nathan Hintz <nlhintz@hotmail.com>

SVN-Revision: 38761
2013-11-11 22:03:58 +00:00
Hauke Mehrtens
40e8eb2dda broadcom-wl: fix band reporting
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
2013-11-11 21:58:19 +00:00
Hauke Mehrtens
cac4ccca2f broadcom-wl: change interface names
'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
2013-11-11 21:57:26 +00:00
Hauke Mehrtens
c36d24ec82 broadcom-wl: fix compiler warning
Delete the return value (nvram_exit is declared with a 'void' return).

Signed-off-by: Nathan Hintz <nlhintz@hotmail.com>

SVN-Revision: 38747
2013-11-11 21:56:45 +00:00
Hauke Mehrtens
e77339b9e2 broadcom-wl: fix compile error with kernel 3.10
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>

SVN-Revision: 37626
2013-07-31 17:42:55 +00:00
John Crispin
4ebf19b48f packages: clean up the package folder
Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 37007
2013-06-21 16:54:37 +00:00