diff options
Diffstat (limited to 'drivers/media/video/vpx3220.c')
-rw-r--r-- | drivers/media/video/vpx3220.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/media/video/vpx3220.c b/drivers/media/video/vpx3220.c index 2bafca45c084..137b58f2c666 100644 --- a/drivers/media/video/vpx3220.c +++ b/drivers/media/video/vpx3220.c | |||
@@ -408,6 +408,12 @@ vpx3220_command (struct i2c_client *client, | |||
408 | case DECODER_SET_NORM: | 408 | case DECODER_SET_NORM: |
409 | { | 409 | { |
410 | int *iarg = arg, data; | 410 | int *iarg = arg, data; |
411 | int temp_input; | ||
412 | |||
413 | /* Here we back up the input selection because it gets | ||
414 | overwritten when we fill the registers with the | ||
415 | choosen video norm */ | ||
416 | temp_input = vpx3220_fp_read(client, 0xf2); | ||
411 | 417 | ||
412 | dprintk(1, KERN_DEBUG "%s: DECODER_SET_NORM %d\n", | 418 | dprintk(1, KERN_DEBUG "%s: DECODER_SET_NORM %d\n", |
413 | I2C_NAME(client), *iarg); | 419 | I2C_NAME(client), *iarg); |
@@ -447,6 +453,10 @@ vpx3220_command (struct i2c_client *client, | |||
447 | 453 | ||
448 | } | 454 | } |
449 | decoder->norm = *iarg; | 455 | decoder->norm = *iarg; |
456 | |||
457 | /* And here we set the backed up video input again */ | ||
458 | vpx3220_fp_write(client, 0xf2, temp_input | 0x0010); | ||
459 | udelay(10); | ||
450 | } | 460 | } |
451 | break; | 461 | break; |
452 | 462 | ||