summaryrefslogtreecommitdiff
path: root/v4l
diff options
context:
space:
mode:
Diffstat (limited to 'v4l')
-rw-r--r--v4l/Makefile4
-rw-r--r--v4l/compat.h19
-rw-r--r--v4l/scripts/changelog.tmpl5
-rwxr-xr-xv4l/scripts/make_kconfig.pl51
-rw-r--r--v4l/scripts/map-changelog1
-rw-r--r--v4l/versions.txt123
6 files changed, 113 insertions, 90 deletions
diff --git a/v4l/Makefile b/v4l/Makefile
index 663369674..63d3fe48a 100644
--- a/v4l/Makefile
+++ b/v4l/Makefile
@@ -356,7 +356,7 @@ help::
RPWD := $(shell cd .. && pwd)
thisdir := $(notdir $(RPWD))
-name := $(thisdir)
+name := v4l-dvb
date := $(shell date +%Y%m%d)
tardest ?= .
@@ -368,5 +368,5 @@ snapshot snap tarball:: update distclean
echo $(name)
echo $(date) > .snapshot
(cd ..; tar czf $(snapdir)/$(snap)-$(date).tar.gz .)
- cp ChangeLog /$(snapdir)/$(snap)-ChangeLog-$(date)
+ hg history --style scripts/map-changelog > /$(snapdir)/$(snap)-ChangeLog-$(date)
$(MAKE) -C $(snapdir)
diff --git a/v4l/compat.h b/v4l/compat.h
index ae34380e0..9918f2e46 100644
--- a/v4l/compat.h
+++ b/v4l/compat.h
@@ -249,6 +249,11 @@ static inline unsigned long vmalloc_to_pfn(void * vmalloc_addr)
#endif
#endif
+/* The class_device system didn't appear until 2.5.69 */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
+#define class_device_create_file(a, b) (0)
+#endif
+
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,13)
# define class_device_create(a, b, c, d, e, f, g, h) class_simple_device_add(a, c, d, e, f, g, h)
# define class_device_destroy(a, b) class_simple_device_remove(b)
@@ -274,6 +279,20 @@ static inline unsigned long vmalloc_to_pfn(void * vmalloc_addr)
#define mutex_trylock(a) down_trylock(a)
#endif
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,14)
+static inline signed long __sched
+schedule_timeout_interruptible(signed long timeout)
+{
+ __set_current_state(TASK_INTERRUPTIBLE);
+ return schedule_timeout(timeout);
+}
+#endif
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18)
+#define IRQF_SHARED SA_SHIRQ
+#define IRQF_DISABLED SA_INTERRUPT
+#endif
+
#endif
/*
* Local variables:
diff --git a/v4l/scripts/changelog.tmpl b/v4l/scripts/changelog.tmpl
new file mode 100644
index 000000000..c1e5cb176
--- /dev/null
+++ b/v4l/scripts/changelog.tmpl
@@ -0,0 +1,5 @@
+User #author#
+Date #date|date#
+#desc#
+
+---
diff --git a/v4l/scripts/make_kconfig.pl b/v4l/scripts/make_kconfig.pl
index d5b34b36c..771efa63d 100755
--- a/v4l/scripts/make_kconfig.pl
+++ b/v4l/scripts/make_kconfig.pl
@@ -9,7 +9,7 @@ my %hexopt = ();
my %tristate = ();
my %kernopts = ();
my %depmods = ();
-my $version, $level, $sublevel;
+my $version, $level, $sublevel, $kernver;
my $kernel=shift;
my $force_kconfig=shift;
@@ -282,24 +282,14 @@ EOF
$key=$1;
add_config ($1);
- my $min=$minver { $key };
- my $minversion, $minlevel, $minsublevel;
- if ($min =~ m/(\d+)\.(\d+)\.(\d+)/) {
- $minversion=$1;
- $minlevel=$2;
- $minsublevel=$3;
- } else {
- die "Minimum version for $key not found at versions.txt";
- }
- if ( ($version < $minversion) ||
- ($level < $minlevel) ||
- ($sublevel < $minsublevel) ) {
+ if (exists $minver{$key} &&
+ cmp_ver($minver{$key}, $kernver) > 0) {
$disabled=1;
disable_config ($key);
- print "$key requires version $minversion.$minlevel.$minsublevel\n";
+ print "$key requires version $minver{$key}\n";
print OUT "# $key disabled for insufficient kernel version\n";
} else {
-# print "OK: $key requires version $minversion.$minlevel.$minsublevel\n";
+# printf "OK: $key requires version %s\n", exists $minver{$key}?$minver{$key}:"any";
$disabled=0;
}
}
@@ -318,19 +308,31 @@ sub parse_versions ()
open $in,"versions.txt" or die "File not found: versions.txt";
while (<$in>) {
- if (m/\[([\d.]*)\]/) {
- $ver=$1;
- next;
- }
- s/\n//;
- if (m/^\s*([\w\d_]+)/) {
- $minver { $1 } = $ver;
-# printf ("%s=%s\n",$1,$ver);
+ if (/\[(\d+\.\d+\.\d+)\]/) {
+ $ver = $1;
+ } elsif (/^\s*(\w+)/) {
+ $minver{$1} = $ver;
+# print "$1=$ver\n";
}
}
close $in;
}
+# Like ver1 <=> ver2, but understands X.Y.Z version strings
+sub cmp_ver($$)
+{
+ shift =~ /(\d+)\.(\d+)\.(\d+)/;
+ my ($v1_ver,$v1_level,$v1_sublevel) = ($1,$2,$3);
+ shift =~ /(\d+)\.(\d+)\.(\d+)/;
+ my ($v2_ver,$v2_level,$v2_sublevel) = ($1,$2,$3);
+
+ my $cmp = $v1_ver <=> $v2_ver;
+ return $cmp unless($cmp == 0);
+ $cmp = $v1_level <=> $v2_level;
+ return $cmp unless($cmp == 0);
+ return $v1_sublevel <=> $v2_sublevel;
+}
+
process_config("linux/config.h");
parse_versions;
@@ -341,11 +343,12 @@ while (<IN>) {
$version=$1;
$level=$2;
$sublevel=$3;
+ $kernver="$version.$level.$sublevel";
}
}
close IN;
-printf "Preparing to compile for kernel version %d.%d.%d\n",$version,$level,$sublevel;
+print "Preparing to compile for kernel version $kernver\n";
open OUT,">Kconfig" or die "Cannot write Kconfig file";
diff --git a/v4l/scripts/map-changelog b/v4l/scripts/map-changelog
new file mode 100644
index 000000000..cc5caeb1c
--- /dev/null
+++ b/v4l/scripts/map-changelog
@@ -0,0 +1 @@
+changeset = changelog.tmpl
diff --git a/v4l/versions.txt b/v4l/versions.txt
index 0d7c9e5dc..80e96096c 100644
--- a/v4l/versions.txt
+++ b/v4l/versions.txt
@@ -6,80 +6,40 @@ VIDEO_ZR36120
# This is also marked as broken
VIDEO_PLANB
-[2.6.16]
-VIDEO_USBVIDEO
-USB_VICAM
-USB_IBMCAM
-USB_KONICAWC
-USB_QUICKCAM_MESSENGER
-USB_ET61X251
-USB_PWC
-USB_PWC_DEBUG
-USB_ZC0301
-VIDEO_ZORAN_AVS6EYES
-VIDEO_TLV320AIC23B
+
+# DVB_CORE_ATTACH relies on symbol_put_addr which hangs pre-2.6.17
+[2.6.17]
+DVB_CORE_ATTACH
# Those are architecture-dependent
+[2.6.16]
VIDEO_VINO
VIDEO_M32R_AR_M64278
-[2.6.14]
-VIDEO_ZORAN
+# Changes in struct i2c_driver, i2c_add_driver()
+[2.6.16]
VIDEO_ZORAN_BUZ
VIDEO_ZORAN_DC10
VIDEO_ZORAN_DC30
VIDEO_ZORAN_LML33
VIDEO_ZORAN_LML33R10
+VIDEO_ZORAN_AVS6EYES
VIDEO_SAA5246A
VIDEO_SAA5249
-VIDEO_BWQCAM
-VIDEO_CQCAM
-VIDEO_W9966
-VIDEO_PMS
-VIDEO_STRADIS
-VIDEO_CPIA
-VIDEO_CPIA_PP
-VIDEO_CPIA_USB
-VIDEO_MEYE
VIDEO_MXB
VIDEO_DPC
+VIDEO_OVCAMCHIP
TUNER_3036
-USB_DABUSB
-USB_DSBR
-USB_OV511
-USB_SE401
-USB_STV680
-USB_W9968CF
-VIDEO_M32R_AR
-RADIO_CADET
-RADIO_RTRACK
-RADIO_RTRACK_PORT
-RADIO_RTRACK2
-RADIO_RTRACK2_PORT
-RADIO_AZTECH
-RADIO_AZTECH_PORT
-RADIO_GEMTEK
-RADIO_GEMTEK_PORT
-RADIO_GEMTEK_PCI
-RADIO_MAXIRADIO
-RADIO_MAESTRO
-RADIO_MIROPCM20
-RADIO_MIROPCM20_RDS
-RADIO_SF16FMI
-RADIO_SF16FMR2
-RADIO_TERRATEC
-RADIO_TERRATEC_PORT
-RADIO_TRUST
-RADIO_TRUST_PORT
-RADIO_TYPHOON
-RADIO_TYPHOON_PROC_FS
-RADIO_TYPHOON_PORT
-RADIO_TYPHOON_MUTEFREQ
-RADIO_ZOLTRIX
-RADIO_ZOLTRIX_PORT
-[2.6.13]
-USB_SN9C102
+# Changes to usb_input.h, struct input_dev
+[2.6.15]
+USB_KONICAWC
+USB_QUICKCAM_MESSENGER
+
+# Uses vm_insert_page()
+[2.6.15]
+USB_ZC0301
+USB_ET61X251
[2.6.12]
VIDEO_VIVI
@@ -116,7 +76,6 @@ VIDEO_CX88_DVB_CX22702
VIDEO_CX88_DVB_LGDT330X
VIDEO_CX88_DVB_NXT200X
VIDEO_CX88_DVB_CX24123
-VIDEO_OVCAMCHIP
VIDEO_MSP3400
VIDEO_CS53L32A
VIDEO_WM8775
@@ -159,11 +118,6 @@ DVB_TTUSB_BUDGET
DVB_TTUSB_DEC
DVB_CINERGYT2
DVB_CINERGYT2_TUNING
-DVB_CINERGYT2_STREAM_URB_COUNT
-DVB_CINERGYT2_STREAM_BUF_SIZE
-DVB_CINERGYT2_QUERY_INTERVAL
-DVB_CINERGYT2_ENABLE_RC_INPUT_DEVICE
-DVB_CINERGYT2_RC_QUERY_INTERVAL
DVB_B2C2_FLEXCOP
DVB_B2C2_FLEXCOP_PCI
DVB_B2C2_FLEXCOP_USB
@@ -209,3 +163,44 @@ VIDEO_BTCX
VIDEO_IR
VIDEO_TVEEPROM
VIDEO_CX2341X
+VIDEO_USBVIDEO
+USB_VICAM
+USB_IBMCAM
+VIDEO_TLV320AIC23B
+USB_PWC
+USB_PWC_DEBUG
+VIDEO_ZORAN
+VIDEO_BWQCAM
+VIDEO_CQCAM
+VIDEO_W9966
+VIDEO_PMS
+VIDEO_STRADIS
+VIDEO_CPIA
+VIDEO_CPIA_PP
+VIDEO_CPIA_USB
+VIDEO_MEYE
+USB_DABUSB
+USB_DSBR
+USB_OV511
+USB_SE401
+USB_STV680
+USB_W9968CF
+VIDEO_M32R_AR
+RADIO_CADET
+RADIO_RTRACK
+RADIO_RTRACK2
+RADIO_AZTECH
+RADIO_GEMTEK
+RADIO_GEMTEK_PCI
+RADIO_MAXIRADIO
+RADIO_MAESTRO
+RADIO_MIROPCM20
+RADIO_MIROPCM20_RDS
+RADIO_SF16FMI
+RADIO_SF16FMR2
+RADIO_TERRATEC
+RADIO_TRUST
+RADIO_TYPHOON
+RADIO_TYPHOON_PROC_FS
+RADIO_ZOLTRIX
+USB_SN9C102