diff -Naurp kmod-nvidia-390xx-390.157/nvidiapkg/kernel/nvidia-drm/nvidia-drm-connector.c kmod-nvidia-390xx-390.157.buildfix/nvidiapkg/kernel/nvidia-drm/nvidia-drm-connector.c
--- kmod-nvidia-390xx-390.157/nvidiapkg/kernel/nvidia-drm/nvidia-drm-connector.c	2022-10-12 05:30:31.000000000 -0400
+++ kmod-nvidia-390xx-390.157.buildfix/nvidiapkg/kernel/nvidia-drm/nvidia-drm-connector.c	2023-11-22 21:51:01.001472520 -0500
@@ -20,6 +20,8 @@
  * DEALINGS IN THE SOFTWARE.
  */
 
+#include <linux/version.h>
+#include <drm/drm_edid.h>
 #include "nvidia-drm-conftest.h" /* NV_DRM_ATOMIC_MODESET_AVAILABLE */
 
 #if defined(NV_DRM_ATOMIC_MODESET_AVAILABLE)
@@ -98,6 +100,7 @@ __nv_drm_detect_encoder(struct NvKmsKapi
             break;
     }
 
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 18, 0)
     if (connector->override_edid) {
         const struct drm_property_blob *edid = connector->edid_blob_ptr;
 
@@ -110,6 +113,25 @@ __nv_drm_detect_encoder(struct NvKmsKapi
                     sizeof(pDetectParams->edid.buffer));
         }
     }
+#else
+    // Rel. commit "drm/edid: detach debugfs EDID override from EDID property update" (Jani Nikula, 24 Oct 2022)
+    // NOTE: HUGE HACK!
+    mutex_lock(&connector->edid_override_mutex);
+    if (connector->edid_override) {
+        const struct edid *edid = drm_edid_raw(connector->edid_override);
+        size_t edid_length = EDID_LENGTH * (edid->extensions + 1);
+        if (edid_length <= sizeof(pDetectParams->edid.buffer)) {
+            memcpy(pDetectParams->edid.buffer, edid, edid_length);
+            pDetectParams->edid.bufferSize = edid_length;
+            pDetectParams->overrideEdid = NV_TRUE;
+        } else {
+            WARN_ON(edid_length >
+                    sizeof(pDetectParams->edid.buffer));
+        }
+    }
+    mutex_unlock(&connector->edid_override_mutex);
+
+#endif
 
     if (!nvKms->getDynamicDisplayInfo(nv_dev->pDevice, pDetectParams)) {
         NV_DRM_DEV_LOG_ERR(
diff -Naurp kmod-nvidia-390xx-390.157/nvidiapkg/kernel/nvidia-drm/nvidia-drm-drv.c kmod-nvidia-390xx-390.157.buildfix/nvidiapkg/kernel/nvidia-drm/nvidia-drm-drv.c
--- kmod-nvidia-390xx-390.157/nvidiapkg/kernel/nvidia-drm/nvidia-drm-drv.c	2022-10-12 05:30:31.000000000 -0400
+++ kmod-nvidia-390xx-390.157.buildfix/nvidiapkg/kernel/nvidia-drm/nvidia-drm-drv.c	2023-11-22 21:51:01.001472520 -0500
@@ -20,6 +20,7 @@
  * DEALINGS IN THE SOFTWARE.
  */
 
+#include <linux/version.h>
 #include "nvidia-drm-conftest.h" /* NV_DRM_AVAILABLE and NV_DRM_DRM_GEM_H_PRESENT */
 
 #include "nvidia-drm-priv.h"
@@ -239,9 +240,12 @@ nv_drm_init_mode_config(struct nv_drm_de
     dev->mode_config.preferred_depth = 24;
     dev->mode_config.prefer_shadow = 1;
 
+// Rel. commit "drm: Remove drm_mode_config::fb_base" (Zack Rusin, 18 Oct 2022)
+#if defined(CONFIG_FB) && LINUX_VERSION_CODE < KERNEL_VERSION(4, 18, 0)
     /* Currently unused. Update when needed. */
 
     dev->mode_config.fb_base = 0;
+#endif
 
     dev->mode_config.async_page_flip = false;
 
diff -Naurp kmod-nvidia-390xx-390.157/nvidiapkg/kernel/nvidia-drm/nvidia-drm-fb.c kmod-nvidia-390xx-390.157.buildfix/nvidiapkg/kernel/nvidia-drm/nvidia-drm-fb.c
--- kmod-nvidia-390xx-390.157/nvidiapkg/kernel/nvidia-drm/nvidia-drm-fb.c	2022-10-12 05:30:31.000000000 -0400
+++ kmod-nvidia-390xx-390.157.buildfix/nvidiapkg/kernel/nvidia-drm/nvidia-drm-fb.c	2023-11-22 21:56:50.433477927 -0500
@@ -31,6 +31,7 @@
 #include "nvidia-drm-gem.h"
 
 #include <drm/drm_crtc_helper.h>
+#include <drm/drm_modeset_helper.h>
 
 static void nv_drm_framebuffer_destroy(struct drm_framebuffer *fb)
 {
