drm: Sort connector modes based on vrefresh
Keeping the modes sorted by vrefresh before the pixel clock makes the mode list somehow more pleasing to the eye. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
990256aec2
commit
9bc3cd5673
2 changed files with 8 additions and 2 deletions
|
@ -189,13 +189,14 @@ prune:
|
||||||
if (list_empty(&connector->modes))
|
if (list_empty(&connector->modes))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
list_for_each_entry(mode, &connector->modes, head)
|
||||||
|
mode->vrefresh = drm_mode_vrefresh(mode);
|
||||||
|
|
||||||
drm_mode_sort(&connector->modes);
|
drm_mode_sort(&connector->modes);
|
||||||
|
|
||||||
DRM_DEBUG_KMS("[CONNECTOR:%d:%s] probed modes :\n", connector->base.id,
|
DRM_DEBUG_KMS("[CONNECTOR:%d:%s] probed modes :\n", connector->base.id,
|
||||||
drm_get_connector_name(connector));
|
drm_get_connector_name(connector));
|
||||||
list_for_each_entry(mode, &connector->modes, head) {
|
list_for_each_entry(mode, &connector->modes, head) {
|
||||||
mode->vrefresh = drm_mode_vrefresh(mode);
|
|
||||||
|
|
||||||
drm_mode_set_crtcinfo(mode, CRTC_INTERLACE_HALVE_V);
|
drm_mode_set_crtcinfo(mode, CRTC_INTERLACE_HALVE_V);
|
||||||
drm_mode_debug_printmodeline(mode);
|
drm_mode_debug_printmodeline(mode);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1020,6 +1020,11 @@ static int drm_mode_compare(void *priv, struct list_head *lh_a, struct list_head
|
||||||
diff = b->hdisplay * b->vdisplay - a->hdisplay * a->vdisplay;
|
diff = b->hdisplay * b->vdisplay - a->hdisplay * a->vdisplay;
|
||||||
if (diff)
|
if (diff)
|
||||||
return diff;
|
return diff;
|
||||||
|
|
||||||
|
diff = b->vrefresh - a->vrefresh;
|
||||||
|
if (diff)
|
||||||
|
return diff;
|
||||||
|
|
||||||
diff = b->clock - a->clock;
|
diff = b->clock - a->clock;
|
||||||
return diff;
|
return diff;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue