2021-02-23 00:40:08 +01:00
|
|
|
{ config, lib, pkgs, ... }:
|
2022-12-05 04:01:37 +01:00
|
|
|
|
2021-02-23 00:40:08 +01:00
|
|
|
let
|
2022-12-05 04:01:37 +01:00
|
|
|
inherit (lib) mkDefault mkEnableOption mkIf;
|
|
|
|
|
2021-02-23 00:40:08 +01:00
|
|
|
cfg = config.hardware.microsoft-surface.firmware.surface-go-ath10k;
|
2022-12-05 04:01:37 +01:00
|
|
|
|
|
|
|
in {
|
2021-02-23 00:40:08 +01:00
|
|
|
options = {
|
|
|
|
hardware.microsoft-surface.firmware.surface-go-ath10k = {
|
2022-12-05 04:01:37 +01:00
|
|
|
replace = mkEnableOption ''Use the "board.bin" firmware for ath10k-based WiFi on Surface Go.'';
|
2021-02-23 00:40:08 +01:00
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2022-12-05 04:01:37 +01:00
|
|
|
config = mkIf cfg.replace {
|
2024-10-19 03:48:33 +02:00
|
|
|
warnings = [''A working version of the ath10k QCA6174 firmware has been added to the kernel.org linux-firmware
|
|
|
|
repo, making this fix obsolete.
|
|
|
|
See:
|
|
|
|
- https://github.com/linux-surface/linux-surface/issues/542#issuecomment-976995453
|
|
|
|
- https://github.com/linux-surface/linux-surface/wiki/Surface-Go#wi-fi-firmware
|
|
|
|
|
|
|
|
NOTE: This module option will probably be removed in the near future.
|
|
|
|
''];
|
|
|
|
|
2021-02-23 00:40:08 +01:00
|
|
|
hardware.enableAllFirmware = true;
|
|
|
|
hardware.firmware = [
|
2021-03-06 03:29:13 +01:00
|
|
|
(pkgs.callPackage ./ath10k-replace.nix {})
|
2021-02-23 00:40:08 +01:00
|
|
|
];
|
2021-02-23 05:59:34 +01:00
|
|
|
|
2022-12-05 04:01:37 +01:00
|
|
|
boot.extraModprobeConfig = mkDefault ''
|
2021-02-23 05:59:34 +01:00
|
|
|
options ath10k_core skip_otp=Y
|
|
|
|
'';
|
2021-02-23 00:40:08 +01:00
|
|
|
};
|
|
|
|
}
|