|
| 1 | +{ |
| 2 | + lib, |
| 3 | + callPackage, |
| 4 | + linuxPackagesFor, |
| 5 | + kernelPatches, |
| 6 | + fetchFromGitLab, |
| 7 | + ... |
| 8 | +}: |
| 9 | +let |
| 10 | + modDirVersion = "6.16.5"; |
| 11 | + reformDebianPackages = fetchFromGitLab { |
| 12 | + domain = "source.mnt.re"; |
| 13 | + owner = "reform"; |
| 14 | + repo = "reform-debian-packages"; |
| 15 | + rev = "830c94db42beef876dc58ea56711659ae7bd415d"; |
| 16 | + hash = "sha256-mdORgTOM7RJnEjY5G/iWMHf69wQkql11yRpQ/DrQKb4="; |
| 17 | + }; |
| 18 | + linuxPkg = |
| 19 | + { |
| 20 | + lib, |
| 21 | + fetchzip, |
| 22 | + buildLinux, |
| 23 | + callPackage, |
| 24 | + ... |
| 25 | + }@args: |
| 26 | + buildLinux ( |
| 27 | + args |
| 28 | + // rec { |
| 29 | + version = "${modDirVersion}-mnt-reform"; |
| 30 | + inherit modDirVersion; |
| 31 | + |
| 32 | + src = fetchzip { |
| 33 | + url = "mirror://kernel/linux/kernel/v${lib.versions.major modDirVersion}.x/linux-${modDirVersion}.tar.xz"; |
| 34 | + hash = "sha256-XiTuH40b3VJqzwygZzU0FcvMDj41Rq6IsMbm+3+QxDY="; |
| 35 | + }; |
| 36 | + |
| 37 | + kernelPatches = |
| 38 | + (map (patch: { inherit patch; }) ( |
| 39 | + lib.filesystem.listFilesRecursive "${reformDebianPackages}/linux/patches${lib.versions.majorMinor modDirVersion}" |
| 40 | + )) |
| 41 | + ++ [ |
| 42 | + { |
| 43 | + patch = callPackage ./dtsPatch.nix { |
| 44 | + inherit reformDebianPackages; |
| 45 | + kernelSource = src; |
| 46 | + }; |
| 47 | + } |
| 48 | + ]; |
| 49 | + |
| 50 | + structuredExtraConfig = with lib.kernel; { |
| 51 | + # configuration options from https://source.mnt.re/reform/reform-debian-packages/-/blob/7f31ba3a6742d60d8d502c1d86e63ef5df3916bf/linux/config |
| 52 | + DRM_LVDS_CODEC = module; |
| 53 | + DRM_CDNS_MHDP8546 = module; |
| 54 | + DRM_CDNS_HDMI_CEC = module; |
| 55 | + DRM_IMX_CDNS_MHDP = module; |
| 56 | + DRM_IMX_DCSS = module; |
| 57 | + # PHY_FSL_IMX8MQ_HDPTX = module; # configuration option does not exist |
| 58 | + DRM_PANEL_LVDS = module; |
| 59 | + I2C_IMX_LPI2C = module; |
| 60 | + I2C_MUX_REG = module; |
| 61 | + INTERCONNECT_IMX = yes; |
| 62 | + INTERCONNECT_IMX8MQ = yes; |
| 63 | + MFD_WM8994 = module; |
| 64 | + MUX_GPIO = module; |
| 65 | + MUX_MMIO = module; |
| 66 | + RTC_DRV_PCF8523 = module; |
| 67 | + USB_EHCI_FSL = module; |
| 68 | + # NO_HZ_IDLE = yes; # conflicts with NO_HZ_FULL |
| 69 | + SND_SOC_FSL_MICFIL = module; |
| 70 | + SND_IMX_SOC = module; |
| 71 | + SND_SOC_FSL_ASOC_CARD = module; |
| 72 | + SND_SOC_IMX_AUDMIX = module; |
| 73 | + SND_SOC_IMX_HDMI = module; |
| 74 | + INPUT_JOYSTICK = yes; |
| 75 | + JOYSTICK_XPAD = module; |
| 76 | + JOYSTICK_XPAD_FF = yes; |
| 77 | + JOYSTICK_XPAD_LEDS = yes; |
| 78 | + |
| 79 | + INTERCONNECT_IMX8MP = yes; |
| 80 | + SND_SOC_FSL_ASRC = yes; |
| 81 | + DRM_IMX_LCDIF = yes; |
| 82 | + DRM_IMX8MP_DW_HDMI_BRIDGE = yes; |
| 83 | + DRM_IMX8MP_HDMI_PVI = yes; |
| 84 | + IMX8MM_THERMAL = yes; |
| 85 | + IMX2_WDT = yes; |
| 86 | + DRM_SAMSUNG_DSIM = yes; |
| 87 | + PHY_FSL_SAMSUNG_HDMI_PHY = yes; |
| 88 | + DRM = yes; |
| 89 | + DRM_PANEL_MNT_POCKET_REFORM = module; |
| 90 | + IMX8M_BLK_CTRL = yes; |
| 91 | + IMX_GPCV2_PM_DOMAINS = yes; |
| 92 | + DRM_DISPLAY_CONNECTOR = yes; |
| 93 | + DRM_FSL_LDB = yes; |
| 94 | + BACKLIGHT_CLASS_DEVICE = yes; |
| 95 | + BACKLIGHT_PWM = yes; |
| 96 | + BACKLIGHT_GPIO = yes; |
| 97 | + BACKLIGHT_LED = yes; |
| 98 | + CPU_FREQ_GOV_PERFORMANCE = yes; |
| 99 | + CPU_FREQ_GOV_POWERSAVE = yes; |
| 100 | + CPU_FREQ_GOV_USERSPACE = yes; |
| 101 | + CPU_FREQ_GOV_ONDEMAND = yes; |
| 102 | + CPU_FREQ_GOV_CONSERVATIVE = yes; |
| 103 | + CPU_FREQ_GOV_SCHEDUTIL = yes; |
| 104 | + ARM_IMX_CPUFREQ_DT = yes; |
| 105 | + ARM_IMX_BUS_DEVFREQ = yes; |
| 106 | + IMX_IRQSTEER = yes; |
| 107 | + |
| 108 | + PCI_MESON = yes; |
| 109 | + DWMAC_MESON = module; |
| 110 | + MDIO_BUS_MUX_MESON_G12A = yes; |
| 111 | + I2C_MESON = yes; |
| 112 | + PWM_MESON = yes; |
| 113 | + USB_DWC3_MESON_G12A = yes; |
| 114 | + MMC_MESON_GX = yes; |
| 115 | + MMC_MESON_MX_SDIO = yes; |
| 116 | + MESON_DDR_PMU = yes; |
| 117 | + RTW88_8822CS = module; |
| 118 | + |
| 119 | + PWM_FSL_FTM = yes; |
| 120 | + FSL_RCPM = yes; |
| 121 | + |
| 122 | + ARCH_ROCKCHIP = yes; |
| 123 | + # ARM_ROCKCHIP_CPUFREQ = module; # configuration option does not exist |
| 124 | + DRM_PANTHOR = module; |
| 125 | + NVMEM_ROCKCHIP_OTP = yes; |
| 126 | + PHY_ROCKCHIP_SAMSUNG_HDPTX = module; |
| 127 | + PHY_ROCKCHIP_USBDP = module; |
| 128 | + REGULATOR = yes; |
| 129 | + # ROCKCHIP_REGULATOR_COUPLER = yes; # configuration option does not exist |
| 130 | + SPI_ROCKCHIP = yes; |
| 131 | + SPI_ROCKCHIP_SFC = module; |
| 132 | + ARM_SCMI_CPUFREQ = module; |
| 133 | + VIDEO_ROCKCHIP_VDEC2 = module; |
| 134 | + ROCKCHIP_DW_HDMI_QP = yes; |
| 135 | + ROCKCHIP_DW_MIPI_DSI2 = yes; |
| 136 | + PHY_ROCKCHIP_SAMSUNG_DCPHY = yes; |
| 137 | + REGULATOR_FIXED_VOLTAGE = yes; |
| 138 | + GPIO_ROCKCHIP = yes; |
| 139 | + PL330_DMA = yes; |
| 140 | + |
| 141 | + DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW = no; # patches for 6.16 break this driver |
| 142 | + }; |
| 143 | + } |
| 144 | + // (args.argsOverride or { }) |
| 145 | + ); |
| 146 | + |
| 147 | +in |
| 148 | +lib.recurseIntoAttrs (linuxPackagesFor (callPackage linuxPkg { })) |
0 commit comments