[v2,16/28] drm/i2c: tda998x: change the video quantization

Message ID 20140109120500.6abc6cd2@armhf
State New
Headers show

Commit Message

Jean-Francois Moine Jan. 9, 2014, 11:05 a.m.
This patch changes the video quantization to RGB/YUV.

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


Russell King - ARM Linux Jan. 11, 2014, 6:22 p.m. | #1
On Thu, Jan 09, 2014 at 12:05:00PM +0100, Jean-Francois Moine wrote:
> This patch changes the video quantization to RGB/YUV.

Strong NAK, this patch is definitely incorrect.

The Cubox (which I assume is the platform you're generating these patches
for) produces RGB at it's output, which are the RGB values from the
framebuffer.  Being a computer-like "IT" source, these RGB values have the
full range, from zero to 255, rather than the limited range of 16 to 235.

With limited range, a value of 16 is black and 235 is white.  However, the
values in the framebuffer will be zero for black and 255 for white.

A VQR value of 1 gives limited range of 16 to 235, whereas zero gives
full range.  The value of zero is correct here.


diff --git a/drivers/gpu/drm/i2c/tda998x_drv.c b/drivers/gpu/drm/i2c/tda998x_drv.c
index 91bd4e8..f60aef9 100644
--- a/drivers/gpu/drm/i2c/tda998x_drv.c
+++ b/drivers/gpu/drm/i2c/tda998x_drv.c
@@ -992,7 +992,9 @@  tda998x_encoder_mode_set(struct drm_encoder *encoder,
 	reg_clear(priv, REG_PLL_SERIAL_1, PLL_SERIAL_1_SRL_MAN_IZ);
 	reg_clear(priv, REG_PLL_SERIAL_3, PLL_SERIAL_3_SRL_DE);
 	reg_write(priv, REG_SERIALIZER, 0);
-	reg_write(priv, REG_HVF_CNTRL_1, HVF_CNTRL_1_VQR(0));
+	/* video quantization range = 0: full, 1: RGB/YUV, 2: YUV */
+	reg_write(priv, REG_HVF_CNTRL_1, HVF_CNTRL_1_VQR(1));
 	/* TODO enable pixel repeat for pixel rates less than 25Msamp/s */
 	rep = 0;