diff mbox

[v2,23/28] drm/i2c: tda998x: add the active aspect in HDMI AVI frame

Message ID 20140109120639.5f76c620@armhf (mailing list archive)
State New, archived
Headers show

Commit Message

Jean-Francois Moine Jan. 9, 2014, 11:06 a.m. UTC
This patch adds the active aspect as 'picture' in the HDMI AVI frame
and also some comments about this frame.

Signed-off-by: Jean-Francois Moine <moinejf@free.fr>
---
 drivers/gpu/drm/i2c/tda998x_drv.c | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Russell King - ARM Linux Jan. 11, 2014, 6:51 p.m. UTC | #1
On Thu, Jan 09, 2014 at 12:06:39PM +0100, Jean-Francois Moine wrote:
> This patch adds the active aspect as 'picture' in the HDMI AVI frame
> and also some comments about this frame.

Yes, this should've been set.  It's probably a stable tree candidate,
but first it needs testing.
Jean-Francois Moine Jan. 13, 2014, 9:26 a.m. UTC | #2
On Sat, 11 Jan 2014 18:51:14 +0000
Russell King - ARM Linux <linux@arm.linux.org.uk> wrote:

> On Thu, Jan 09, 2014 at 12:06:39PM +0100, Jean-Francois Moine wrote:
> > This patch adds the active aspect as 'picture' in the HDMI AVI frame
> > and also some comments about this frame.
> 
> Yes, this should've been set.  It's probably a stable tree candidate,
> but first it needs testing.

I get correct 4:3 (1280x960) and 5:4 (1280x1024) images on my 16:9 TV
screen with this aspect value. 16:10 (1680x1050) images are stretched.
diff mbox

Patch

diff --git a/drivers/gpu/drm/i2c/tda998x_drv.c b/drivers/gpu/drm/i2c/tda998x_drv.c
index 55cecb8..68630b8 100644
--- a/drivers/gpu/drm/i2c/tda998x_drv.c
+++ b/drivers/gpu/drm/i2c/tda998x_drv.c
@@ -696,7 +696,11 @@  tda998x_write_avi(struct tda998x_priv *priv, struct drm_display_mode *mode)
 	buf[HB(1)] = 0x02;
 	buf[HB(2)] = HDMI_AVI_INFOFRAME_SIZE;
 	buf[PB(1)] = HDMI_SCAN_MODE_UNDERSCAN;
+			/* (color_ind << 5) | (info_pres << 4) | (bar << 2) | scan */
+	buf[PB(2)] = HDMI_ACTIVE_ASPECT_PICTURE;
+			/* (colorimetry << 6) | (pic_ratio << 4) | active_ratio */
 	buf[PB(3)] = HDMI_QUANTIZATION_RANGE_FULL << 2;
+				/* (quant_range << 2) | non_uniform_scaling */
 	buf[PB(4)] = drm_match_cea_mode(mode);
 
 	tda998x_write_if(priv, DIP_IF_FLAGS_IF2, REG_IF2_HB0, buf,