Commit 08243606 authored by Ville Syrjälä's avatar Ville Syrjälä
Browse files

drm/i915: Extract intel_panel_mode_valid()



Extract intel_panel_mode_valid() from the eDP code to a generic helper.

Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210923200109.4459-2-ville.syrjala@linux.intel.com


Reviewed-by: default avatarJani Nikula <jani.nikula@intel.com>
parent b58a8868
Loading
Loading
Loading
Loading
+3 −5
Original line number Diff line number Diff line
@@ -845,11 +845,9 @@ intel_dp_mode_valid(struct drm_connector *connector,
		return MODE_H_ILLEGAL;

	if (intel_dp_is_edp(intel_dp) && fixed_mode) {
		if (mode->hdisplay != fixed_mode->hdisplay)
			return MODE_PANEL;

		if (mode->vdisplay != fixed_mode->vdisplay)
			return MODE_PANEL;
		status = intel_panel_mode_valid(intel_connector, mode);
		if (status != MODE_OK)
			return status;

		target_clock = fixed_mode->clock;
	}
+18 −0
Original line number Diff line number Diff line
@@ -482,6 +482,24 @@ intel_panel_detect(struct drm_connector *connector, bool force)
	return connector_status_connected;
}

enum drm_mode_status
intel_panel_mode_valid(struct intel_connector *connector,
		       const struct drm_display_mode *mode)
{
	const struct drm_display_mode *fixed_mode = connector->panel.fixed_mode;

	if (!fixed_mode)
		return MODE_OK;

	if (mode->hdisplay != fixed_mode->hdisplay)
		return MODE_PANEL;

	if (mode->vdisplay != fixed_mode->vdisplay)
		return MODE_PANEL;

	return MODE_OK;
}

int intel_panel_init(struct intel_panel *panel,
		     struct drm_display_mode *fixed_mode,
		     struct drm_display_mode *downclock_mode)
+3 −0
Original line number Diff line number Diff line
@@ -26,6 +26,9 @@ intel_panel_detect(struct drm_connector *connector, bool force);
bool intel_panel_use_ssc(struct drm_i915_private *i915);
void intel_panel_fixed_mode(const struct drm_display_mode *fixed_mode,
			    struct drm_display_mode *adjusted_mode);
enum drm_mode_status
intel_panel_mode_valid(struct intel_connector *connector,
		       const struct drm_display_mode *mode);
int intel_panel_fitting(struct intel_crtc_state *crtc_state,
			const struct drm_connector_state *conn_state);
struct drm_display_mode *