aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i2c/tda998x_drv.c
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2015-05-15 01:23:10 -0400
committerDave Airlie <airlied@redhat.com>2015-05-15 01:23:10 -0400
commit72a81683a8feac3c67bac24dfd88f81bac077be0 (patch)
tree5447b73aa7d854e65ec1c52d69d8ea6db3b5c1ae /drivers/gpu/drm/i2c/tda998x_drv.c
parentcc7297dcb440eb9d2e50a8c26dc7e7b37ef37e25 (diff)
parent8c7a075da9f7980cc95ffcd7e6621d4a87f20f40 (diff)
Merge branch 'drm-tda998x-devel' of git://ftp.arm.linux.org.uk/~rmk/linux-arm into drm-next
tda998x: use helpers for infoframe. * 'drm-tda998x-devel' of git://ftp.arm.linux.org.uk/~rmk/linux-arm: drm/i2c: tda998x: use drm_hdmi_avi_infoframe_from_display_mode()
Diffstat (limited to 'drivers/gpu/drm/i2c/tda998x_drv.c')
-rw-r--r--drivers/gpu/drm/i2c/tda998x_drv.c26
1 files changed, 14 insertions, 12 deletions
diff --git a/drivers/gpu/drm/i2c/tda998x_drv.c b/drivers/gpu/drm/i2c/tda998x_drv.c
index 5febffdb027d..011e1cac3e4c 100644
--- a/drivers/gpu/drm/i2c/tda998x_drv.c
+++ b/drivers/gpu/drm/i2c/tda998x_drv.c
@@ -634,19 +634,21 @@ tda998x_write_aif(struct tda998x_priv *priv, struct tda998x_encoder_params *p)
634static void 634static void
635tda998x_write_avi(struct tda998x_priv *priv, struct drm_display_mode *mode) 635tda998x_write_avi(struct tda998x_priv *priv, struct drm_display_mode *mode)
636{ 636{
637 u8 buf[PB(HDMI_AVI_INFOFRAME_SIZE) + 1]; 637 struct hdmi_avi_infoframe frame;
638 u8 buf[HDMI_INFOFRAME_HEADER_SIZE + HDMI_AVI_INFOFRAME_SIZE];
639 ssize_t len;
638 640
639 memset(buf, 0, sizeof(buf)); 641 drm_hdmi_avi_infoframe_from_display_mode(&frame, mode);
640 buf[HB(0)] = HDMI_INFOFRAME_TYPE_AVI; 642
641 buf[HB(1)] = 0x02; 643 frame.quantization_range = HDMI_QUANTIZATION_RANGE_FULL;
642 buf[HB(2)] = HDMI_AVI_INFOFRAME_SIZE; 644
643 buf[PB(1)] = HDMI_SCAN_MODE_UNDERSCAN; 645 len = hdmi_avi_infoframe_pack(&frame, buf, sizeof(buf));
644 buf[PB(2)] = HDMI_ACTIVE_ASPECT_PICTURE; 646 if (len < 0) {
645 buf[PB(3)] = HDMI_QUANTIZATION_RANGE_FULL << 2; 647 dev_err(&priv->hdmi->dev, "hdmi_avi_infoframe_pack() failed: %d\n", len);
646 buf[PB(4)] = drm_match_cea_mode(mode); 648 return;
647 649 }
648 tda998x_write_if(priv, DIP_IF_FLAGS_IF2, REG_IF2_HB0, buf, 650
649 sizeof(buf)); 651 tda998x_write_if(priv, DIP_IF_FLAGS_IF2, REG_IF2_HB0, buf, len);
650} 652}
651 653
652static void tda998x_audio_mute(struct tda998x_priv *priv, bool on) 654static void tda998x_audio_mute(struct tda998x_priv *priv, bool on)