1.) Rather than modify upstream `smp_affinity` script, move changes into
this init script.
Primarily: "xhci-hcd:usb1", "ppdu-end-interrupts-mac1", "ppdu-end-interrupts-mac2"
2.) Move logging into separate function, and better account for NSS core
specific output.
3.) Set the defaults for `enable_rps` and `enable_log` to true ('1').
4.) Change startup to sequence to `94` [after `smp_affinity` (93)]
Signed-off-by: Qosmio <datapronix@protonmail.com>
Using the previous version, not all nss related interrupts were being balanced across the available CPU cores.
This makes sure they are as well as moving a bit more off cpu0.
1.) Moved `set_affinity` function outside of `enable_rps`
2.) Added 2 new functions `bitmask_to_cpus` and `cpus_to_bitmask`
a.) bitmask_to_cpus - Takes a bitmask of CPUs and returns a
list of CPU numbers. (i.e. `bitmask_to_cpus "f"` -> 0,1,2,3)
b.) cpus_to_bitmask - Takes a comma/space or range list of CPUs and returns
a bitmask. (i.e. `cpus_to_bitmask "2,3"` -> c)
3.) Changed logic of `set_affinity` to now use physical CPUs rather than
knowing the bitmask. This should make it more straight forward when
testing changes
4.) Added an UCI option `enable_log` to enable/disable logging output to
`logger`. Default is `1` (on)
5.) Removed unused UCI options `nss_firmware *`
6.) Changed the way UCI options are retrieved to account for missing
options.
7.) Moved '/lib/debug/qca-nss-drv' to '/usr/bin/nss_stats' so it's in
$PATH and has a more intuitive name
Using the previous version, not all nss related interrupts were being balanced across the available CPU cores.
This makes sure they are as well as moving a bit more off cpu0.
Since many of ECM's module depends are dynamic and chosen at build time
`kmodloader` seems to have trouble properly loading its dependencies.
Attempt to parse ecm's module depends and load them prior to installing
the module.
This commit also replaces error prone `uci get` command with `config_get`,
in case certain options are missing from `/etc/config/ecm`
The following modules have been disabled for either being broken,
incompatible or abandoned by Qualcomm:
* profile
* capwapmgr
* dtlsmgr
* ipsecmgr
* tlsmgr
* mscs
* nssinfo (netlink + libnl-nss)
`is_mlo_device` is a check for whether a device is multi-link operation
capable, it is also geared towards WiFi 7 which is only supported on
IPQ95xx/53xx platforms with SFE. Since these patches are only focused on NSS,
rather than unecessarily patching the kernel, don't check if device is MLO capable.
There are significant changes between NSS version 11.4.0.5 and 12.1 (12.0.5),
that it doesn't really make sense to use it with older firmware (i.e. using mesh releated
features).
This change will explicitly link building the proper driver and client
packages when FW 12.1 or 11.4 is selected, while also backporting
patches from 12.4.