This change fixes an empty module target when invoked by `make -C <path_to_kernel_src> M=$PWD` due to missing `export CONFIG_RTL8821CU = m`.
Since kbuild only respects `obj-y := ...` for in-tree and `obj-m := ...` for out of tree builds, it is safe to assume obj-m to be the default as this mimicks existing behavior, still retaining the option to build in-tree if needed.
When packaging the source as a Debian DKMS package, lintian will warn
national-encoding due to Big5 encoded characters in comments.
Reencode Chinese in UTF-8.
Signed-off-by: ZHANG Yuntian <yt@radxa.com>
Error in Rockchip v20230524 kernel 5.10.y
ERROR: modpost: module 8821cu uses symbol kernel_write from namespace VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver, but does not import it.
ERROR: modpost: module 8821cu uses symbol kernel_read from namespace VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver, but does not import it.
ERROR: modpost: module 8821cu uses symbol filp_open from namespace VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver, but does not import it.
make[1]: *** [scripts/Makefile.modpost:168: modules-only.symvers] Error 1
make[1]: *** Deleting file 'modules-only.symvers'
make: *** [Makefile:1524: modules] Error 2
make: *** Waiting for unfinished jobs....
Signed-off-by: Steve Jeong <steve@how2flow.net>
According to the makefile, it should be possible to keep roaming active:
Set #bit2 of CONFIG_ROAMING_FLAG, like this:
CONFIG_ROAMING_FLAG = 0x7
But, when trying out this option, it appears that active roaming is not
working as expected. It only changes if the old AP is expired.
This patch fixes this behaviour, but does NOT set BIT2.
Reason for failure:
The linked_status_chk function runs every 2 seconds.
There is an internal roaming flag (need_to_roam) that is set when the
current signal is below a threshold AND if it hasn't been set during a
predefined time. Setting the flag also updates the last_time_roaming timestamp.
If either of these fails, then the flag (need_to_roam) is cleared.
This causes a race condition:
1) Threshold is too low + long last_time_roaming
-> flag is set + last_time_roaming is updated.
2) Chipset starts scanning / surveying (this takes > 3 sec)
3) Conditions are rechecked: threshold is still to low, but last_time_roaming
is now too recent -> flag is cleared.
4) Survey finishes, but since the flag is cleared, roaming will be ignored.
The solution in this patch:
Once the flag (need_to_roam) has been set, it should only be cleared if the
signal strength is above the threshold. It should not be cleared based on the
last_time_roaming timestamp.