diff mbox series

[1/3] linux-firmware: split ath10k firmwares in separate packages

Message ID 20250120154605.3023068-1-marc.ferland@sonatest.com
State New
Headers show
Series [1/3] linux-firmware: split ath10k firmwares in separate packages | expand

Commit Message

Marc Ferland Jan. 20, 2025, 3:46 p.m. UTC
From: Marc Ferland <marc.ferland@sonatest.com>

This patch introduces the following packages for ath10k based chips:

- linux-firmware-ath10k-qca4019
- linux-firmware-ath10k-qca6174
- linux-firmware-ath10k-qca9377
- linux-firmware-ath10k-qca9887
- linux-firmware-ath10k-qca9888
- linux-firmware-ath10k-qca988x
- linux-firmware-ath10k-qca9984
- linux-firmware-ath10k-qca99x0
- linux-firmware-ath10k-misc: catches all firmwares that are not
  already included in the other -ath10k- packages (currently empty).

linux-firmware-ath10k is now a meta package that depends on all of the
split-out ath10k packages.

Signed-off-by: Marc Ferland <marc.ferland@sonatest.com>
---
 .../linux-firmware/linux-firmware_20241210.bb | 56 ++++++++++++++++---
 1 file changed, 48 insertions(+), 8 deletions(-)
diff mbox series

Patch

diff --git a/meta/recipes-kernel/linux-firmware/linux-firmware_20241210.bb b/meta/recipes-kernel/linux-firmware/linux-firmware_20241210.bb
index d3757b5bbc..7b53712cbe 100644
--- a/meta/recipes-kernel/linux-firmware/linux-firmware_20241210.bb
+++ b/meta/recipes-kernel/linux-firmware/linux-firmware_20241210.bb
@@ -343,7 +343,17 @@  PACKAGES =+ "${PN}-amphion-vpu-license ${PN}-amphion-vpu \
              ${PN}-carl9170 \
              ${PN}-qcom-qcm2290-wifi ${PN}-qcom-qrb4210-wifi ${PN}-qcom-sdm845-modem \
              ${PN}-ar3k-license ${PN}-ar3k \
-             ${PN}-ath10k-license ${PN}-ath10k-wcn3990 ${PN}-ath10k \
+             ${PN}-ath10k-license ${PN}-ath10k \
+             ${PN}-ath10k-qca4019 \
+             ${PN}-ath10k-qca6174 \
+             ${PN}-ath10k-qca9377 \
+             ${PN}-ath10k-qca9887 \
+             ${PN}-ath10k-qca9888 \
+             ${PN}-ath10k-qca988x \
+             ${PN}-ath10k-qca9984 \
+             ${PN}-ath10k-qca99x0 \
+             ${PN}-ath10k-wcn3990 \
+             ${PN}-ath10k-misc \
              ${PN}-ath11k ${PN}-ath12k ${PN}-qca \
              \
              ${PN}-imx-sdma-license ${PN}-imx-sdma-imx6q ${PN}-imx-sdma-imx7d \
@@ -505,7 +515,16 @@  LICENSE:${PN}-carl9170 = "GPL-2.0-or-later"
 LICENSE:${PN}-ar3k = "Firmware-qualcommAthos_ar3k & Firmware-atheros_firmware"
 LICENSE:${PN}-ar3k-license = "Firmware-qualcommAthos_ar3k"
 LICENSE:${PN}-ath10k = "Firmware-qualcommAthos_ath10k"
+LICENSE:${PN}-ath10k-qca4019 = "Firmware-qualcommAthos_ath10k"
+LICENSE:${PN}-ath10k-qca6174 = "Firmware-qualcommAthos_ath10k"
+LICENSE:${PN}-ath10k-qca9377 = "Firmware-qualcommAthos_ath10k"
+LICENSE:${PN}-ath10k-qca9887 = "Firmware-qualcommAthos_ath10k"
+LICENSE:${PN}-ath10k-qca9888 = "Firmware-qualcommAthos_ath10k"
+LICENSE:${PN}-ath10k-qca988x = "Firmware-qualcommAthos_ath10k"
+LICENSE:${PN}-ath10k-qca9984 = "Firmware-qualcommAthos_ath10k"
+LICENSE:${PN}-ath10k-qca99x0 = "Firmware-qualcommAthos_ath10k"
 LICENSE:${PN}-ath10k-wcn3990 = "Firmware-qualcommAthos_ath10k"
+LICENSE:${PN}-ath10k-misc    = "Firmware-qualcommAthos_ath10k"
 LICENSE:${PN}-ath10k-license = "Firmware-qualcommAthos_ath10k"
 LICENSE:${PN}-qca = "Firmware-qualcommAthos_ath10k"
 
@@ -515,12 +534,21 @@  FILES:${PN}-ar3k = " \
 "
 
 FILES:${PN}-ath10k-license = "${nonarch_base_libdir}/firmware/LICENSE.QualcommAtheros_ath10k"
-FILES:${PN}-ath10k = " \
-  ${nonarch_base_libdir}/firmware/ath10k \
-"
-FILES:${PN}-ath10k-wcn3990 = " \
-  ${nonarch_base_libdir}/firmware/ath10k/WCN3990 \
-"
+FILES:${PN}-ath10k-qca4019 = "${nonarch_base_libdir}/firmware/ath10k/QCA4019"
+FILES:${PN}-ath10k-qca6174 = "${nonarch_base_libdir}/firmware/ath10k/QCA6174"
+FILES:${PN}-ath10k-qca9377 = "${nonarch_base_libdir}/firmware/ath10k/QCA9377"
+FILES:${PN}-ath10k-qca9887 = "${nonarch_base_libdir}/firmware/ath10k/QCA9887"
+FILES:${PN}-ath10k-qca9888 = "${nonarch_base_libdir}/firmware/ath10k/QCA9888"
+FILES:${PN}-ath10k-qca988x = "${nonarch_base_libdir}/firmware/ath10k/QCA988X"
+FILES:${PN}-ath10k-qca9984 = "${nonarch_base_libdir}/firmware/ath10k/QCA9984"
+FILES:${PN}-ath10k-qca99x0 = "${nonarch_base_libdir}/firmware/ath10k/QCA99X0"
+FILES:${PN}-ath10k-wcn3990 = "${nonarch_base_libdir}/firmware/ath10k/WCN3990"
+FILES:${PN}-ath10k-misc = "${nonarch_base_libdir}/firmware/ath10k/*"
+# -ath10k is a virtual package that depends upon all ath10k packages.
+ALLOW_EMPTY:${PN}-ath10k = "1"
+# -ath10k-misc is a catch all package that includes all the ath10k
+# firmwares that are not already included in other -ath10k- packages.
+ALLOW_EMPTY:${PN}-ath10k-misc = "1"
 
 FILES:${PN}-ath11k = " \
   ${nonarch_base_libdir}/firmware/ath11k \
@@ -536,8 +564,16 @@  FILES:${PN}-qca = " \
 
 RDEPENDS:${PN}-ar3k += "${PN}-ar3k-license ${PN}-atheros-license"
 RDEPENDS:${PN}-ath10k += "${PN}-ath10k-license"
-RDEPENDS:${PN}-ath10k += "${PN}-ath10k-wcn3990"
+RDEPENDS:${PN}-ath10k-qca4019 += "${PN}-ath10k-license"
+RDEPENDS:${PN}-ath10k-qca6174 += "${PN}-ath10k-license"
+RDEPENDS:${PN}-ath10k-qca9377 += "${PN}-ath10k-license"
+RDEPENDS:${PN}-ath10k-qca9887 += "${PN}-ath10k-license"
+RDEPENDS:${PN}-ath10k-qca9888 += "${PN}-ath10k-license"
+RDEPENDS:${PN}-ath10k-qca988x += "${PN}-ath10k-license"
+RDEPENDS:${PN}-ath10k-qca9984 += "${PN}-ath10k-license"
+RDEPENDS:${PN}-ath10k-qca99x0 += "${PN}-ath10k-license"
 RDEPENDS:${PN}-ath10k-wcn3990 += "${PN}-ath10k-license"
+RDEPENDS:${PN}-ath10k-misc += "${PN}-ath10k-license"
 RDEPENDS:${PN}-ath11k += "${PN}-ath10k-license"
 RDEPENDS:${PN}-ath12k += "${PN}-ath10k-license"
 RDEPENDS:${PN}-qca += "${PN}-ath10k-license"
@@ -1694,6 +1730,7 @@  RDEPENDS:${PN} += "${PN}-whence-license"
 # Make linux-firmware depend on all of the split-out packages.
 # Make linux-firmware-iwlwifi depend on all of the split-out iwlwifi packages.
 # Make linux-firmware-ibt depend on all of the split-out ibt packages.
+# Make linux-firmware-ath10k depend on all of the split-out ath10k packages.
 python populate_packages:prepend () {
     firmware_pkgs = oe.utils.packages_filter_out_system(d)
     d.appendVar('RRECOMMENDS:linux-firmware', ' ' + ' '.join(firmware_pkgs))
@@ -1703,6 +1740,9 @@  python populate_packages:prepend () {
 
     ibt_pkgs = filter(lambda x: x.find('-ibt-') != -1, firmware_pkgs)
     d.appendVar('RRECOMMENDS:linux-firmware-ibt', ' ' + ' '.join(ibt_pkgs))
+
+    ath10k_pkgs = filter(lambda x: x.find('-ath10k-') != -1, firmware_pkgs)
+    d.appendVar('RRECOMMENDS:linux-firmware-ath10k', ' ' + ' '.join(ath10k_pkgs))
 }
 
 # Firmware files are generally not ran on the CPU, so they can be