Skip to content

Commit

Permalink
drm/i915: Extract intel_panel_mode_valid()
Browse files Browse the repository at this point in the history
Extract intel_panel_mode_valid() from the eDP code to a generic helper.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210923200109.4459-2-ville.syrjala@linux.intel.com
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
  • Loading branch information
Ville Syrjälä committed Sep 30, 2021
1 parent b58a886 commit 0824360
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 5 deletions.
8 changes: 3 additions & 5 deletions drivers/gpu/drm/i915/display/intel_dp.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand Down
18 changes: 18 additions & 0 deletions drivers/gpu/drm/i915/display/intel_panel.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
3 changes: 3 additions & 0 deletions drivers/gpu/drm/i915/display/intel_panel.h
Original file line number Diff line number Diff line change
Expand Up @@ -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 *
Expand Down

0 comments on commit 0824360

Please sign in to comment.