aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/media/video/msp3400-driver.c6
-rw-r--r--drivers/media/video/msp3400-kthreads.c11
2 files changed, 10 insertions, 7 deletions
diff --git a/drivers/media/video/msp3400-driver.c b/drivers/media/video/msp3400-driver.c
index e1b56dc13c3f..295cb994beb0 100644
--- a/drivers/media/video/msp3400-driver.c
+++ b/drivers/media/video/msp3400-driver.c
@@ -633,10 +633,8 @@ static int msp_command(struct i2c_client *client, unsigned int cmd, void *arg)
633 if (((rt->input >> (4 + i * 4)) & 0xf) == 0) 633 if (((rt->input >> (4 + i * 4)) & 0xf) == 0)
634 extern_input = 0; 634 extern_input = 0;
635 } 635 }
636 if (extern_input) 636 state->mode = extern_input ? MSP_MODE_EXTERN : MSP_MODE_AM_DETECT;
637 state->mode = MSP_MODE_EXTERN; 637 state->rxsubchans = V4L2_TUNER_SUB_STEREO;
638 else
639 state->mode = MSP_MODE_AM_DETECT;
640 msp_set_scart(client, sc_in, 0); 638 msp_set_scart(client, sc_in, 0);
641 msp_set_scart(client, sc1_out, 1); 639 msp_set_scart(client, sc1_out, 1);
642 msp_set_scart(client, sc2_out, 2); 640 msp_set_scart(client, sc2_out, 2);
diff --git a/drivers/media/video/msp3400-kthreads.c b/drivers/media/video/msp3400-kthreads.c
index 4c7f85b566a0..e1821eb82fb5 100644
--- a/drivers/media/video/msp3400-kthreads.c
+++ b/drivers/media/video/msp3400-kthreads.c
@@ -483,7 +483,6 @@ int msp3400c_thread(void *data)
483 /* no carrier scan, just unmute */ 483 /* no carrier scan, just unmute */
484 v4l_dbg(1, msp_debug, client, "thread: no carrier scan\n"); 484 v4l_dbg(1, msp_debug, client, "thread: no carrier scan\n");
485 state->scan_in_progress = 0; 485 state->scan_in_progress = 0;
486 state->rxsubchans = V4L2_TUNER_SUB_STEREO;
487 msp_set_audio(client); 486 msp_set_audio(client);
488 continue; 487 continue;
489 } 488 }
@@ -851,12 +850,15 @@ static void msp34xxg_set_source(struct i2c_client *client, u16 reg, int in)
851 source = 1; /* stereo or A|B */ 850 source = 1; /* stereo or A|B */
852 matrix = 0x20; 851 matrix = 0x20;
853 break; 852 break;
854 case V4L2_TUNER_MODE_STEREO:
855 case V4L2_TUNER_MODE_LANG1: 853 case V4L2_TUNER_MODE_LANG1:
856 default:
857 source = 3; /* stereo or A */ 854 source = 3; /* stereo or A */
858 matrix = 0x00; 855 matrix = 0x00;
859 break; 856 break;
857 case V4L2_TUNER_MODE_STEREO:
858 default:
859 source = 3; /* stereo or A */
860 matrix = 0x20;
861 break;
860 } 862 }
861 863
862 if (in == MSP_DSP_IN_TUNER) 864 if (in == MSP_DSP_IN_TUNER)
@@ -1030,6 +1032,9 @@ static int msp34xxg_detect_stereo(struct i2c_client *client)
1030 int is_stereo = status & 0x40; 1032 int is_stereo = status & 0x40;
1031 int oldrx = state->rxsubchans; 1033 int oldrx = state->rxsubchans;
1032 1034
1035 if (state->mode == MSP_MODE_EXTERN)
1036 return 0;
1037
1033 state->rxsubchans = 0; 1038 state->rxsubchans = 0;
1034 if (is_stereo) 1039 if (is_stereo)
1035 state->rxsubchans = V4L2_TUNER_SUB_STEREO; 1040 state->rxsubchans = V4L2_TUNER_SUB_STEREO;