return true;
 }
 
+#define SCRAMBLING_POLLING_DELAY_MS    1000
+
 static void vc4_hdmi_enable_scrambling(struct drm_encoder *encoder)
 {
        struct drm_display_mode *mode = &encoder->crtc->state->adjusted_mode;
 
        HDMI_WRITE(HDMI_SCRAMBLER_CTL, HDMI_READ(HDMI_SCRAMBLER_CTL) |
                   VC5_HDMI_SCRAMBLER_CTL_ENABLE);
+
+       queue_delayed_work(system_wq, &vc4_hdmi->scrambling_work,
+                          msecs_to_jiffies(SCRAMBLING_POLLING_DELAY_MS));
 }
 
 static void vc4_hdmi_disable_scrambling(struct drm_encoder *encoder)
        if (crtc && !vc4_hdmi_mode_needs_scrambling(&crtc->mode))
                return;
 
+       if (delayed_work_pending(&vc4_hdmi->scrambling_work))
+               cancel_delayed_work_sync(&vc4_hdmi->scrambling_work);
+
        HDMI_WRITE(HDMI_SCRAMBLER_CTL, HDMI_READ(HDMI_SCRAMBLER_CTL) &
                   ~VC5_HDMI_SCRAMBLER_CTL_ENABLE);
 
        drm_scdc_set_high_tmds_clock_ratio(vc4_hdmi->ddc, false);
 }
 
+static void vc4_hdmi_scrambling_wq(struct work_struct *work)
+{
+       struct vc4_hdmi *vc4_hdmi = container_of(to_delayed_work(work),
+                                                struct vc4_hdmi,
+                                                scrambling_work);
+
+       if (drm_scdc_get_scrambling_status(vc4_hdmi->ddc))
+               return;
+
+       drm_scdc_set_high_tmds_clock_ratio(vc4_hdmi->ddc, true);
+       drm_scdc_set_scrambling(vc4_hdmi->ddc, true);
+
+       queue_delayed_work(system_wq, &vc4_hdmi->scrambling_work,
+                          msecs_to_jiffies(SCRAMBLING_POLLING_DELAY_MS));
+}
+
 static void vc4_hdmi_encoder_post_crtc_disable(struct drm_encoder *encoder,
                                               struct drm_atomic_state *state)
 {
        vc4_hdmi = devm_kzalloc(dev, sizeof(*vc4_hdmi), GFP_KERNEL);
        if (!vc4_hdmi)
                return -ENOMEM;
+       INIT_DELAYED_WORK(&vc4_hdmi->scrambling_work, vc4_hdmi_scrambling_wq);
 
        dev_set_drvdata(dev, vc4_hdmi);
        encoder = &vc4_hdmi->encoder.base.base;