diff options
author | Mauro Carvalho Chehab <mchehab@infradead.org> | 2007-11-03 23:40:24 -0200 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2007-11-03 23:40:24 -0200 |
commit | db212a276b0513120a21ef0d6a64a3a753a3a215 (patch) | |
tree | 2307ece2009146e6e22e7f19bbb42517c74404df | |
parent | dfa9956230aa171f44a61b5939236737f555f4ac (diff) | |
download | mediapointer-dvb-s2-db212a276b0513120a21ef0d6a64a3a753a3a215.tar.gz mediapointer-dvb-s2-db212a276b0513120a21ef0d6a64a3a753a3a215.tar.bz2 |
Fix S-video mode on tvp5150
From: Mauro Carvalho Chehab <mchehab@infradead.org>
Thanks to Markus Reichberger to point this.
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
-rw-r--r-- | linux/drivers/media/video/tvp5150.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/linux/drivers/media/video/tvp5150.c b/linux/drivers/media/video/tvp5150.c index 6be434987..1619c5ff3 100644 --- a/linux/drivers/media/video/tvp5150.c +++ b/linux/drivers/media/video/tvp5150.c @@ -320,6 +320,7 @@ static inline void tvp5150_selmux(struct i2c_client *c) int opmode=0; struct tvp5150 *decoder = i2c_get_clientdata(c); int input = 0; + unsigned char val; if ((decoder->route.output & TVP5150_BLACK_SCREEN) || !decoder->enable) input = 8; @@ -345,6 +346,16 @@ static inline void tvp5150_selmux(struct i2c_client *c) tvp5150_write(c, TVP5150_OP_MODE_CTL, opmode); tvp5150_write(c, TVP5150_VD_IN_SRC_SEL_1, input); + + /* Svideo should enable YCrCb output and disable GPCL output + * For Composite and TV, it should be the reverse + */ + val = tvp5150_read(c, TVP5150_MISC_CTL); + if (decoder->route.input == TVP5150_SVIDEO) + val = (val & ~0x40) | 0x10; + else + val = (val & ~0x10) | 0x40; + tvp5150_write(c, TVP5150_MISC_CTL, val); }; struct i2c_reg_value { |