Author: dumbbell
Date: Sun Mar 29 18:45:51 2015
New Revision: 280814
URL: https://svnweb.freebsd.org/changeset/base/280814

Log:
  drm: Import Linux commit 9bc3cd5673d84d29272fa7181a4dfca83cbb48c1
  
  Author: Ville Syrjälä <ville.syrj...@linux.intel.com>
  Date:   Fri May 31 12:17:08 2013 +0000
  
      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.syrj...@linux.intel.com>
      Reviewed-by: Alex Deucher <alexander.deuc...@amd.com>
      Signed-off-by: Dave Airlie <airl...@redhat.com>
  
  PR:           198936
  Obtained from:        Linux
  MFC after:    1 month
  MFC with:     r280183

Modified:
  head/sys/dev/drm2/drm_crtc_helper.c
  head/sys/dev/drm2/drm_modes.c

Modified: head/sys/dev/drm2/drm_crtc_helper.c
==============================================================================
--- head/sys/dev/drm2/drm_crtc_helper.c Sun Mar 29 18:44:15 2015        
(r280813)
+++ head/sys/dev/drm2/drm_crtc_helper.c Sun Mar 29 18:45:51 2015        
(r280814)
@@ -189,13 +189,14 @@ prune:
        if (list_empty(&connector->modes))
                return 0;
 
+       list_for_each_entry(mode, &connector->modes, head)
+               mode->vrefresh = drm_mode_vrefresh(mode);
+
        drm_mode_sort(&connector->modes);
 
        DRM_DEBUG_KMS("[CONNECTOR:%d:%s] probed modes :\n", connector->base.id,
                        drm_get_connector_name(connector));
        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_debug_printmodeline(mode);
        }

Modified: head/sys/dev/drm2/drm_modes.c
==============================================================================
--- head/sys/dev/drm2/drm_modes.c       Sun Mar 29 18:44:15 2015        
(r280813)
+++ head/sys/dev/drm2/drm_modes.c       Sun Mar 29 18:45:51 2015        
(r280814)
@@ -927,6 +927,11 @@ static int drm_mode_compare(void *priv, 
        diff = b->hdisplay * b->vdisplay - a->hdisplay * a->vdisplay;
        if (diff)
                return diff;
+
+       diff = b->vrefresh - a->vrefresh;
+       if (diff)
+               return diff;
+
        diff = b->clock - a->clock;
        return diff;
 }
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to