aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/media/video/msp3400-driver.c2
-rw-r--r--drivers/media/video/msp3400-driver.h1
-rw-r--r--drivers/media/video/msp3400-kthreads.c5
3 files changed, 6 insertions, 2 deletions
diff --git a/drivers/media/video/msp3400-driver.c b/drivers/media/video/msp3400-driver.c
index 56246b8578f3..cf43df3fe708 100644
--- a/drivers/media/video/msp3400-driver.c
+++ b/drivers/media/video/msp3400-driver.c
@@ -904,6 +904,8 @@ static int msp_attach(struct i2c_adapter *adapter, int address, int kind)
904 state->has_virtual_dolby_surround = msp_revision == 'G' && msp_prod_lo == 1; 904 state->has_virtual_dolby_surround = msp_revision == 'G' && msp_prod_lo == 1;
905 /* Has Virtual Dolby Surround & Dolby Pro Logic: only in msp34x2 */ 905 /* Has Virtual Dolby Surround & Dolby Pro Logic: only in msp34x2 */
906 state->has_dolby_pro_logic = msp_revision == 'G' && msp_prod_lo == 2; 906 state->has_dolby_pro_logic = msp_revision == 'G' && msp_prod_lo == 2;
907 /* The msp343xG supports BTSC only and cannot do Automatic Standard Detection. */
908 state->force_btsc = msp_family == 3 && msp_revision == 'G' && msp_prod_hi == 3;
907 909
908 state->opmode = opmode; 910 state->opmode = opmode;
909 if (state->opmode == OPMODE_AUTO) { 911 if (state->opmode == OPMODE_AUTO) {
diff --git a/drivers/media/video/msp3400-driver.h b/drivers/media/video/msp3400-driver.h
index 545e4ac094f2..7531efa1615e 100644
--- a/drivers/media/video/msp3400-driver.h
+++ b/drivers/media/video/msp3400-driver.h
@@ -64,6 +64,7 @@ struct msp_state {
64 u8 has_sound_processing; 64 u8 has_sound_processing;
65 u8 has_virtual_dolby_surround; 65 u8 has_virtual_dolby_surround;
66 u8 has_dolby_pro_logic; 66 u8 has_dolby_pro_logic;
67 u8 force_btsc;
67 68
68 int radio; 69 int radio;
69 int opmode; 70 int opmode;
diff --git a/drivers/media/video/msp3400-kthreads.c b/drivers/media/video/msp3400-kthreads.c
index ed02ff811388..4c7f85b566a0 100644
--- a/drivers/media/video/msp3400-kthreads.c
+++ b/drivers/media/video/msp3400-kthreads.c
@@ -960,9 +960,10 @@ int msp34xxg_thread(void *data)
960 960
961 /* setup the chip*/ 961 /* setup the chip*/
962 msp34xxg_reset(client); 962 msp34xxg_reset(client);
963 state->std = state->radio ? 0x40 : msp_standard; 963 state->std = state->radio ? 0x40 :
964 /* start autodetect */ 964 (state->force_btsc && msp_standard == 1) ? 32 : msp_standard;
965 msp_write_dem(client, 0x20, state->std); 965 msp_write_dem(client, 0x20, state->std);
966 /* start autodetect */
966 if (state->std != 1) 967 if (state->std != 1)
967 goto unmute; 968 goto unmute;
968 969