diff --git a/sources/kernel-cachyos-bore/kernel-cachyos-lto.spec b/sources/kernel-cachyos-bore/kernel-cachyos-lto.spec index 9b8a45e..4fd4a80 100644 --- a/sources/kernel-cachyos-bore/kernel-cachyos-lto.spec +++ b/sources/kernel-cachyos-bore/kernel-cachyos-lto.spec @@ -84,6 +84,7 @@ Patch2: https://raw.githubusercontent.com/CachyOS/kernel-patches/master/%{_basek Patch3: %{_nvidia_patchurl}/0001-Make-modeset-and-fbdev-default-enabled-560.patch Patch4: %{_nvidia_patchurl}/0008-silence-event-assert-until-570.patch Patch8: https://raw.githubusercontent.com/CachyOS/kernel-patches/cd01e95a773a5da2e26ceaf5246a514091aa0d6f/6.12/misc/nvidia/0007-6.12-replace-pageswapcache.patch +Patch9: %{_nvidia_patchurl}/0010-6.12-drm_output_poll-changed-check.patch %else Patch3: %{_nvidia_patchurl}/0001-Make-modeset-and-fbdev-default-enabled.patch Patch4: %{_nvidia_patchurl}/0004-silence-event-assert-until-570.patch @@ -304,9 +305,10 @@ patch -p1 -i %{PATCH5} -d %{_builddir}/%{_nv_open_pkg}/ # Patches for Nvidia on kernel 6.12 patch -p1 -i %{PATCH6} -d %{_builddir}/%{_nv_open_pkg}/ patch -p1 -i %{PATCH7} -d %{_builddir}/%{_nv_open_pkg}/ -# Apply patch to 560, which fixes build error on Linux 6.12 +# Apply patches to 560, which fix build error on Linux 6.12 %if "%{_nv_ver}" == "560.35.03" patch -p1 -i %{PATCH8} -d %{_builddir}/%{_nv_open_pkg}/ +patch -p1 -i %{PATCH9} -d %{_builddir}/%{_nv_open_pkg}/ %endif # Fetch the config and move it to the proper directory diff --git a/sources/kernel-cachyos-bore/kernel-cachyos.spec b/sources/kernel-cachyos-bore/kernel-cachyos.spec index 30a4d90..9b5ff2e 100644 --- a/sources/kernel-cachyos-bore/kernel-cachyos.spec +++ b/sources/kernel-cachyos-bore/kernel-cachyos.spec @@ -23,7 +23,7 @@ %endif # define git branch to make testing easier without merging to master branch -%define _git_branch master +%define _git_branch 6.12 # whether to build kernel with llvm compiler(clang) %define llvm_kbuild 0 @@ -84,6 +84,7 @@ Patch2: https://raw.githubusercontent.com/CachyOS/kernel-patches/master/%{_basek Patch3: %{_nvidia_patchurl}/0001-Make-modeset-and-fbdev-default-enabled-560.patch Patch4: %{_nvidia_patchurl}/0008-silence-event-assert-until-570.patch Patch8: https://raw.githubusercontent.com/CachyOS/kernel-patches/cd01e95a773a5da2e26ceaf5246a514091aa0d6f/6.12/misc/nvidia/0007-6.12-replace-pageswapcache.patch +Patch9: %{_nvidia_patchurl}/0010-6.12-drm_output_poll-changed-check.patch %else Patch3: %{_nvidia_patchurl}/0001-Make-modeset-and-fbdev-default-enabled.patch Patch4: %{_nvidia_patchurl}/0004-silence-event-assert-until-570.patch @@ -304,9 +305,10 @@ patch -p1 -i %{PATCH5} -d %{_builddir}/%{_nv_open_pkg}/ # Patches for Nvidia on kernel 6.12 patch -p1 -i %{PATCH6} -d %{_builddir}/%{_nv_open_pkg}/ patch -p1 -i %{PATCH7} -d %{_builddir}/%{_nv_open_pkg}/ -# Apply patch to 560, which fixes build error on Linux 6.12 +# Apply patches to 560, which fix build error on Linux 6.12 %if "%{_nv_ver}" == "560.35.03" patch -p1 -i %{PATCH8} -d %{_builddir}/%{_nv_open_pkg}/ +patch -p1 -i %{PATCH9} -d %{_builddir}/%{_nv_open_pkg}/ %endif diff --git a/sources/kernel-patches/nvidia/0010-6.12-drm_output_poll-changed-check.patch b/sources/kernel-patches/nvidia/0010-6.12-drm_output_poll-changed-check.patch new file mode 100644 index 0000000..c56d86b --- /dev/null +++ b/sources/kernel-patches/nvidia/0010-6.12-drm_output_poll-changed-check.patch @@ -0,0 +1,86 @@ +From 94ad29389cd5129401adea6925f987f4529abb1c Mon Sep 17 00:00:00 2001 +From: Peter Jung +Date: Thu, 26 Sep 2024 14:53:31 +0200 +Subject: [PATCH 5/5] 6.12: drm_outpull_pill changed check + +--- + kernel-open/conftest.sh | 23 ++++++++++++++++++++ + kernel-open/nvidia-drm/nvidia-drm-drv.c | 4 ++++ + kernel-open/nvidia-drm/nvidia-drm-sources.mk | 1 + + 3 files changed, 28 insertions(+) + +diff --git a/kernel-open/conftest.sh b/kernel-open/conftest.sh +index 4a239e63..4d6fff64 100755 +--- a/kernel-open/conftest.sh ++++ b/kernel-open/conftest.sh +@@ -6631,6 +6631,29 @@ compile_test() { + compile_check_conftest "$CODE" "NV_DRM_FBDEV_TTM_SETUP_PRESENT" "" "functions" + ;; + ++ drm_output_poll_changed) ++ # ++ # Determine whether drm_mode_config_funcs.output_poll_changed ++ # callback is present ++ # ++ # Removed by commit 446d0f4849b1 ("drm: Remove struct ++ # drm_mode_config_funcs.output_poll_changed") in v6.12. Hotplug ++ # event support is handled through the fbdev emulation interface ++ # going forward. ++ # ++ CODE=" ++ #if defined(NV_DRM_DRM_MODE_CONFIG_H_PRESENT) ++ #include ++ #else ++ #include ++ #endif ++ int conftest_drm_output_poll_changed_available(void) { ++ return offsetof(struct drm_mode_config_funcs, output_poll_changed); ++ }" ++ ++ compile_check_conftest "$CODE" "NV_DRM_OUTPUT_POLL_CHANGED_PRESENT" "" "types" ++ ;; ++ + drm_aperture_remove_conflicting_pci_framebuffers) + # + # Determine whether drm_aperture_remove_conflicting_pci_framebuffers is present. +diff --git a/kernel-open/nvidia-drm/nvidia-drm-drv.c b/kernel-open/nvidia-drm/nvidia-drm-drv.c +index 50028c26..034dda66 100644 +--- a/kernel-open/nvidia-drm/nvidia-drm-drv.c ++++ b/kernel-open/nvidia-drm/nvidia-drm-drv.c +@@ -126,6 +126,7 @@ static const char* nv_get_input_colorspace_name( + + #if defined(NV_DRM_ATOMIC_MODESET_AVAILABLE) + ++#if defined(NV_DRM_OUTPUT_POLL_CHANGED_PRESENT) + static void nv_drm_output_poll_changed(struct drm_device *dev) + { + struct drm_connector *connector = NULL; +@@ -169,6 +170,7 @@ static void nv_drm_output_poll_changed(struct drm_device *dev) + nv_drm_connector_list_iter_end(&conn_iter); + #endif + } ++#endif /* NV_DRM_OUTPUT_POLL_CHANGED_PRESENT */ + + static struct drm_framebuffer *nv_drm_framebuffer_create( + struct drm_device *dev, +@@ -206,7 +208,9 @@ static const struct drm_mode_config_funcs nv_mode_config_funcs = { + .atomic_check = nv_drm_atomic_check, + .atomic_commit = nv_drm_atomic_commit, + ++ #if defined(NV_DRM_OUTPUT_POLL_CHANGED_PRESENT) + .output_poll_changed = nv_drm_output_poll_changed, ++ #endif + }; + + static void nv_drm_event_callback(const struct NvKmsKapiEvent *event) +diff --git a/kernel-open/nvidia-drm/nvidia-drm-sources.mk b/kernel-open/nvidia-drm/nvidia-drm-sources.mk +index 247096b7..f5964a57 100644 +--- a/kernel-open/nvidia-drm/nvidia-drm-sources.mk ++++ b/kernel-open/nvidia-drm/nvidia-drm-sources.mk +@@ -131,3 +131,4 @@ NV_CONFTEST_TYPE_COMPILE_TESTS += drm_aperture_remove_conflicting_pci_framebuffe + NV_CONFTEST_TYPE_COMPILE_TESTS += drm_mode_create_dp_colorspace_property_has_supported_colorspaces_arg + NV_CONFTEST_TYPE_COMPILE_TESTS += drm_syncobj_features_present + NV_CONFTEST_TYPE_COMPILE_TESTS += drm_unlocked_ioctl_flag_present ++NV_CONFTEST_TYPE_COMPILE_TESTS += drm_output_poll_changed +-- +2.46.2