diff options
| -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 | ||
