> John,
>
> I installed ivtv 0.3.6y with your patch (ivtv-0.3.6y.diffs) and
> ivtvdev_drv.o 0.10.4 last night. I tried watching a movie in MythVideo and
> was able to get sound but no picture (I made sure that I played a MPEG2
> recording first to initialize the driver). After attempting to watch the
> video, I tried watching an MPEG2 recording in MythTV and got a moving
> picture with no sound for a few seconds before the recording froze. This
> didn't crash my system and I was able to exit out of MythTV. However, I
> did have to reboot to get MythTV working again. Version 0.10.2 was working
> fine for me with ivtv 0.3.6x. I reverted back to 0.10.2 but now I get
> flickering video and sound with the 0.3.6y patched ivtv driver. I have
> attached my Xorg.log for you to see. I don't know how helpful it will be.
> I am in NTSC land.
>
> I also noticed something in your patch that differed from Rob Hardy's fix
> to his own original patch (it's in the positioning of the
> DECLARE_WAITQUEUE statement). I don't know what affect this has but I
> thought I would bring it to your attention.
>
> Your patch (ivtv-0.3.6y.diffs):
> diff -r -u ivtv-0.3.6y/driver/ivtv-streams.c
> ivtv-0.3.6y.new/driver/ivtv-streams.c
> --- ivtv-0.3.6y/driver/ivtv-streams.c 2005-06-29 13:27:26.000000000 +0100
> +++ ivtv-0.3.6y.new/driver/ivtv-streams.c 2005-07-10
> 21:51:05.000000000 +0100
> @@ -1321,11 +1321,11 @@
> int stopmode;
> u32 data[IVTV_MBOX_MAX_DATA], result;
> int thread_to_stop = 0;
> + DECLARE_WAITQUEUE(wait, current);
>
> if (st == NULL)
> return -EINVAL;
>
> - DECLARE_WAITQUEUE(wait, current);
>
> /* This function assumes that you are allowed to stop the capture
> and that we are actually capturing */
>
> Rob Hardy's fix (ivtv-0.3.6y-fix-interruptible-and-warning.patch.bz2):
> diff -urNbBp ivtv-0.3.6y/driver/ivtv-kthreads.c.orig
> ivtv-0.3.6y/driver/ivtv-kthreads.c
> --- ivtv-0.3.6y/driver/ivtv-kthreads.c.orig 2005-07-05 10:09:09.000000000
> -0400
> +++ ivtv-0.3.6y/driver/ivtv-kthreads.c 2005-07-09 13:54:47.000000000 -0400
>
> @@ -153,7 +153,6 @@ static int ivtv_dualwatch_kthread(void *
> ivtv_dualwatch_init_kthread(ivtv);
>
> for (;;) {
> - interruptible_sleep_on_timeout(&kthread->queue, HZ);
> prepare_to_wait(&kthread->queue, &wait, TASK_INTERRUPTIBLE);
> schedule_timeout(HZ);
> finish_wait(&kthread->queue, &wait);
> diff -urNbBp ivtv-0.3.6y/driver/ivtv-streams.c.orig
> ivtv-0.3.6y/driver/ivtv-streams.c
> --- ivtv-0.3.6y/driver/ivtv-streams.c.orig 2005-07-09 14:00:58.000000000
> -0400
> +++ ivtv-0.3.6y/driver/ivtv-streams.c 2005-07-09 14:00:58.000000000 -0400
> @@ -1313,6 +1313,7 @@ int ivtv_stop_all_captures(struct ivtv *
>
> int ivtv_stop_capture(struct ivtv *itv, int type)
> {
> + DECLARE_WAITQUEUE(wait, current);
> struct ivtv_stream *st = ivtv_stream_safeget(
> "ivtv_stop_capture", itv, type);
> int cap_type;
> @@ -1325,8 +1326,6 @@ int ivtv_stop_capture(struct ivtv *itv,
> if (st == NULL)
> return -EINVAL;
>
> - DECLARE_WAITQUEUE(wait, current);
> -
> /* This function assumes that you are allowed to stop the capture
> and that we are actually capturing */
>
> Thanks again for all your hard work.
>
> Jim
>
> <<Xorg.0.log.bz2>>
Xorg.0.log.bz2
Description: Binary data
