From 937f576028eb96ed9772e44d98f6cf99e312b86b Mon Sep 17 00:00:00 2001 From: Kuninori Morimoto Date: Fri, 11 Dec 2009 11:53:55 -0300 Subject: [PATCH] --- yaml --- r: 176861 b: refs/heads/master c: 70da92e5740a6ab8bfe0db826c345c85e795f109 h: refs/heads/master i: 176859: 9cecb5f7f70ec7d69969670a63b9ab2013e201e3 v: v3 --- [refs] | 2 +- trunk/drivers/media/video/tw9910.c | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 77ddac0be747..f7df4fc7c9d2 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: c1d7b06cc37af3a958f7573af69ce2d0920ca79d +refs/heads/master: 70da92e5740a6ab8bfe0db826c345c85e795f109 diff --git a/trunk/drivers/media/video/tw9910.c b/trunk/drivers/media/video/tw9910.c index e70905ceef48..5b801a6e1eea 100644 --- a/trunk/drivers/media/video/tw9910.c +++ b/trunk/drivers/media/video/tw9910.c @@ -512,12 +512,21 @@ static int tw9910_set_bus_param(struct soc_camera_device *icd, { struct v4l2_subdev *sd = soc_camera_to_subdev(icd); struct i2c_client *client = sd->priv; + u8 val = VSSL_VVALID | HSSL_DVALID; /* * set OUTCTR1 + * + * We use VVALID and DVALID signals to control VSYNC and HSYNC + * outputs, in this mode their polarity is inverted. */ - return i2c_smbus_write_byte_data(client, OUTCTR1, - VSSL_VVALID | HSSL_DVALID); + if (flags & SOCAM_HSYNC_ACTIVE_LOW) + val |= HSP_HI; + + if (flags & SOCAM_VSYNC_ACTIVE_LOW) + val |= VSP_HI; + + return i2c_smbus_write_byte_data(client, OUTCTR1, val); } static unsigned long tw9910_query_bus_param(struct soc_camera_device *icd) @@ -527,6 +536,7 @@ static unsigned long tw9910_query_bus_param(struct soc_camera_device *icd) struct soc_camera_link *icl = to_soc_camera_link(icd); unsigned long flags = SOCAM_PCLK_SAMPLE_RISING | SOCAM_MASTER | SOCAM_VSYNC_ACTIVE_HIGH | SOCAM_HSYNC_ACTIVE_HIGH | + SOCAM_VSYNC_ACTIVE_LOW | SOCAM_HSYNC_ACTIVE_LOW | SOCAM_DATA_ACTIVE_HIGH | priv->info->buswidth; return soc_camera_apply_sensor_flags(icl, flags);