[PATCH 5/5] soc-camera: tw9910: Add revision control on tw9910_set_hsync

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



10 - 3 bit hsync control are same as Rev0/Rev1.
But only rev1 can control more 3 bit for hsync.
This patch modify this problem

Signed-off-by: Kuninori Morimoto <morimoto.kuninori@xxxxxxxxxxx>
---
 drivers/media/video/tw9910.c |   26 +++++++++++++++++---------
 1 files changed, 17 insertions(+), 9 deletions(-)

diff --git a/drivers/media/video/tw9910.c b/drivers/media/video/tw9910.c
index 59158bb..a688c11 100644
--- a/drivers/media/video/tw9910.c
+++ b/drivers/media/video/tw9910.c
@@ -349,6 +349,7 @@ static int tw9910_set_scale(struct i2c_client *client,
 static int tw9910_set_hsync(struct i2c_client *client,
 			    const u16 start, const u16 end)
 {
+	struct tw9910_priv *priv = to_tw9910(client);
 	int ret;
 
 	/* bit 10 - 3 */
@@ -363,15 +364,22 @@ static int tw9910_set_hsync(struct i2c_client *client,
 	if (ret < 0)
 		return ret;
 
-	/* bit 2 - 0 */
-	ret = i2c_smbus_read_byte_data(client, HSLOWCTL);
-	if (ret < 0)
-		return ret;
+	/* FIXME
+	 *
+	 * So far only revisions 0 and 1 have been seen
+	 */
+	if (1 == priv->rev) {
 
-	ret = i2c_smbus_write_byte_data(client, HSLOWCTL,
-					(ret   & 0x88)        |
-					(start & 0x0007) << 4 |
-					(end   & 0x0007));
+		/* bit 2 - 0 */
+		ret = i2c_smbus_read_byte_data(client, HSLOWCTL);
+		if (ret < 0)
+			return ret;
+
+		ret = i2c_smbus_write_byte_data(client, HSLOWCTL,
+						(ret   & 0x88)        |
+						(start & 0x0007) << 4 |
+						(end   & 0x0007));
+	}
 
 	return ret;
 }
-- 
1.6.0.4

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux