From 192d6d90e415c9441a9882f6e133b6977e549c6b Mon Sep 17 00:00:00 2001 From: Anders Rytter Hansen Date: Wed, 20 Nov 2024 13:03:32 +0100 Subject: [PATCH] add 6.12: drm_outpull_poll changed check patch for 560 https://github.com/NVIDIA/open-gpu-kernel-modules/issues/708 --- ...-6.12-drm_outpull_poll-changed-check.patch | 86 +++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 sources/kernel-patches/nvidia/0010-6.12-drm_outpull_poll-changed-check.patch diff --git a/sources/kernel-patches/nvidia/0010-6.12-drm_outpull_poll-changed-check.patch b/sources/kernel-patches/nvidia/0010-6.12-drm_outpull_poll-changed-check.patch new file mode 100644 index 0000000..c9d0add --- /dev/null +++ b/sources/kernel-patches/nvidia/0010-6.12-drm_outpull_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/conftest.sh | 23 ++++++++++++++++++++ + kernel/nvidia-drm/nvidia-drm-drv.c | 4 ++++ + kernel/nvidia-drm/nvidia-drm-sources.mk | 1 + + 3 files changed, 28 insertions(+) + +diff --git a/kernel/conftest.sh b/kernel/conftest.sh +index 4a239e63..4d6fff64 100755 +--- a/kernel/conftest.sh ++++ b/kernel/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/nvidia-drm/nvidia-drm-drv.c b/kernel/nvidia-drm/nvidia-drm-drv.c +index 50028c26..034dda66 100644 +--- a/kernel/nvidia-drm/nvidia-drm-drv.c ++++ b/kernel/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/nvidia-drm/nvidia-drm-sources.mk b/kernel/nvidia-drm/nvidia-drm-sources.mk +index 247096b7..f5964a57 100644 +--- a/kernel/nvidia-drm/nvidia-drm-sources.mk ++++ b/kernel/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