lib.packagesFromDirectoryRecursive: Improved documentation (#359898)
[NixPkgs.git] / nixos / modules / hardware / network / ath-user-regd.nix
blob4cd3fb69604bd2ff3afa0e0dcabcd8305ef8fbab
1 { config, lib, pkgs, ... }:
2 let
3   kernelVersion = config.boot.kernelPackages.kernel.version;
4   linuxKernelMinVersion = "5.8";
5   kernelPatch = pkgs.kernelPatches.ath_regd_optional // {
6     extraConfig = ''
7       ATH_USER_REGD y
8     '';
9   };
12   options.networking.wireless.athUserRegulatoryDomain = lib.mkOption {
13     default = false;
14     type = lib.types.bool;
15     description = ''
16       If enabled, sets the ATH_USER_REGD kernel config switch to true to
17       disable the enforcement of EEPROM regulatory restrictions for ath
18       drivers. Requires at least Linux ${linuxKernelMinVersion}.
19     '';
20   };
22   config = lib.mkIf config.networking.wireless.athUserRegulatoryDomain {
23     assertions = lib.singleton {
24       assertion = lib.lessThan 0 (builtins.compareVersions kernelVersion linuxKernelMinVersion);
25       message = "ATH_USER_REGD patch for kernels older than ${linuxKernelMinVersion} not ported yet!";
26     };
27     boot.kernelPatches = [ kernelPatch ];
28   };