Skip to content

Commit

Permalink
drm/i2c: tda998x: use drm_hdmi_avi_infoframe_from_display_mode()
Browse files Browse the repository at this point in the history
Make use of the DRM HDMI AVI infoframe helper to construct the AVI
infoframe, rather than coding this up ourselves.  This allows DRM
to supply proper aspect ratio information derived from the DRM
display mode structure.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  • Loading branch information
Russell King committed Mar 30, 2015
1 parent 07259f8 commit 8c7a075
Showing 1 changed file with 14 additions and 12 deletions.
26 changes: 14 additions & 12 deletions drivers/gpu/drm/i2c/tda998x_drv.c
Original file line number Diff line number Diff line change
Expand Up @@ -610,19 +610,21 @@ tda998x_write_aif(struct tda998x_priv *priv, struct tda998x_encoder_params *p)
static void
tda998x_write_avi(struct tda998x_priv *priv, struct drm_display_mode *mode)
{
u8 buf[PB(HDMI_AVI_INFOFRAME_SIZE) + 1];
struct hdmi_avi_infoframe frame;
u8 buf[HDMI_INFOFRAME_HEADER_SIZE + HDMI_AVI_INFOFRAME_SIZE];
ssize_t len;

memset(buf, 0, sizeof(buf));
buf[HB(0)] = HDMI_INFOFRAME_TYPE_AVI;
buf[HB(1)] = 0x02;
buf[HB(2)] = HDMI_AVI_INFOFRAME_SIZE;
buf[PB(1)] = HDMI_SCAN_MODE_UNDERSCAN;
buf[PB(2)] = HDMI_ACTIVE_ASPECT_PICTURE;
buf[PB(3)] = HDMI_QUANTIZATION_RANGE_FULL << 2;
buf[PB(4)] = drm_match_cea_mode(mode);

tda998x_write_if(priv, DIP_IF_FLAGS_IF2, REG_IF2_HB0, buf,
sizeof(buf));
drm_hdmi_avi_infoframe_from_display_mode(&frame, mode);

frame.quantization_range = HDMI_QUANTIZATION_RANGE_FULL;

len = hdmi_avi_infoframe_pack(&frame, buf, sizeof(buf));
if (len < 0) {
dev_err(&priv->hdmi->dev, "hdmi_avi_infoframe_pack() failed: %d\n", len);
return;
}

tda998x_write_if(priv, DIP_IF_FLAGS_IF2, REG_IF2_HB0, buf, len);
}

static void tda998x_audio_mute(struct tda998x_priv *priv, bool on)
Expand Down

0 comments on commit 8c7a075

Please sign in to comment.