Package: ivtv-source Version: 0.8.2-2 Severity: normal This patch nneeds conditionals to make sure it is only applied in 2.6.20 and up, but it is a Works For Me(TM) patch.
Thanks, -- System Information: Debian Release: 4.0 APT prefers testing APT policy: (990, 'testing') Architecture: i386 (i686) Shell: /bin/sh linked to /bin/bash Kernel: Linux 2.6.20-rc5-686 Locale: LANG=en_US.UTF8, LC_CTYPE=en_US.UTF8 (charmap=UTF-8) (ignored: LC_ALL set to en_US.UTF8) Versions of packages ivtv-source depends on: ii bzip2 1.0.3-6 high-quality block-sorting file co ii debhelper 5.0.42 helper programs for debian/rules ii dpatch 2.0.21 patch maintenance system for Debia ii module-assistant 0.10.8 tool to make module package creati ivtv-source recommends no packages. -- no debconf information -- ----------------------------------------------------------------- | ,''`. Stephen Gran | | : :' : [EMAIL PROTECTED] | | `. `' Debian user, admin, and developer | | `- http://www.debian.org | -----------------------------------------------------------------
diff -x debian -Nru /usr/src/modules/ivtv/driver/ivtv-driver.c
modules/ivtv/driver/ivtv-driver.c
--- /usr/src/modules/ivtv/driver/ivtv-driver.c 2006-11-25 21:20:43.000000000
+0000
+++ modules/ivtv/driver/ivtv-driver.c 2007-01-28 15:10:00.000000000 +0000
@@ -696,7 +696,7 @@
IVTV_ERR("Could not create VBI workqueue\n");
return -1;
}
- INIT_WORK(&itv->vbi_work_queue, vbi_work_handler, itv);
+ INIT_DELAYED_WORK(&itv->vbi_work_queue, vbi_work_handler);
#else
INIT_TQUEUE(&itv->vbi_work_queue, vbi_work_handler, itv);
#endif
diff -x debian -Nru /usr/src/modules/ivtv/driver/ivtv-driver.h
modules/ivtv/driver/ivtv-driver.h
--- /usr/src/modules/ivtv/driver/ivtv-driver.h 2006-11-19 12:07:58.000000000
+0000
+++ modules/ivtv/driver/ivtv-driver.h 2007-01-28 15:07:02.000000000 +0000
@@ -1016,7 +1016,7 @@
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
struct workqueue_struct *vbi_work_queues;
- struct work_struct vbi_work_queue;
+ struct delayed_work vbi_work_queue;
#else
struct tq_struct vbi_work_queue;
#endif
diff -x debian -Nru /usr/src/modules/ivtv/driver/ivtv-kthreads.c
modules/ivtv/driver/ivtv-kthreads.c
--- /usr/src/modules/ivtv/driver/ivtv-kthreads.c 2006-11-19
12:07:58.000000000 +0000
+++ modules/ivtv/driver/ivtv-kthreads.c 2007-01-28 15:35:21.000000000 +0000
@@ -345,9 +345,9 @@
return bytes_received;
}
-static void enc_work_handler(void *arg)
+static void enc_work_handler(struct work_struct *arg)
{
- struct ivtv *itv = (struct ivtv *)arg;
+ struct ivtv *itv = container_of(arg, struct ivtv, vbi_work_queue.work);
/* VIDEO or VBI */
set_bit(IVTV_F_T_ENC_RUNNING, &itv->t_flags);
@@ -359,9 +359,9 @@
return;
}
-static void enc_vbi_work_handler(void *arg)
+static void enc_vbi_work_handler(struct work_struct *arg)
{
- struct ivtv *itv = (struct ivtv *)arg;
+ struct ivtv *itv = container_of(arg, struct ivtv, vbi_work_queue.work);
/* ENC VBI */
set_bit(IVTV_F_T_ENC_VBI_RUNNING, &itv->t_flags);
@@ -373,9 +373,9 @@
return;
}
-static void dec_vbi_work_handler(void *arg)
+static void dec_vbi_work_handler(struct work_struct *arg)
{
- struct ivtv *itv = (struct ivtv *)arg;
+ struct ivtv *itv = container_of(arg, struct ivtv, vbi_work_queue.work);
/* DEC VBI */
set_bit(IVTV_F_T_DEC_VBI_RUNNING, &itv->t_flags);
@@ -387,9 +387,9 @@
return;
}
-static void dec_work_handler(void *arg)
+static void dec_work_handler(struct work_struct *arg)
{
- struct ivtv *itv = (struct ivtv *)arg;
+ struct ivtv *itv = container_of(arg, struct ivtv, vbi_work_queue.work);
int type = IVTV_DEC_STREAM_TYPE_MPG;
struct ivtv_stream *stream;
int ret = -1;
@@ -1080,7 +1080,7 @@
if (atomic_read(&itv->dec_thread_running) == 0)
break;
- dec_work_handler(itv);
+ dec_work_handler(&itv->vbi_work_queue.work);
}
itv->dec_thread_pid = 0;
return 0;
@@ -1138,7 +1138,7 @@
if (atomic_read(&itv->enc_thread_running) == 0)
break;
- enc_work_handler(itv);
+ enc_work_handler(&itv->vbi_work_queue.work);
}
itv->enc_thread_pid = 0;
return 0;
@@ -1196,7 +1196,7 @@
if (atomic_read(&itv->enc_vbi_thread_running) == 0)
break;
- enc_vbi_work_handler(itv);
+ enc_vbi_work_handler(&itv->vbi_work_queue.work);
}
itv->enc_vbi_thread_pid = 0;
return 0;
@@ -1254,7 +1254,7 @@
if (atomic_read(&itv->dec_vbi_thread_running) == 0)
break;
- dec_vbi_work_handler(itv);
+ dec_vbi_work_handler(&itv->vbi_work_queue.work);
}
itv->dec_vbi_thread_pid = 0;
return 0;
diff -x debian -Nru /usr/src/modules/ivtv/driver/ivtv-vbi.c
modules/ivtv/driver/ivtv-vbi.c
--- /usr/src/modules/ivtv/driver/ivtv-vbi.c 2006-04-19 22:34:16.000000000
+0100
+++ modules/ivtv/driver/ivtv-vbi.c 2007-01-28 15:34:33.000000000 +0000
@@ -79,7 +79,7 @@
void vbi_schedule_work(struct ivtv *itv)
{
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
- queue_work(itv->vbi_work_queues, &itv->vbi_work_queue);
+ queue_delayed_work(itv->vbi_work_queues, &itv->vbi_work_queue, 0);
#else
ivtv_schedule_work(&itv->vbi_work_queue);
#endif
@@ -593,9 +593,9 @@
vbi_schedule_work(itv);
}
-void vbi_work_handler(void *arg)
+void vbi_work_handler(struct work_struct *arg)
{
- struct ivtv *itv = arg;
+ struct ivtv *itv = container_of(arg, struct ivtv, vbi_work_queue.work);
struct v4l2_sliced_vbi_data data;
int count = 0;
diff -x debian -Nru /usr/src/modules/ivtv/driver/ivtv-vbi.h
modules/ivtv/driver/ivtv-vbi.h
--- /usr/src/modules/ivtv/driver/ivtv-vbi.h 2005-11-04 23:25:13.000000000
+0000
+++ modules/ivtv/driver/ivtv-vbi.h 2007-01-28 15:28:10.000000000 +0000
@@ -26,5 +26,5 @@
void ivtv_disable_vbi(struct ivtv *itv);
void ivtv_set_vbi(unsigned long arg);
void vbi_setup_lcr(struct ivtv *itv, int set, int is_pal, struct
v4l2_sliced_vbi_format *fmt);
-void vbi_work_handler(void *arg);
+void vbi_work_handler(struct work_struct *arg);
void vbi_schedule_work(struct ivtv *itv);
signature.asc
Description: Digital signature

