drm: add drm_mode_cea_vic
authorPaulo Zanoni <paulo.r.zanoni@intel.com>
Fri, 23 Nov 2012 14:09:26 +0000 (12:09 -0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 29 Nov 2012 10:42:37 +0000 (11:42 +0100)
This function returns the VIC of the mode. This value can be used when
creating AVI InfoFrames.

Cc: Thierry Reding <thierry.reding@avionic-design.de>
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=50371
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Reviewed-by: Thierry Reding <thierry.reding@avionic-design.de>
Acked-by: Dave Airlie <airlied@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/drm_edid.c
include/drm/drm_crtc.h

index 164820003546d02f627692190de57fa18c7adcdd..011bd4f4635ea6e3dfa5b38e94915b607b01cbba 100644 (file)
@@ -2079,3 +2079,22 @@ int drm_add_modes_noedid(struct drm_connector *connector,
        return num_modes;
 }
 EXPORT_SYMBOL(drm_add_modes_noedid);
+
+/**
+ * drm_mode_cea_vic - return the CEA-861 VIC of a given mode
+ * @mode: mode
+ *
+ * RETURNS:
+ * The VIC number, 0 in case it's not a CEA-861 mode.
+ */
+uint8_t drm_mode_cea_vic(const struct drm_display_mode *mode)
+{
+       uint8_t i;
+
+       for (i = 0; i < drm_num_cea_modes; i++)
+               if (drm_mode_equal(mode, &edid_cea_modes[i]))
+                       return i + 1;
+
+       return 0;
+}
+EXPORT_SYMBOL(drm_mode_cea_vic);
index c0635b7f869690688eab644c63fdbbd89b78f2cc..3538eda94ef55145e83c17d1b340b06c29658d6a 100644 (file)
@@ -1055,6 +1055,7 @@ extern struct drm_display_mode *drm_gtf_mode_complex(struct drm_device *dev,
                                int GTF_2C, int GTF_K, int GTF_2J);
 extern int drm_add_modes_noedid(struct drm_connector *connector,
                                int hdisplay, int vdisplay);
+extern uint8_t drm_mode_cea_vic(const struct drm_display_mode *mode);
 
 extern int drm_edid_header_is_valid(const u8 *raw_edid);
 extern bool drm_edid_block_valid(u8 *raw_edid, int block, bool print_bad_edid);