@ -29,6 +29,7 @@
*/
# include <linux/kernel.h>
# include <linux/slab.h>
# include <linux/hdmi.h>
# include <linux/i2c.h>
# include <linux/module.h>
# include <drm/drmP.h>
@ -2856,3 +2857,35 @@ int drm_add_modes_noedid(struct drm_connector *connector,
return num_modes ;
}
EXPORT_SYMBOL ( drm_add_modes_noedid ) ;
/**
* drm_hdmi_avi_infoframe_from_display_mode ( ) - fill an HDMI AVI infoframe with
* data from a DRM display mode
* @ frame : HDMI AVI infoframe
* @ mode : DRM display mode
*
* Returns 0 on success or a negative error code on failure .
*/
int
drm_hdmi_avi_infoframe_from_display_mode ( struct hdmi_avi_infoframe * frame ,
const struct drm_display_mode * mode )
{
int err ;
if ( ! frame | | ! mode )
return - EINVAL ;
err = hdmi_avi_infoframe_init ( frame ) ;
if ( err < 0 )
return err ;
frame - > video_code = drm_match_cea_mode ( mode ) ;
if ( ! frame - > video_code )
return 0 ;
frame - > picture_aspect = HDMI_PICTURE_ASPECT_NONE ;
frame - > active_aspect = HDMI_ACTIVE_ASPECT_PICTURE ;
return 0 ;
}
EXPORT_SYMBOL ( drm_hdmi_avi_infoframe_from_display_mode ) ;