diff options
Diffstat (limited to 'modules/nixos-hardware/microsoft/surface/kernel/linux-5.10.2/default.nix')
-rw-r--r-- | modules/nixos-hardware/microsoft/surface/kernel/linux-5.10.2/default.nix | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/modules/nixos-hardware/microsoft/surface/kernel/linux-5.10.2/default.nix b/modules/nixos-hardware/microsoft/surface/kernel/linux-5.10.2/default.nix new file mode 100644 index 000000000000..d4f6eb4eb9d8 --- /dev/null +++ b/modules/nixos-hardware/microsoft/surface/kernel/linux-5.10.2/default.nix @@ -0,0 +1,112 @@ +{ config, lib, pkgs, ... }: +let + repos = (pkgs.callPackage ../../repos.nix {}); + # TODO: Can I append the path ./patches instead of a string? + patches = repos.linux-surface + "/patches"; + surface_kernelPatches = [ + { name = "microsoft-surface-patches-linux-5.10.2"; + patch = null; + extraConfig = '' + # + # Surface Aggregator Module + # + SURFACE_AGGREGATOR m + SURFACE_AGGREGATOR_ERROR_INJECTION n + SURFACE_AGGREGATOR_BUS y + SURFACE_AGGREGATOR_CDEV m + SURFACE_AGGREGATOR_REGISTRY m + SURFACE_ACPI_NOTIFY m + SURFACE_BATTERY m + SURFACE_DTX m + SURFACE_HID m + SURFACE_PERFMODE m + + # + # These built-in modules are required for the Surface Aggregator Module + # See: https://github.com/linux-surface/surface-aggregator-module/wiki/Testing-and-Installing + # + SERIAL_DEV_BUS y + SERIAL_DEV_CTRL_TTYPORT y + + # + # Surface Hotplug + # + SURFACE_HOTPLUG m + + # + # IPTS touchscreen + # + # This only enables the user interface for IPTS data. + # For the touchscreen to work, you need to install iptsd. + # + MISC_IPTS m + + # + # Cameras: IPU3 + # + ## TODO: Fix for kernel 5.10.2: + ##VIDEO_IPU3_IMGU m + VIDEO_IPU3_CIO2 m + CIO2_BRIDGE y + INT3472 m + + # + # Cameras: Sensor drivers + # + VIDEO_OV5693 m + ## TODO: Fix for kernel 5.10.2: + ##VIDEO_OV8865 m + + # + # Other Drivers + # + INPUT_SOC_BUTTON_ARRAY m + SURFACE_3_BUTTON m + SURFACE_3_POWER_OPREGION m + SURFACE_PRO3_BUTTON m + SURFACE_GPE m + SURFACE_BOOK1_DGPU_SWITCH m + ''; + } + { + name = "ms-surface/0001-surface3-oemb"; + patch = patches + "/5.10/0001-surface3-oemb.patch"; + } + { + name = "ms-surface/0002-wifi"; + patch = patches + "/5.10/0002-wifi.patch"; + } + { + name = "ms-surface/0003-ipts"; + patch = patches + "/5.10/0003-ipts.patch"; + } + { + name = "ms-surface/0004-surface-gpe"; + patch = patches + "/5.10/0004-surface-gpe.patch"; + } + { + name = "ms-surface/0005-surface-sam-over-hid"; + patch = patches + "/5.10/0005-surface-sam-over-hid.patch"; + } + { + name = "ms-surface/0006-surface-sam"; + patch = patches + "/5.10/0006-surface-sam.patch"; + } + { + name = "ms-surface/0007-surface-hotplug"; + patch = patches + "/5.10/0007-surface-hotplug.patch"; + } + { + name = "ms-surface/0008-surface-typecover"; + patch = patches + "/5.10/0008-surface-typecover.patch"; + } + { + name = "ms-surface/0009-cameras"; + patch = patches + "/5.10/0009-cameras.patch"; + } + ]; +in (with pkgs; recurseIntoAttrs (linuxPackagesFor ( + callPackage ./linux-5.10.2.nix { + kernelPatches = surface_kernelPatches; + } + ))) |