diff options
author | Dave Airlie <airlied@redhat.com> | 2015-05-15 01:23:10 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2015-05-15 01:23:10 -0400 |
commit | 72a81683a8feac3c67bac24dfd88f81bac077be0 (patch) | |
tree | 5447b73aa7d854e65ec1c52d69d8ea6db3b5c1ae /drivers/gpu/drm/i2c/tda998x_drv.c | |
parent | cc7297dcb440eb9d2e50a8c26dc7e7b37ef37e25 (diff) | |
parent | 8c7a075da9f7980cc95ffcd7e6621d4a87f20f40 (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.c | 26 |
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) | |||
634 | static void | 634 | static void |
635 | tda998x_write_avi(struct tda998x_priv *priv, struct drm_display_mode *mode) | 635 | tda998x_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 | ||
652 | static void tda998x_audio_mute(struct tda998x_priv *priv, bool on) | 654 | static void tda998x_audio_mute(struct tda998x_priv *priv, bool on) |