Skip to content

Commit

Permalink
add 6.12: drm_output_poll changed check patch for 560
Browse files Browse the repository at this point in the history
  • Loading branch information
andersrh committed Nov 20, 2024
1 parent a2eaf19 commit 82dd379
Show file tree
Hide file tree
Showing 3 changed files with 93 additions and 3 deletions.
4 changes: 3 additions & 1 deletion sources/kernel-cachyos-bore/kernel-cachyos-lto.spec
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
6 changes: 4 additions & 2 deletions sources/kernel-cachyos-bore/kernel-cachyos.spec
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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


Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
From 94ad29389cd5129401adea6925f987f4529abb1c Mon Sep 17 00:00:00 2001
From: Peter Jung <[email protected]>
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 <drm/drm_mode_config.h>
+ #else
+ #include <drm/drm_crtc.h>
+ #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

0 comments on commit 82dd379

Please sign in to comment.