# define VC4_HD_M_SW_RST                       BIT(2)
 # define VC4_HD_M_ENABLE                       BIT(0)
 
+#define HSM_MIN_CLOCK_FREQ     120000000
 #define CEC_CLOCK_FREQ 40000
 
 #define HDMI_14_MAX_TMDS_CLK   (340 * 1000 * 1000)
                        vc4_hdmi->disable_4kp60 = true;
        }
 
+       /*
+        * If we boot without any cable connected to the HDMI connector,
+        * the firmware will skip the HSM initialization and leave it
+        * with a rate of 0, resulting in a bus lockup when we're
+        * accessing the registers even if it's enabled.
+        *
+        * Let's put a sensible default at runtime_resume so that we
+        * don't end up in this situation.
+        */
+       ret = clk_set_min_rate(vc4_hdmi->hsm_clock, HSM_MIN_CLOCK_FREQ);
+       if (ret)
+               goto err_put_ddc;
+
        if (vc4_hdmi->variant->reset)
                vc4_hdmi->variant->reset(vc4_hdmi);