diff --git a/0001-fix-drm-add-privacy-screen-modules-to-the-initrd.patch b/0001-fix-drm-add-privacy-screen-modules-to-the-initrd.patch
new file mode 100644
index 0000000..3997423
--- /dev/null
+++ b/0001-fix-drm-add-privacy-screen-modules-to-the-initrd.patch
@@ -0,0 +1,57 @@
+From 4f1d387b777425aead44232bd2c3d5c3517d4ff8 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Thu, 9 Dec 2021 16:35:11 +0100
+Subject: [PATCH] fix(drm): add privacy screen modules to the initrd
+
+Starting with kernel 5.17 the kernel supports the builtin privacy screens
+built into the LCD panel of some new laptop models.
+
+This means that the drm drivers will now return -EPROBE_DEFER from their
+probe() method on models with a builtin privacy screen when the privacy
+screen provider driver has not been loaded yet.
+
+Make dracut add the privacy screen providing drivers to the initrd
+(when necessary for hostmode=yes), so that drm drivers on affected
+drivers can probe() successfully.
+
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+---
+ modules.d/50drm/module-setup.sh | 14 ++++++++++++++
+ 1 file changed, 14 insertions(+)
+
+diff --git a/modules.d/50drm/module-setup.sh b/modules.d/50drm/module-setup.sh
+index aca01505..cff0550c 100755
+--- a/modules.d/50drm/module-setup.sh
++++ b/modules.d/50drm/module-setup.sh
+@@ -29,6 +29,8 @@ installkernel() {
+     # as we could e.g. be in the installer; nokmsboot boot parameter will disable
+     # loading of the driver if needed
+     if [[ $hostonly ]]; then
++        local i modlink modname
++
+         for i in /sys/bus/{pci/devices,platform/devices,virtio/devices,soc/devices/soc?}/*/modalias; do
+             [[ -e $i ]] || continue
+             [[ -n $(< "$i") ]] || continue
+@@ -39,7 +41,19 @@ installkernel() {
+                 fi
+             fi
+         done
++        # if there is a privacy screen then its driver must be loaded before the
++        # kms driver will bind, otherwise its probe() will return -EPROBE_DEFER
++        # note privacy screens always register, even with e.g. nokmsboot
++        for i in /sys/class/drm/privacy_screen-*/device/driver/module; do
++            [[ -L $i ]] || continue
++            modlink=$(readlink "$i")
++            modname=$(basename "$modlink")
++            instmods "$modname"
++        done
+     else
+         dracut_instmods -o -s "drm_crtc_init|drm_dev_register|drm_encoder_init" "=drivers/gpu/drm" "=drivers/staging"
++        # also include privacy screen providers (see above comment)
++        # atm all providers live under drivers/platform/x86
++        dracut_instmods -o -s "drm_privacy_screen_register" "=drivers/platform/x86"
+     fi
+ }
+-- 
+2.33.1
+
diff --git a/dracut.spec b/dracut.spec
index 6f53b93..5677b56 100644
--- a/dracut.spec
+++ b/dracut.spec
@@ -5,7 +5,7 @@
 # strip the automatically generated dep here and instead co-own the
 # directory.
 %global __requires_exclude pkg-config
-%define dist_free_release 7
+%define dist_free_release 8
 
 Name: dracut
 Version: 055
@@ -54,6 +54,9 @@ Patch5: 0001-fix-kernel-modules-add-blk_mq_alloc_disk-and-blk_cle.patch
 Patch6: https://github.com/dracutdevs/dracut/pull/1611.patch#/0001-fix-network-manager-disable-tty-if-no-console.patch
 # Add support for isp1760 usb device used as the boot drive on arm/corestone
 Patch7: 0001-fix-90kernel-modules-add-isp1760-USB-controller.patch
+# For new drm-privacy screen support in kernel >= 5.17, also see:
+# https://hansdegoede.livejournal.com/25948.html
+Patch8: 0001-fix-drm-add-privacy-screen-modules-to-the-initrd.patch
 
 BuildRequires: bash
 BuildRequires: git-core
@@ -507,6 +510,9 @@ echo 'dracut_rescue_image="yes"' > $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/
 %{_prefix}/lib/kernel/install.d/51-dracut-rescue.install
 
 %changelog
+* Mon Dec 20 2021 Hans de Goede <hdegoede@redhat.com> - 055-8
+- Backport upstream changes for drm-privacy screen support in kernel >= 5.17
+
 * Thu Nov  4 2021 Jeremy Linton <jeremy.linton@arm.com> - 055-7
 - Backport Upstream: 15398458 fix(90kernel-modules): add isp1760 USB controller