diff options
Diffstat (limited to 'drivers/media')
-rw-r--r-- | drivers/media/video/tvp5150.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/media/video/tvp5150.c b/drivers/media/video/tvp5150.c index 25d0aef88ef5..445eba4174d7 100644 --- a/drivers/media/video/tvp5150.c +++ b/drivers/media/video/tvp5150.c | |||
@@ -290,6 +290,7 @@ static inline void tvp5150_selmux(struct i2c_client *c) | |||
290 | int opmode=0; | 290 | int opmode=0; |
291 | struct tvp5150 *decoder = i2c_get_clientdata(c); | 291 | struct tvp5150 *decoder = i2c_get_clientdata(c); |
292 | int input = 0; | 292 | int input = 0; |
293 | unsigned char val; | ||
293 | 294 | ||
294 | if ((decoder->route.output & TVP5150_BLACK_SCREEN) || !decoder->enable) | 295 | if ((decoder->route.output & TVP5150_BLACK_SCREEN) || !decoder->enable) |
295 | input = 8; | 296 | input = 8; |
@@ -315,6 +316,16 @@ static inline void tvp5150_selmux(struct i2c_client *c) | |||
315 | 316 | ||
316 | tvp5150_write(c, TVP5150_OP_MODE_CTL, opmode); | 317 | tvp5150_write(c, TVP5150_OP_MODE_CTL, opmode); |
317 | tvp5150_write(c, TVP5150_VD_IN_SRC_SEL_1, input); | 318 | tvp5150_write(c, TVP5150_VD_IN_SRC_SEL_1, input); |
319 | |||
320 | /* Svideo should enable YCrCb output and disable GPCL output | ||
321 | * For Composite and TV, it should be the reverse | ||
322 | */ | ||
323 | val = tvp5150_read(c, TVP5150_MISC_CTL); | ||
324 | if (decoder->route.input == TVP5150_SVIDEO) | ||
325 | val = (val & ~0x40) | 0x10; | ||
326 | else | ||
327 | val = (val & ~0x10) | 0x40; | ||
328 | tvp5150_write(c, TVP5150_MISC_CTL, val); | ||
318 | }; | 329 | }; |
319 | 330 | ||
320 | struct i2c_reg_value { | 331 | struct i2c_reg_value { |