diff options
Diffstat (limited to 'v4l')
-rw-r--r-- | v4l/Makefile | 6 | ||||
-rw-r--r-- | v4l/Makefile.kernel | 6 | ||||
-rw-r--r-- | v4l/compat.h | 67 | ||||
-rw-r--r-- | v4l/scripts/changelog.tmpl | 5 | ||||
-rwxr-xr-x | v4l/scripts/check_config_defines.pl | 62 | ||||
-rwxr-xr-x | v4l/scripts/hghead.pl | 2 | ||||
-rwxr-xr-x | v4l/scripts/make_kconfig.pl | 95 | ||||
-rwxr-xr-x | v4l/scripts/make_myconfig.pl | 2 | ||||
-rwxr-xr-x | v4l/scripts/makelinks.sh | 20 | ||||
-rw-r--r-- | v4l/scripts/map-changelog | 1 | ||||
-rwxr-xr-x | v4l/scripts/rmmod.pl | 62 | ||||
-rw-r--r-- | v4l/versions.txt | 125 |
12 files changed, 265 insertions, 188 deletions
diff --git a/v4l/Makefile b/v4l/Makefile index 663369674..3e9336a95 100644 --- a/v4l/Makefile +++ b/v4l/Makefile @@ -33,7 +33,7 @@ endif default:: config-compat.h Makefile.media links .version echo srcdir $(SRCDIR) $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) $(MYCFLAGS) modules - + ./scripts/rmmod.pl check ################################################# # Object specific rules @@ -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/Makefile.kernel b/v4l/Makefile.kernel index b01c17f55..bbcfdc6d3 100644 --- a/v4l/Makefile.kernel +++ b/v4l/Makefile.kernel @@ -1,8 +1,8 @@ -# This Makefile is used to build sources that are part of the kernel tree. +# This Makefile is used to build sources that are part of the kernel tree. # What we want are the various programs used by the kconfig system. We can't # just directly call the top-level kernel Makefile, as it doesn't provide # targets to only build the kconfig system. It provides targets to build -# the kconfig system *and then configure the kernel*. +# the kconfig system *and then configure the kernel*. # What we do is include the top-level kernel Makefile here, to get all the # variables and rules it defines, and then add our own targets to just build @@ -32,7 +32,7 @@ v4l-qconf: scripts_basic # Used by the qconfig target v4l-gconf: scripts_basic $(MAKE) $(build)=scripts/kconfig gconf-target=1 scripts/kconfig/gconf - + # Used by the menuconfig target, also needs lxdialog v4l-mconf: scripts_basic $(MAKE) $(build)=scripts/kconfig scripts/kconfig/mconf diff --git a/v4l/compat.h b/v4l/compat.h index ca0a4b886..9918f2e46 100644 --- a/v4l/compat.h +++ b/v4l/compat.h @@ -88,24 +88,24 @@ static inline unsigned long msecs_to_jiffies(const unsigned int m) { #if HZ <= 1000 && !(1000 % HZ) - return (m + (1000 / HZ) - 1) / (1000 / HZ); + return (m + (1000 / HZ) - 1) / (1000 / HZ); #else #if HZ > 1000 && !(HZ % 1000) - return m * (HZ / 1000); + return m * (HZ / 1000); #else - return (m * HZ + 999) / 1000; + return (m * HZ + 999) / 1000; #endif #endif } static inline unsigned int jiffies_to_msecs(const unsigned long j) { #if HZ <= 1000 && !(1000 % HZ) - return (1000 / HZ) * j; + return (1000 / HZ) * j; #else #if HZ > 1000 && !(HZ % 1000) - return (j + (HZ / 1000) - 1)/(HZ / 1000); + return (j + (HZ / 1000) - 1)/(HZ / 1000); #else - return (j * 1000) / HZ; + return (j * 1000) / HZ; #endif #endif } @@ -135,15 +135,15 @@ static inline unsigned long msleep_interruptible(unsigned int msecs) #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) /* some keys from 2.6.x which are not (yet?) in 2.4.x */ # define KEY_PLAY 207 -# define KEY_PRINT 210 +# define KEY_PRINT 210 # define KEY_EMAIL 215 # define KEY_SEARCH 217 -# define KEY_SELECT 0x161 +# define KEY_SELECT 0x161 # define KEY_GOTO 0x162 # define KEY_INFO 0x166 # define KEY_CHANNEL 0x16b # define KEY_LANGUAGE 0x170 -# define KEY_SUBTITLE 0x172 +# define KEY_SUBTITLE 0x172 # define KEY_ZOOM 0x174 # define KEY_MODE 0x175 # define KEY_TV 0x179 @@ -159,7 +159,7 @@ static inline unsigned long msleep_interruptible(unsigned int msecs) # define KEY_BLUE 0x191 # define KEY_CHANNELUP 0x192 # define KEY_CHANNELDOWN 0x193 -# define KEY_RESTART 0x198 +# define KEY_RESTART 0x198 # define KEY_SHUFFLE 0x19a # define KEY_NEXT 0x197 # define KEY_RADIO 0x181 @@ -188,8 +188,8 @@ static inline unsigned long msleep_interruptible(unsigned int msecs) #if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0) #define container_of(ptr, type, member) ({ \ - const typeof( ((type *)0)->member ) *__mptr = (ptr); \ - (type *)( (char *)__mptr - offsetof(type,member) );}) + const typeof( ((type *)0)->member ) *__mptr = (ptr); \ + (type *)( (char *)__mptr - offsetof(type,member) );}) #endif #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,10) @@ -207,12 +207,12 @@ static inline unsigned long vmalloc_to_pfn(void * vmalloc_addr) do { \ DEFINE_WAIT(__wait); \ for (;;) { \ - prepare_to_wait(&wq, &__wait, TASK_UNINTERRUPTIBLE); \ - if (condition) \ - break; \ - __ret = schedule_timeout(__ret); \ - if (!__ret) \ - break; \ + prepare_to_wait(&wq, &__wait, TASK_UNINTERRUPTIBLE); \ + if (condition) \ + break; \ + __ret = schedule_timeout(__ret); \ + if (!__ret) \ + break; \ } \ finish_wait(&wq, &__wait); \ } while (0); \ @@ -231,9 +231,9 @@ static inline unsigned long vmalloc_to_pfn(void * vmalloc_addr) void * __ret = NULL; \ __ret = kmalloc(n * size, flags); \ if (__ret) \ - memset(__ret, 0, n * size); \ + memset(__ret, 0, n * size); \ __ret; \ -}) +}) #endif #endif @@ -241,14 +241,19 @@ static inline unsigned long vmalloc_to_pfn(void * vmalloc_addr) #ifndef kzalloc #define kzalloc(size, flags) \ ({ \ - void *__ret = kmalloc(size, flags); \ - if (__ret) \ - memset(__ret, 0, size); \ - __ret; \ + void *__ret = kmalloc(size, flags); \ + if (__ret) \ + memset(__ret, 0, size); \ + __ret; \ }) #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/check_config_defines.pl b/v4l/scripts/check_config_defines.pl new file mode 100755 index 000000000..91643d23c --- /dev/null +++ b/v4l/scripts/check_config_defines.pl @@ -0,0 +1,62 @@ +#!/usr/bin/perl +# Copyright (C) 2006 Trent Piepho <xyzzy@speakeasy.org> +# +# Look for lines in C files like "#ifdef CONFIG_SOME_KCONF_VAR" and make +# sure CONFIG_SOME_KCONF_VAR is something that exists. + +if($#ARGV < 0) { + print "Usage: $0 kernel_dir [files to check ...]\n\n"; + print "If no files are listed, checks all files from hg manifest\n"; + exit; +} +$kdir = shift; + +if($#ARGV < 0) { + @ARGV = `hg manifest | cut "-d " -f3 | grep '.[ch]\$'`; + $? == 0 and die "Error getting manifest: $!"; + chomp @ARGV; +} + +sub readkconfig($$) +{ + my $fn = "$_[0]/$_[1]"; + # Don't read the same kconfig file more than once + return if exists $kconfigs{$fn}; + $kconfigs{$fn} = 1; +# print "Reading $fn\n"; + my $fh; + open $fh, '<', "$fn" or die "Can't read Kconfig file $fn: $!"; + while(<$fh>) { + if (/^\s*source\s+"([^"]+)"\s*$/ || /^\s*source\s+(\S+)\s*$/) { + readkconfig($_[0], $1); + } elsif(/^config\s+(\w+)$/) { + $vars{"CONFIG_$1"}=1; + } + } + close $fh; +} + +readkconfig('linux', 'drivers/media/Kconfig'); +foreach(glob "$kdir/arch/*/Kconfig") { + s|^\Q$kdir/\E||; + next if(m|arch/um/Kconfig|); + readkconfig($kdir, $_); +} + +while(<>) { + if(/^\s*#ifdef\s+(CONFIG_\w+)(_MODULE)?\W*$/) { +# print "Found $1\n"; + print "Unknown config $1 in $ARGV:$.\n" unless(exists $vars{$1}); + next; + } + if(/^\s*#if/) { + $_ .= <> while(/\\$/); # Handle line continuations + while(/defined\(\s*(CONFIG_\w+?)(_MODULE)?\s*\)/) { + print "Unknown config $1 in $ARGV:$.\n" unless(exists $vars{$1}); + $_ = $'; + } + } + +} continue { + close ARGV if eof; +} diff --git a/v4l/scripts/hghead.pl b/v4l/scripts/hghead.pl index 3f8b4b0ba..fdc9720c6 100755 --- a/v4l/scripts/hghead.pl +++ b/v4l/scripts/hghead.pl @@ -110,7 +110,7 @@ while ($line = <IN>) { next; } - + if ($line =~ m/^Acked-by:.*/) { $signed="$signed$line"; next; diff --git a/v4l/scripts/make_kconfig.pl b/v4l/scripts/make_kconfig.pl index d5b34b36c..b203a2ac0 100755 --- a/v4l/scripts/make_kconfig.pl +++ b/v4l/scripts/make_kconfig.pl @@ -9,11 +9,13 @@ my %hexopt = (); my %tristate = (); my %kernopts = (); my %depmods = (); -my $version, $level, $sublevel; +my $version, $level, $sublevel, $kernver; my $kernel=shift; my $force_kconfig=shift; +#my $debug=1; + #!/usr/bin/perl use FileHandle; @@ -26,14 +28,10 @@ sub process_config ($) open $in,"$kernel/include/$filename" or die "File not found: $kernel/include/$filename"; while (<$in>) { - if (m|\#include\s+\<(.*)\>|) { - process_config ($1); - next; - } if (m/\#define\s+CONFIG_([^ ]*)_ON_SMP\s+(.*)\n/) { my $key=$1; my $value=$2; -# printf "defined $key as $value\n"; + printf "defined $key as $value\n" if $debug; if ( $value == 1 ) { $value='y'; } @@ -43,7 +41,7 @@ sub process_config ($) if (m/\#define\s+CONFIG_([^ ]*)_MODULE\s+(.*)\n/) { my $key=$1; my $value=$2; -# printf "defined $key as $value\n"; + printf "defined $key as $value\n" if $debug; if ( $value == 1 ) { $value='m'; } @@ -53,7 +51,7 @@ sub process_config ($) if (m/\#define\s+CONFIG_([^ ]*)\s+(.*)\n/) { my $key=$1; my $value=$2; -# printf "defined $key as $value\n"; + printf "defined $key as $value\n" if $debug; if ( $value == 1 ) { $value='y'; } @@ -61,7 +59,7 @@ sub process_config ($) next; } if (m/\#undef\s+CONFIG_([^ ]*)\n/) { -# printf "undefined $1\n"; + printf "undefined $1\n" if $debug; $kernopts{$1}='n'; next; } @@ -76,7 +74,7 @@ sub add_bool($) exists $config{$arg} or die "Adding unknown boolean '$arg'"; $tristate{$arg}="bool"; -# printf "Boolean:%s\n",$arg; + printf "Boolean:%s\n",$arg if $debug; $kernopts{$arg}='y'; } @@ -183,7 +181,7 @@ sub deps_ok($) $arg=$arg." "; -# printf "$key: deps are '$arg'\n"; + printf "$key: deps are '$arg'\n" if $debug; while ($arg ne "") { if ($arg =~ m/^([A-Z0-9_]+) /) { @@ -210,13 +208,9 @@ sub open_kconfig($$) { my $disabled=0; my $key; -#print "opening $file\n"; +print "opening $file\n" if $debug; open $in,"$file" or die "File not found: $file"; while (<$in>) { -# if (m;^\s*source[\s\"]+drivers/media/(video|dvb)/Kconfig;) { -# next; -# } - # start of a new stanza, reset if (m/^\w/) { $disabled = 0; @@ -229,12 +223,12 @@ sub open_kconfig($$) { open_kconfig($dir,"$dir/$1"); next; } - if (m|^\s+depends on\s+(.*)\n|) { - check_deps ($key,$1); - } - if (m|^\s+select\s+(.*)\n|) { + if (m|^\s+depends on\s+(.+?)\s*$|) { check_deps ($key,$1); } +# if (m|^\s+select\s+(.+?)\s*(if .*?)?\s*$|) { +# check_deps ($key,$1); +# } if (m|^\s+bool(ean)?\s|) { add_bool($key); } @@ -282,24 +276,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" if $debug; $disabled=0; } } @@ -318,20 +302,32 @@ 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 "minimal version for $1 is $ver\n" if $debug; } } close $in; } -process_config("linux/config.h"); +# 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/autoconf.h"); parse_versions; @@ -341,11 +337,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"; @@ -382,10 +379,6 @@ while ( my ($key, $value) = each(%config) ) { open OUT,">Kconfig.kern" or die "Cannot write Kconfig.kern file"; -print OUT "config MODULES\n\tboolean\n\tdefault y\n\n"; -add_config('MODULES'); -add_bool('MODULES'); - while ( my ($key, $value) = each(%depend) ) { if ($kernopts{$key}) { print OUT "# $key with $value refs\nconfig $key\n\ttristate\n\tdefault ". @@ -399,13 +392,14 @@ close OUT; # These options should default to off disable_config('DVB_AV7110_FIRMWARE'); disable_config('DVB_CINERGYT2_TUNING'); +disable_config('DVB_FE_CUSTOMISE'); # Hack for check sound/oss/aci.h header my $mirodep="$kernel/sound/oss/aci.h"; -if (!open IN, $mirodep) { +if (! -e $mirodep) { my $key="RADIO_MIROPCM20"; -print <<"EOF2"; + print <<"EOF2"; $key: $mirodep is missing. ***WARNING:*** You do not have the full kernel sources installed. @@ -428,7 +422,6 @@ Please see your distro's web site for instructions to build a new kernel. EOF2 $kernopts{$key}='n'; } -close IN; # Recursively check for broken dependencies my $i; diff --git a/v4l/scripts/make_myconfig.pl b/v4l/scripts/make_myconfig.pl index 7323f419c..0bde6f6c0 100755 --- a/v4l/scripts/make_myconfig.pl +++ b/v4l/scripts/make_myconfig.pl @@ -15,7 +15,7 @@ open IN,".config"; while (<IN>) { if (m/\s*(\w+)=\s*(\S*)/) { #printf "%s=%s\n",$1,$2; - $config { $1 } = $2; + $config { $1 } = $2; } } close IN; diff --git a/v4l/scripts/makelinks.sh b/v4l/scripts/makelinks.sh index 03fd48849..9ee780aba 100755 --- a/v4l/scripts/makelinks.sh +++ b/v4l/scripts/makelinks.sh @@ -5,7 +5,7 @@ if test -z $1 || ! test -d $1 ; then echo echo " usage: $0 <path_to_kernel_to_patch>" echo - exit + exit fi echo "patching $1..." @@ -14,15 +14,15 @@ cd linux PWD=`pwd` for x in `find drivers -type d | grep -v CVS` ; do - mkdir -p -v $1/$x + mkdir -p -v $1/$x done for x in `find Documentation -type d | grep -v CVS` ; do - mkdir -p -v $1/$x + mkdir -p -v $1/$x done for x in `find include -type d | grep -v CVS` ; do - mkdir -p -v $1/$x + mkdir -p -v $1/$x done for x in `find Documentation -type f | grep -v CVS | grep -v .cvsignore` ; do @@ -48,15 +48,3 @@ for x in `find drivers/media -type d | grep -v CVS` ; do done cd .. -patch -p0 <<'DIFF' -diff -u -p videodev.h ---- linux/include/linux/videodev.h -+++ linux/include/linux/videodev.h -@@ -1,6 +1,7 @@ - #ifndef __LINUX_VIDEODEV_H - #define __LINUX_VIDEODEV_H - -+#include "compat.h" - #include <linux/types.h> - - #define HAVE_V4L1 1 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/scripts/rmmod.pl b/v4l/scripts/rmmod.pl index 19a0a8c61..d190a9edf 100755 --- a/v4l/scripts/rmmod.pl +++ b/v4l/scripts/rmmod.pl @@ -28,8 +28,17 @@ my %debug = ( "tuner" => "tuner_debug=1", ); +sub findprog($) +{ + foreach(split(/:/, $ENV{PATH}),qw(/sbin /usr/sbin /usr/local/sbin)) { + return "$_/$_[0]" if(-x "$_/$_[0]"); + } + die "Can't find needed utility '$_[0]'"; +} + sub parse_dir { my $file = $File::Find::name; + my $modinfo = findprog('modinfo'); if (!($file =~ /[.]ko$/)) { return; @@ -38,7 +47,7 @@ sub parse_dir { my $module = $file; $module =~ s|^[./]*(.*)[.]ko|\1|; - open IN, "modinfo $file|grep depends|cut -b 17-|"; + open IN, "$modinfo $file|grep depends|cut -b 17-|"; while (<IN>) { my $deps = $_; $deps =~ s/\n//; @@ -123,33 +132,36 @@ sub orderdep () sub insmod ($) { my $debug=shift; + my $modprobe = findprog('modprobe'); + my $insmod = findprog('insmod'); while ( my ($key, $value) = each(%reqmodules) ) { - printf ("modprobe $key\n"); - system ("modprobe $key"); + print ("$modprobe $key\n"); + system ("$modprobe $key"); } foreach my $key (@modlist) { if ($debug) { my $dbg=$debug{$key}; - printf "insmod ./$key.ko $dbg\n"; - system "insmod ./$key.ko $dbg\n"; + print "$insmod ./$key.ko $dbg\n"; + system "$insmod ./$key.ko $dbg\n"; } else { - printf "insmod ./$key.ko\n"; - system "insmod ./$key.ko\n"; + print "$insmod ./$key.ko\n"; + system "$insmod ./$key.ko\n"; } } } sub rmmod () { + my $rmmod = findprog('rmmod'); while (my $key=pop @modlist) { my $dep=$key; $dep=~s/[\-]/_/g; if (exists ($loaded{$dep})) { - printf "rmmod $dep\n"; - system "rmmod $dep\n"; + print "$rmmod $dep\n"; + system "$rmmod $dep\n"; } } } @@ -173,22 +185,22 @@ if ($mode eq "load") { prepare_cmd; parse_loaded; rmmod; + } elsif ($mode eq "reload") { + prepare_cmd; + parse_loaded; + my @modlist2=@modlist; + rmmod; + @modlist=@modlist2; + insmod(0); + } elsif ($mode eq "debug") { + prepare_cmd; + parse_loaded; + insmod(1); + } elsif ($mode eq "check") { + prepare_cmd; + parse_loaded; } else { - if ($mode eq "reload") { - prepare_cmd; - parse_loaded; - my @modlist2=@modlist; - rmmod; - @modlist=@modlist2; - insmod(0); - } else { - if ($mode eq "debug") { - prepare_cmd; - parse_loaded; - insmod(1); - } else { - printf "Usage: $0 [load|unload|reload]\n"; - } - } + printf "Usage: $0 [load|unload|reload|debug|check]\n"; } } + diff --git a/v4l/versions.txt b/v4l/versions.txt index 2c74da43f..b5c0502e0 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 @@ -188,6 +142,7 @@ DVB_MT352 DVB_ZL10353 DVB_DIB3000MB DVB_DIB3000MC +DVB_DIB7000M DVB_VES1820 DVB_TDA10021 DVB_STV0297 @@ -198,6 +153,7 @@ DVB_BCM3510 DVB_LGDT330X DVB_LNBP21 DVB_ISL6421 +DVB_TUNER_MT2060 VIDEO_SAA7146 VIDEO_SAA7146_VV VIDEO_VIDEOBUF @@ -208,3 +164,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 |