static u8 drm_match_cea_mode_clock_tolerance(const struct drm_display_mode *to_match,
                                             unsigned int clock_tolerance)
 {
+       unsigned int match_flags = DRM_MODE_MATCH_TIMINGS | DRM_MODE_MATCH_FLAGS;
        u8 vic;
 
        if (!to_match->clock)
                return 0;
 
+       if (to_match->picture_aspect_ratio)
+               match_flags |= DRM_MODE_MATCH_ASPECT_RATIO;
+
        for (vic = 1; vic < ARRAY_SIZE(edid_cea_modes); vic++) {
                struct drm_display_mode cea_mode = edid_cea_modes[vic];
                unsigned int clock1, clock2;
                        continue;
 
                do {
-                       if (drm_mode_equal_no_clocks_no_stereo(to_match, &cea_mode))
+                       if (drm_mode_match(to_match, &cea_mode, match_flags))
                                return vic;
                } while (cea_mode_alternate_timings(vic, &cea_mode));
        }
  */
 u8 drm_match_cea_mode(const struct drm_display_mode *to_match)
 {
+       unsigned int match_flags = DRM_MODE_MATCH_TIMINGS | DRM_MODE_MATCH_FLAGS;
        u8 vic;
 
        if (!to_match->clock)
                return 0;
 
+       if (to_match->picture_aspect_ratio)
+               match_flags |= DRM_MODE_MATCH_ASPECT_RATIO;
+
        for (vic = 1; vic < ARRAY_SIZE(edid_cea_modes); vic++) {
                struct drm_display_mode cea_mode = edid_cea_modes[vic];
                unsigned int clock1, clock2;
                        continue;
 
                do {
-                       if (drm_mode_equal_no_clocks_no_stereo(to_match, &cea_mode))
+                       if (drm_mode_match(to_match, &cea_mode, match_flags))
                                return vic;
                } while (cea_mode_alternate_timings(vic, &cea_mode));
        }
 static u8 drm_match_hdmi_mode_clock_tolerance(const struct drm_display_mode *to_match,
                                              unsigned int clock_tolerance)
 {
+       unsigned int match_flags = DRM_MODE_MATCH_TIMINGS | DRM_MODE_MATCH_FLAGS;
        u8 vic;
 
        if (!to_match->clock)
                    abs(to_match->clock - clock2) > clock_tolerance)
                        continue;
 
-               if (drm_mode_equal_no_clocks_no_stereo(to_match, hdmi_mode))
+               if (drm_mode_match(to_match, hdmi_mode, match_flags))
                        return vic;
        }
 
  */
 static u8 drm_match_hdmi_mode(const struct drm_display_mode *to_match)
 {
+       unsigned int match_flags = DRM_MODE_MATCH_TIMINGS | DRM_MODE_MATCH_FLAGS;
        u8 vic;
 
        if (!to_match->clock)
 
                if ((KHZ2PICOS(to_match->clock) == KHZ2PICOS(clock1) ||
                     KHZ2PICOS(to_match->clock) == KHZ2PICOS(clock2)) &&
-                   drm_mode_equal_no_clocks_no_stereo(to_match, hdmi_mode))
+                   drm_mode_match(to_match, hdmi_mode, match_flags))
                        return vic;
        }
        return 0;