Commit Graph

56 Commits

Author SHA1 Message Date
Javier Viguera 373f061650 dey: cosmetic, mark patches as DEY specific
Our distribution is Digi Embedded Yocto (DEY), so use that to mark the
upstream status of the patches in our layer.

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2024-10-22 15:48:00 +02:00
Gabriel Valcazar 2bc985cbea global: add Upstream-Status tag to all patches
This avoids a QA error that is triggered if a patch is missing said tag

https://onedigi.atlassian.net/browse/DEL-9011

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2024-10-17 13:03:37 +02:00
Isaac Hermida fbe6481cd3 kernel-module-qualcomm: add lock file to avoid endless call to script in failure
Add a lock file to avoid to call the file continuously if the initial probe
failed.

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
2024-06-27 11:18:11 +02:00
Hector Bujanda c981548c19 ccx: fix some outdated files so implementation matches 'cctags api’ repository
1)
CcxTagControlData struct in CORE/HDD/inc/CcxTagDefs.h had some fields missing compared
with 'cctags api’ which was producing CCX_TAG_DRVR_RSP_ERR_CTRL_SIZE.

2)
Then CCX_TAG_DRVR_RSP_ERR_PACKET_SIZE aroused because following paddings:
	CCX_TAG_MPDU_HEADER_PAD_SIZE = 2
	CCX_TAG_CONTENT_HEADER_PAD_SIZE = 3
where producing wrong alignements and sizes between the 'cctags api’ and the driver.

With changes in this commit, master branch of ‘CCxTagTest’ repository compiled
out of source code gets on well with 'cctags api’ repository and with qca driver in
both dey-2.4 and dey4.0.
Packets in the air match 100% in content in both dey-2.4 and dey4.0.

https://onedigi.atlassian.net/browse/DEL-8446

Signed-off-by: Hector Bujanda <hector.bujanda@digi.com>
2023-04-20 10:59:12 +02:00
Isaac Hermida c30b947408 kernel-module-qualcomm: add script to load the wlan module
In rare cases, the wlan module may fail to load. In this scenario, forcing the
MMC driver to rebind the interface resolves the issue, making the WLAN module
load more reliably.
This only affects to modules where the qca chip is connected through the
MMC interface.

https://onedigi.atlassian.net/browse/DEL-8361

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
2023-03-22 10:46:19 +01:00
Isaac Hermida 29b008b790 qualcomm wifi: conditionally support using firmware with CCX tags
Co-authored-by: Javier Viguera <javier.viguera@digi.com>

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2022-09-30 15:28:10 +02:00
Javier Viguera f3fb6e6342 kernel-module-qualcomm: remove wlan kernel module load script
The qualcomm.sh script has been losing functionality over time, to the
point that now is just loading the kernel module using 'modprobe'.

Instead, run modprobe directly from the udev rule and get rid of the
qualcomm script.

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2022-09-30 14:47:02 +02:00
Isaac Hermida 7493637f2e kernel-module-qualcomm: revert to driver qcacld-2.0
Verbatim copy of the recipes in DEY-3.2, using command:
git restore -s dey-3.2/master -- meta-digi-arm/recipes-kernel/kernel-module-qualcomm

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2022-09-29 13:21:00 +02:00
Isaac Hermida 548efe4f6f kernel-module-qualcomm: use siocdevprivate for privates ioctls
Fix the way to register custom ioctls for kernel 5.15+.

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
2022-08-18 11:43:42 +02:00
Javier Viguera d4f4b40abd kernel-module-qualcomm: remove wlan kernel module load script
The qualcomm.sh script has been losing functionality over time, to the
point that now is just loading the kernel module using 'modprobe'.

Instead, run modprobe directly from the udev rule and get rid of the
qualcomm script.

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2022-08-12 11:45:02 +02:00
Isaac Hermida 4c2a524d6e kernel-module-qualcomm: fix sdio unload error
https://onedigi.atlassian.net/browse/DEL-7986

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
2022-07-18 16:57:55 +02:00
Isaac Hermida b54922a9b9 kernel-module-qualcomm: p2p and netdev patches
The enable p2p patch add support for enabling p2p as module parameter setting
it by default to false.
The cfg80211 netdevice fixes the registration of virtual interfaces for kernels
v5.12+.

https://onedigi.atlassian.net/browse/DEL-7986

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
2022-06-27 09:44:41 +02:00
Javier Viguera 8fbb4d576a kernel-module-qualcomm: fix build with kernel 5.15
Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2022-06-21 16:52:48 +02:00
Javier Viguera 18a2a93b02 kirkstone migration: fix kernel-module-qualcomm build
Yocto is becoming more strict on not using tags in the SRCREV, as that
may lead to problems in the different tasks of a bitbake recipe.

As of Yocto 4.0, bitbake errors when such condition happens, with:

"Recipe uses a floating tag/branch without a fixed SRCREV"

So convert the SRCREV of all tags to the proper SHA1 revision.

Also, extend the 'fix-build-issues' to delete '-Werror' from the
compilation flags. Newer versions of GCC (as the one used in Yocto 4.0)
throw more (new) warnings, and the '-Werror' flag was making the build
to fail.

cc1: all warnings being treated as errors
lim_api.c:1057:17: error: this 'if' clause does not guard... [-Werror=misleading-indentation]
lim_admit_control.c:169:17: error: this 'if' clause does not guard... [-Werror=misleading-indentation]

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2022-06-21 16:49:56 +02:00
Arturo Buzarra 52fece587f kernel-module-qualcomm: add support to read the MAC addresses from device tree
This commit adds a patch for the qcacld-3.0 wireless driver to read the
wireless MAC addresses from device tree. This patch is based on the original
commit from qcacld-2.0 driver improving and simplifying the code to work with
the new qcacld-3.0 driver.

https://onedigi.atlassian.net/browse/DEL-7916

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2022-05-19 16:13:30 +02:00
Arturo Buzarra 5bc574a8e9 kernel-module-qualcomm: update recipe to use new qcacld-3.0 Linux wireless driver
This commit updates the Linux wireless driver for Qualcomm's chipset to the
new qcacld-3.0 driver.
This update is based on the release "r10016.1 - Post-CS3 1.0.016.1" from
"qca6574au-le-2-2-1_qca_oem" product branch, which uses for a Linux kernel v5.4
the tag "CHSS.LNX_FSL.5.0-01200-QCA6574AUARMSDIOHZ".

https://onedigi.atlassian.net/browse/DEL-7916

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2022-05-19 13:36:28 +02:00
Francisco Gil afc61dfb83 wifi: add symbolics links needed by the read only filesystem.
Create this symbolics links in build time instead of doing it
in run-time. This simplifies the system and allows it to work
with read only filesystems.

Signed-off-by: Francisco Gil <francisco.gilmartinez@digi.com>
2021-11-25 12:39:28 +01:00
Francisco Gil 179d4315ef wireless: mac: create symbolic links for the wireless macs
Before this patch the MAC addresses were read from the device
tree in the qualcomm.sh script executed at init, and a creates
a file where the MAC where located.

In 0a92f5d9e8df644de74e74f152ed6ff3dd8d3369 in the qca driver
the support to read these MAC addresses from the filesystem
was added.

This commits creates the simbolic link between the device tree
and the expected path where the MAC addresses where located, and
gets rid of the file with the MAC addresses.

Signed-off-by: Francisco Gil <francisco.gilmartinez@digi.com>
2021-11-25 11:38:27 +01:00
Gonzalo Ruiz a8b3a130b7 qualcomm.sh: remove regulatory domain support
Regulatory domain support will be added completely with the 'regulatory-addon'.

Also simplify symlink management now that BDF file has the same name for
every platform.

https://jira.digi.com/browse/DEL-6841

Signed-off-by: Gonzalo Ruiz <Gonzalo.Ruiz@digi.com>
2020-01-27 16:00:21 +01:00
Francisco Gil f1d994bdc2 qca: update wireless driver
Update the wireless driver to a newer version that supports both
chips (qca6574 and qca6564).

We keep the same bdwlan30_US.bin files as the previous version
of the driver (or fakeboard_US for the qca6474).

Rename directories to qca65X4_driver_interface.

We have used the files from the following repo:
qca6574au-le-2-2-2_qca_oem -> 4d29c6886f2Commit label r00005.1
- CS2.2 0.0.005.1

md5sum
----------------------------------------------------------
qca65X4_pcie:	otp30.bin   ->	9d1cf03473904bd8b97fa30bc92b4a16
		qwlan30.bin ->	794f7a6f12ef3e6f8db6257b3a6f896f
		utf30.bin   ->	41cfb4e50613cd0eeb0fa99a005131bd
qca65X4_sdio:   otp30.bin   ->	e018e7b629b055dc4616c7e88c615b41
		qwlan30.bin ->	fe37bc043132ecf21e504eb33f46b846
		utf30.bin   ->	4743dee015047752e433e69f4db89974

https://jira.digi.com/browse/DEL-6766

Signed-off-by: Francisco Gil <francisco.gilmartinez@digi.com>
2020-01-20 08:51:10 +01:00
Gonzalo Ruiz 0692252b88 qualcomm.sh: remount filesystem as 'rw' to create symlinks
Also remount the root filesystem as 'rw' when the symlinks need to be
updated.

https://jira.digi.com/browse/DEL-6760

Signed-off-by: Gonzalo Ruiz <Gonzalo.Ruiz@digi.com>
2019-12-13 10:45:19 +01:00
Gonzalo Ruiz b242ee1a93 qualcomm.sh: get mount point to remount from /proc/mounts
Obtain the mount point of the filesystem to remount as 'read-write' from
/proc/mounts to avoid issues related to df output wrapping on a second line
when the device filesystem name is too long.

When the script finishes, remount the filesystem as 'read-only' if that was
the original access permission.

https://jira.digi.com/browse/DEL-6760
https://jira.digi.com/browse/DEL-5854

Signed-off-by: Gonzalo Ruiz <Gonzalo.Ruiz@digi.com>
2019-12-13 10:45:19 +01:00
Gonzalo Ruiz 224c4fc418 qualcomm.sh: generalize to select correct board data file
Generalize script to select the correct board data file to load into the
wireless chip depending on the Regulatory Domain configuration whether it
is a variation of 'bdwlan30.bin' or 'fakeboar.bin'.

If 'bdwlan30_US.bin' or 'bdwlan30_World.bin' files are found in the firmware
directory, the script will create two symlinks, 'bdwlan30.bin and 'utfbd30.bin',
pointing to either one of those files.

If no 'bdwlan30_*.bin' files are found, but 'fakeboar_US.bin' or
'fakeboar_World.bin' is, it will create a single symlink, 'fakeboar.bin',
pointing to either one of those files. In the case a QCA6574 community driver
is loaded, 'board.bin' symlink will be updated.

If no 'fakeboard_*.bin' files are found either, the script will exit.

https://jira.digi.com/browse/DEL-6773

Signed-off-by: Gonzalo Ruiz <Gonzalo.Ruiz@digi.com>
2019-10-10 16:15:12 +02:00
Hector Palacios c586b05bd2 kernel-module-qualcomm: fix printing of error message
Error message was being printed upon successful copy of the
MAC addresses file, instead of upon failure.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2019-09-03 08:19:57 +02:00
Jose Diaz de Grenu 797f9dc357 qualcomm.sh: remount as writteable if '/' is ro
On some scenarios, like when booting from NFS, the root filesystem is not
writteable. When this happens the qualcomm.sh is not able to write the MAC
file which so the wireless driver fails to load.

The arguments that U-Boot uses when booting from NFS using dboot result in
the root filesystem being mounted as read-only, but at some point it is
remounted as read/write. This happens after trying to load the wireless
driver, though.

Currently this is the only scenario in which we can reproduce the problem,
and there are several other processes in DEY that require a writeable root
filesystem (wireless SSID editing, Dropbear SSH key-gen and u-boot-fw-utils)
so remount the rootfs as writteable as a workaround.

While on it improve the script a bit to notify on error trying to create
this file, just in case this happens in other scenarios.

https://jira.digi.com/browse/DEL-5854

Signed-off-by: Jose Diaz de Grenu <Jose.DiazdeGrenu@digi.com>
2019-08-14 16:49:21 +02:00
Hector Palacios d60d5cc980 kernel-module-qualcomm: generalize for both qca6564 and qca6574 models
Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2019-06-05 10:56:47 +02:00
Hector Palacios 80b8fc8be4 kernel-module-qualcomm: don't run if 'wireless' node missing on DT
We want to run the script if the 'wireless' node exits on the device tree.
This is to facilitate disabling of the wireless by removing that node.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>

https://jira.digi.com/browse/DEL-6616
2019-06-05 10:56:47 +02:00
Javier Viguera a4d931bf84 qualcomm: remove hardcoded enable_p2p=0 parameter
P2P disabled is the default in the kernel module, so passing here the
parameter to 'modprobe' does nothing but prevents to set the parameter
in the kernel command line.

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2019-05-17 09:38:24 +02:00
Gabriel Valcazar 9f76a50e57 Revert "kernel-module-qualcomm: create wlan virtual interface"
Don't create the wlan1 interface automatically to improve the general
performance of the wireless interface.

This reverts commit a5ae6a5b3c.

https://jira.digi.com/browse/DEL-6353
2019-03-22 09:46:51 +01:00
Arturo Buzarra 05c9cd566d qualcomm: add enable_p2p parameter to driver initialization
Add kernel module parameter to enable/disable the p2p interface.
By default p2p interface is disabled.

https://jira.digi.com/browse/DEL-6503

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2019-03-19 18:15:42 +01:00
Gabriel Valcazar afae4f6bfd kernel-module-qualcomm: add a new udev rule to load the module on the cc8x
The module was being loaded by the default udev rules. With this new rule, the
module will be loaded with our custom qualcomm.sh script.

https://jira.digi.com/browse/DEL-6067

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2018-08-24 12:19:05 +02:00
Arturo Buzarra 314d4c82d6 meta-digi: fix scripts to remove undesired warning ignoring null bytes
Bash v4.4 or higher warns when discarding NULL bytes in command substitution
output. Remove these bytes to avoid the undesired warnings.

https://jira.digi.com/browse/DEL-5588

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2018-01-24 17:59:14 +01:00
Javier Viguera b421fb7995 qualcomm: generalize log function to pass the log level
We need to pass different log levels depending on the message, so they
appear in the console, so generalize the 'log' function.

https://jira.digi.com/browse/DEL-4682

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2017-07-27 14:05:29 +02:00
Arturo Buzarra 6f0b8a7356 kernel-module-qualcomm: reduce console log level to load wireless module
At the point this script is running from udev (the system log is not yet
available), so to avoid debug messages from qualcomm wireless module
reduce the console log level.

https://jira.digi.com/browse/DEL-4570

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2017-07-19 17:06:16 +02:00
Javier Viguera 6ffd69da82 kernel-module-qualcomm: use kernel log buffer for logging
At the point this script is run (from udev) the system log is not yet
available, so use the kernel log buffer instead.

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2017-07-07 17:02:45 +02:00
Javier Viguera a5ae6a5b3c kernel-module-qualcomm: create wlan virtual interface
Use the same udev script that loads the qualcomm wireless module to
create the 'wlan1' virtual interface.

https://jira.digi.com/browse/DEL-4453

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2017-07-07 17:02:45 +02:00
Javier Viguera 9329e5681b kernel-module-qualcomm: fix two udev rules managing qcom wireless driver
Udev comes with a bunch of generic rules for the hardware. One of them:

/lib/udev/rules.d/80-drivers.rules

is able to load the qualcomm wireless module.

At the same time our new rule is needed, so it prepares the firmware
before the module is loaded.

Both rules running collide with following error message:

udevd[181]: '/etc/udev/scripts/qualcomm.sh' [184] terminated by signal 1 (Hangup)

So to fix this, we rename the specific rule so it's parsed later, and
then we use the hard assignation '=' instead of '+=' to override the
values that come from the previous parsed rule.

Also clean-up a bit the 'qualcomm.sh' script and the modprobe file,
given that now we know the standard drivers rule won't run for this
interface.

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2017-07-07 17:02:45 +02:00
Mike Engel 27138c9838 kernel-module-qualcomm: let udev load wireless module
NetworkManager is not able to detect and manage the wireless interface
until is actually created, so let udev load the kernel module and create
the interface on boot.

Signed-off-by: Mike Engel <Mike.Engel@digi.com>
2017-07-07 17:02:45 +02:00
Alex Gonzalez 14a7d127f0 meta-digi-arm: Remove worldwide board data file.
https://jira.digi.com/browse/DEL-4291

Signed-off-by: Alex Gonzalez <alex.gonzalez@digi.com>
2017-06-21 12:30:08 +02:00
Diaz de Grenu, Jose f9acd0af7c kernel-module-qualcomm: remove patches
Since 30c253e108 the module is compiled from a repository which already
includes the patches, so we can remove them from DEY.

Signed-off-by: Diaz de Grenu, Jose <Jose.DiazdeGrenu@digi.com>
2017-05-22 17:47:41 +02:00
Pedro Perez de Heredia e7f590350c kernel-module-qualcomm: fix issue with _scan_callback at module unload
Protect the invocation of the _scan_done() callback function with the
global lock to avoid that it is called while the module is being unloaded
and the data structures have been freed.

Additionally, the commit also adds a patch to reduce the log level of the
driver that is logging some annoying messages.

https://jira.digi.com/browse/DEL-3607
https://jira.digi.com/browse/DEL-3393

Signed-off-by: Pedro Perez de Heredia <pedro.perez@digi.com>
2017-02-13 11:59:45 +01:00
Alex Gonzalez 98808b5938 kernel-module-qualcomm: Initialize auxiliary p2p0 interface at boot
Remove the commit that removes the p2p0 interface at boot. This interface
is the one used to establish p2p connections. Configuring the wlan0 command
for p2p does not work.

https://jira.digi.com/browse/DEL-3390

Signed-off-by: Alex Gonzalez <alex.gonzalez@digi.com>
2017-01-23 15:45:20 +01:00
Alex Gonzalez e55d83ba14 kernel-module-qualcomm: Bring the module up with the p2p0 interface too
The qualcomm wlan driver creates two interfaces at load time, wlan0 and
p2p0. Both of them should load the module if not already loaded.

Signed-off-by: Alex Gonzalez <alex.gonzalez@digi.com>
2017-01-23 15:45:20 +01:00
Alex Gonzalez 21209d4f36 meta-digi-arm: kernel-module-qualcomm: Pass BUILD_DEBUG_VERSION to kbuild.
Otherwise the module is built with debug as that is the Makefile's
default.

https://jira.digi.com/browse/DEL-3392

Signed-off-by: Alex Gonzalez <alex.gonzalez@digi.com>
2017-01-12 11:30:48 +01:00
Alex Gonzalez f5dac18ae5 meta-digi-arm: firmware-qualcomm: Match board file and UTF board file.
As discovered during certifications preparation work, calibration changes
applied only on the bdwlan30.bin file do not take effect.

Per QCA guidelines, the bdwlan30.bin and utfbd30.bin files should be the
same for the calibration changes to work.

This commit removes the current utfbd30.bin file, with an md5sum that
matches the original bdwlan30.bin file in QCA's chipcode
qca6564-le-1-0-3_qca_device repository, and creates a symbolic link to the
actual bdwlan30.bin board file used to certify Digi's module internal
antenna.

https://jira.digi.com/browse/DEL-3454

Signed-off-by: Alex Gonzalez <alex.gonzalez@digi.com>
2017-01-05 14:58:31 +01:00
Alex Gonzalez 9a5372bcc9 meta-digi-arm: kernel-module-qualcomm: Print connection mode.
Signed-off-by: Alex Gonzalez <alex.gonzalez@digi.com>
2016-12-15 13:39:10 +01:00
Alex Gonzalez dd7dcc597d meta-digi-arm:kernel-module-qualcomm:Pass disconnect event to upper layers.
https://jira.digi.com/browse/DEL-3365

Signed-off-by: Alex Gonzalez <alex.gonzalez@digi.com>
2016-12-12 17:36:40 +01:00
Isaac Hermida f8c901b376 kernel-module-qualcomm: fix concurrency and p2p support
Fix support for concurrency and some P2P modes by initializing the interface
with all the adapter completion variables.

https://jira.digi.com/browse/DEL-3072
https://jira.digi.com/browse/DEL-3037

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
2016-10-19 18:23:51 +02:00
Isaac Hermida fc959bd23f kernel-module-qualcomm: do not log any error if dtb regdomain is not set
Do not add a log error if there is not defined a device tree entry for the
regulatory domain.

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
2016-07-28 13:03:03 +02:00
Isaac Hermida 46c7508ee3 kernel-module-qualcomm: add support to override the region code
The region code is programmed in the OTP bits. We want to allow to be able to
override this behavior by setting the new value as a property in the device
tree called "regulatory-domain".
This can be done by setting the variable "regdomain=<code>" in uboot or well
by defining that entry in the device tree.

https://jira.digi.com/browse/DEL-2799

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
2016-07-21 18:32:07 +02:00