From e35b61b68c53700a48355f5c318ff4f525a4a1bd Mon Sep 17 00:00:00 2001 From: Daniel Barlow Date: Sat, 25 Nov 2023 18:39:15 +0000 Subject: [PATCH] mac80211: support ath9k pci variant if you ask for "ath9k" you get AHB, but if you ask for "atk9k_pci" now you get PCI. Note that the kernel module name is the same in both cases. --- pkgs/mac80211/default.nix | 36 ++++++++++++++++++++++-------------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/pkgs/mac80211/default.nix b/pkgs/mac80211/default.nix index e03d0bc..30e1d01 100644 --- a/pkgs/mac80211/default.nix +++ b/pkgs/mac80211/default.nix @@ -25,47 +25,52 @@ let inherit (liminix.services) oneshot longrun; inherit (lib.lists) foldl; configs = { - ath9k = { + ath9k.kconfig = { WLAN_VENDOR_ATH = "y"; ATH_COMMON = "m"; ATH9K = "m"; ATH9K_AHB = "y"; - # ATH9K_DEBUGFS = "y"; - # ATH_DEBUG = "y"; BACKPORTED_ATH9K_AHB = "y"; }; - ath10k_pci = { + ath9k_pci = { + module = "ath9k"; + kconfig = { + WLAN_VENDOR_ATH = "y"; + ATH_COMMON = "m"; + ATH9K = "m"; + ATH9K_PCI = "y"; + }; + }; + ath10k_pci.kconfig = { WLAN_VENDOR_ATH = "y"; ATH_COMMON = "m"; ATH10K = "m"; - # BACKPORTED_ATH10K_AHB = "y"; - # ATH10K_AHB = "y"; ATH10K_PCI = "y"; ATH10K_DEBUG = "y"; }; - rt2800soc = { + rt2800soc.kconfig = { WLAN_VENDOR_RALINK = "y"; RT2800SOC = "m"; RT2X00 = "m"; }; - mt7603e = { # XXX find a better name for this + mt7603e.kconfig = { # XXX find a better name for this WLAN_VENDOR_RALINK = "y"; WLAN_VENDOR_MEDIATEK = "y"; MT7603E = "y"; }; - mt7915e = { + mt7915e.kconfig = { MT7915E = "m"; }; - mt7615e = { + mt7615e.kconfig = { MT7615E = "m"; MT7622_WMAC = "y"; }; - mac80211_hwsim = { + mac80211_hwsim.kconfig = { MAC80211_HWSIM = "y"; }; }; - kconfig = (foldl (config: d: (config // configs.${d})) { + kconfig = (foldl (config: d: (config // configs.${d}.kconfig)) { WLAN = "y"; CFG80211 = "m"; MAC80211 = "m"; @@ -82,7 +87,6 @@ let CFG80211_CRDA_SUPPORT = "n"; MAC80211_MESH = "y"; - } drivers) // extraConfig; writeConfig = name : config: writeText name @@ -162,7 +166,11 @@ let find . -name \*.ko | cpio --make-directories -p $out/lib/modules/0.0 depmod -b $out -v 0.0 touch $out/load.sh - for i in ${lib.concatStringsSep " " drivers}; do + for i in ${lib.concatStringsSep " " + (map + (d: let c = { module = d; } // configs.${d} ; + in c.module) + drivers)}; do modprobe -S 0.0 -d $out --show-depends $i >> $out/load.sh done tac < $out/load.sh | sed 's/^insmod/rmmod/g' > $out/unload.sh