if (HAS_GMCH_DISPLAY(dev_priv))
                return false;
 
+       if (crtc_state->pipe_bpp <= 8*3)
+               return false;
+
+       if (!crtc_state->has_hdmi_sink)
+               return false;
+
        /*
         * HDMI 12bpc affects the clocks, so it's only possible
         * when not cloning with other encoder types.
         * outputs. We also need to check that the higher clock still fits
         * within limits.
         */
-       if (pipe_config->pipe_bpp > 8*3 && pipe_config->has_hdmi_sink && !force_dvi &&
-           hdmi_port_clock_valid(intel_hdmi, clock_12bpc, true, force_dvi) == MODE_OK &&
-           hdmi_12bpc_possible(pipe_config)) {
+       if (hdmi_12bpc_possible(pipe_config) &&
+           hdmi_port_clock_valid(intel_hdmi, clock_12bpc, true, force_dvi) == MODE_OK) {
                DRM_DEBUG_KMS("picking bpc to 12 for HDMI output\n");
                desired_bpp = 12*3;