> OK, I'm following the instructions at
>
> http://www.linuxtv.org/repo/
>
> and have downloaded v4l-dvb-bc48fbd0ea86.tar.gz. It looks like all I
> have to do is "make" and "make reload" to test it all, and "make
> install" to install the modules permanently. It seems that it should be
> compatible with my 2.6.18-3 kernel.
>
> Sound reasonable? I won't get to try this until tonight.
>
> ...RickM...

This is probably your best option and may also give you additional bugfixes.
But just in (the unfortunate) case that this doesn 't work, you can also
just apply the attached patch to your kernel ("refreshed" for 2.6.18.3):

cd linux-2.6.18.3
patch -Np1 -i 
../4982_fix_broken_audio_mode_handling_for_line_in_in_msp3400.patch

or the way the pros are doing it (not refering to me obviously)
install quilt
cd linux-2.6.18.3
quilt 
import ../4982_fix_broken_audio_mode_handling_for_line_in_in_msp3400.patch
<The quilt import ... is a single line> 
quilt push

then the patch will be kept in the patches/ subdirectory of linux-2.6.18.3/
and you can push/pop/combine it with other patches at any time super-easily
(at least compared to the other options).

Please post if this fixes FM stereo for you :-)

-Pantelis
# HG changeset patch
# User Hans Verkuil <[EMAIL PROTECTED]>
# Date 1166458708 -3600
# Node ID ec5a9f0bca164ccf62399b37394d7a98f7e9be3d
# Parent  189eba1e1d01c003e788855cabfb96e3b80fd6c1
Fix broken audio mode handling for line-in in msp3400.

From: Hans Verkuil <[EMAIL PROTECTED]>

The wrong matrix was used when an external input was selected instead of
the tuner input. The rxsubchans field was also not initialized to STEREO
for an external input. And finally the msp34xxg_detect_stereo() should
not try to detect stereo for an external input, that code is for the
tuner input only.

Together these bugs made it hit 'n miss whether you ever got stereo out
of the msp3400 for an external input.

Signed-off-by: Hans Verkuil <[EMAIL PROTECTED]>

Index: linux-2.6.18.3/drivers/media/video/msp3400-driver.c
===================================================================
--- linux-2.6.18.3.orig/drivers/media/video/msp3400-driver.c	2007-02-01 10:48:39.000000000 +0200
+++ linux-2.6.18.3/drivers/media/video/msp3400-driver.c	2007-02-01 10:49:42.000000000 +0200
@@ -633,10 +633,8 @@
 			if (((rt->input >> (4 + i * 4)) & 0xf) == 0)
 				extern_input = 0;
 		}
-		if (extern_input)
-			state->mode = MSP_MODE_EXTERN;
-		else
-			state->mode = MSP_MODE_AM_DETECT;
+		state->mode = extern_input ? MSP_MODE_EXTERN : MSP_MODE_AM_DETECT;
+		state->rxsubchans = V4L2_TUNER_SUB_STEREO;
 		msp_set_scart(client, sc_in, 0);
 		msp_set_scart(client, sc1_out, 1);
 		msp_set_scart(client, sc2_out, 2);
Index: linux-2.6.18.3/drivers/media/video/msp3400-kthreads.c
===================================================================
--- linux-2.6.18.3.orig/drivers/media/video/msp3400-kthreads.c	2007-02-01 10:48:39.000000000 +0200
+++ linux-2.6.18.3/drivers/media/video/msp3400-kthreads.c	2007-02-01 10:49:42.000000000 +0200
@@ -483,7 +483,6 @@
 			/* no carrier scan, just unmute */
 			v4l_dbg(1, msp_debug, client, "thread: no carrier scan\n");
 			state->scan_in_progress = 0;
-			state->rxsubchans = V4L2_TUNER_SUB_STEREO;
 			msp_set_audio(client);
 			continue;
 		}
@@ -851,12 +850,15 @@
 		source = 1; /* stereo or A|B */
 		matrix = 0x20;
 		break;
-	case V4L2_TUNER_MODE_STEREO:
 	case V4L2_TUNER_MODE_LANG1:
-	default:
 		source = 3; /* stereo or A */
 		matrix = 0x00;
 		break;
+	case V4L2_TUNER_MODE_STEREO:
+	default:
+		source = 3; /* stereo or A */
+		matrix = 0x20;
+		break;
 	}
 
 	if (in == MSP_DSP_IN_TUNER)
@@ -1030,6 +1032,9 @@
 	int is_stereo = status & 0x40;
 	int oldrx = state->rxsubchans;
 
+	if (state->mode == MSP_MODE_EXTERN)
+		return 0;
+
 	state->rxsubchans = 0;
 	if (is_stereo)
 		state->rxsubchans = V4L2_TUNER_SUB_STEREO;
_______________________________________________
pvrusb2 mailing list
[email protected]
http://www.isely.net/cgi-bin/mailman/listinfo/pvrusb2

Reply via email to