|
@@ -2452,6 +2452,22 @@ u8 drm_match_cea_mode(const struct drm_display_mode *to_match)
|
|
|
}
|
|
|
EXPORT_SYMBOL(drm_match_cea_mode);
|
|
|
|
|
|
+/**
|
|
|
+ * drm_get_cea_aspect_ratio - get the picture aspect ratio corresponding to
|
|
|
+ * the input VIC from the CEA mode list
|
|
|
+ * @video_code: ID given to each of the CEA modes
|
|
|
+ *
|
|
|
+ * Returns picture aspect ratio
|
|
|
+ */
|
|
|
+enum hdmi_picture_aspect drm_get_cea_aspect_ratio(const u8 video_code)
|
|
|
+{
|
|
|
+ /* return picture aspect ratio for video_code - 1 to access the
|
|
|
+ * right array element
|
|
|
+ */
|
|
|
+ return edid_cea_modes[video_code-1].picture_aspect_ratio;
|
|
|
+}
|
|
|
+EXPORT_SYMBOL(drm_get_cea_aspect_ratio);
|
|
|
+
|
|
|
/*
|
|
|
* Calculate the alternate clock for HDMI modes (those from the HDMI vendor
|
|
|
* specific block).
|
|
@@ -3613,6 +3629,12 @@ drm_hdmi_avi_infoframe_from_display_mode(struct hdmi_avi_infoframe *frame,
|
|
|
frame->video_code = drm_match_cea_mode(mode);
|
|
|
|
|
|
frame->picture_aspect = HDMI_PICTURE_ASPECT_NONE;
|
|
|
+
|
|
|
+ /* Populate picture aspect ratio from CEA mode list */
|
|
|
+ if (frame->video_code > 0)
|
|
|
+ frame->picture_aspect = drm_get_cea_aspect_ratio(
|
|
|
+ frame->video_code);
|
|
|
+
|
|
|
frame->active_aspect = HDMI_ACTIVE_ASPECT_PICTURE;
|
|
|
frame->scan_mode = HDMI_SCAN_MODE_UNDERSCAN;
|
|
|
|