On Fri, Nov 05, 2021 at 07:02:30PM +0100, Daniel Vetter wrote:
On Thu, Nov 04, 2021 at 05:37:21PM +0200, Ville Syrjälä wrote:
On Tue, Nov 02, 2021 at 03:59:33PM +0100, Maxime Ripard wrote:
--- a/include/drm/drm_modes.h +++ b/include/drm/drm_modes.h @@ -424,6 +424,21 @@ static inline bool drm_mode_is_stereo(const struct drm_display_mode *mode) return mode->flags & DRM_MODE_FLAG_3D_MASK; }
+/**
- drm_mode_hdmi_requires_scrambling - Checks if a mode requires HDMI Scrambling
- @mode: DRM display mode
- Checks if a given display mode requires the scrambling to be enabled.
- Returns:
- A boolean stating whether it's required or not.
- */
+static inline bool +drm_mode_hdmi_requires_scrambling(const struct drm_display_mode *mode) +{
- return mode->clock > DRM_HDMI_14_MAX_TMDS_CLK_KHZ;
+}
That's only correct for 8bpc. The actual limit is on the TMDS clock (or rather TMDS character rate as HDMI 2.0 calls it due to the 1/1 vs. 1/4 magic for the actually transmitted TMDS clock).
Yeah we might need to add the bus format for the cable here too, to make this complete.
I don't think we have a usable thing for that on the drm level, so would need to invent something. Oh, and the mode->clock vs. mode->crtc_clock funny business also limits the usability of this approach. So probably just easiest to pass in the the driver calculated TMDS clock instead.