summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--linux/drivers/media/common/saa7146_i2c.c21
-rw-r--r--linux/drivers/media/dvb/dvb-usb/Kconfig2
-rw-r--r--linux/drivers/media/dvb/frontends/Kconfig20
-rw-r--r--linux/drivers/media/dvb/frontends/stv0900_core.c4
-rw-r--r--linux/drivers/media/dvb/frontends/stv0900_priv.h4
-rw-r--r--linux/drivers/media/video/au0828/Kconfig8
-rw-r--r--linux/drivers/media/video/cx23885/Kconfig14
-rw-r--r--linux/drivers/media/video/em28xx/em28xx-dvb.c3
-rw-r--r--linux/drivers/media/video/pvrusb2/Kconfig6
-rw-r--r--linux/drivers/media/video/saa7134/Kconfig3
-rw-r--r--linux/drivers/media/video/zoran/Kconfig1
-rw-r--r--linux/drivers/media/video/zoran/zoran_driver.c9
-rw-r--r--v4l/compat.h1
-rwxr-xr-xv4l/scripts/fix_dvb_customise.pl334
-rwxr-xr-xv4l/scripts/make_kconfig.pl1
15 files changed, 383 insertions, 48 deletions
diff --git a/linux/drivers/media/common/saa7146_i2c.c b/linux/drivers/media/common/saa7146_i2c.c
index 68674799b..fa9d4f90a 100644
--- a/linux/drivers/media/common/saa7146_i2c.c
+++ b/linux/drivers/media/common/saa7146_i2c.c
@@ -294,7 +294,6 @@ static int saa7146_i2c_transfer(struct saa7146_dev *dev, const struct i2c_msg *m
int i = 0, count = 0;
__le32 *buffer = dev->d_i2c.cpu_addr;
int err = 0;
- int address_err = 0;
int short_delay = 0;
if (mutex_lock_interruptible(&dev->i2c_lock))
@@ -334,17 +333,10 @@ static int saa7146_i2c_transfer(struct saa7146_dev *dev, const struct i2c_msg *m
i2c address probing, however, and address errors indicate that a
device is really *not* there. retrying in that case
increases the time the device needs to probe greatly, so
- it should be avoided. because of the fact, that only
- analog based cards use irq based i2c transactions (for dvb
- cards, this screwes up other interrupt sources), we bail out
- completely for analog cards after an address error and trust
- the saa7146 address error detection. */
- if ( -EREMOTEIO == err ) {
- if( 0 != (SAA7146_USE_I2C_IRQ & dev->ext->flags)) {
- goto out;
- }
- address_err++;
- }
+ it should be avoided. So we bail out in irq mode after an
+ address error and trust the saa7146 address error detection. */
+ if (-EREMOTEIO == err && 0 != (SAA7146_USE_I2C_IRQ & dev->ext->flags))
+ goto out;
DEB_I2C(("error while sending message(s). starting again.\n"));
break;
}
@@ -359,10 +351,9 @@ static int saa7146_i2c_transfer(struct saa7146_dev *dev, const struct i2c_msg *m
} while (err != num && retries--);
- /* if every retry had an address error, exit right away */
- if (address_err == retries) {
+ /* quit if any error occurred */
+ if (err != num)
goto out;
- }
/* if any things had to be read, get the results */
if ( 0 != saa7146_i2c_msg_cleanup(msgs, num, buffer)) {
diff --git a/linux/drivers/media/dvb/dvb-usb/Kconfig b/linux/drivers/media/dvb/dvb-usb/Kconfig
index bbddc9fb6..3763a9c68 100644
--- a/linux/drivers/media/dvb/dvb-usb/Kconfig
+++ b/linux/drivers/media/dvb/dvb-usb/Kconfig
@@ -96,6 +96,7 @@ config DVB_USB_UMT_010
select DVB_PLL if !DVB_FE_CUSTOMISE
select DVB_DIB3000MC
select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMIZE
+ select DVB_MT352 if !DVB_FE_CUSTOMISE
help
Say Y here to support the HanfTek UMT-010 USB2.0 stick-sized DVB-T receiver.
@@ -108,6 +109,7 @@ config DVB_USB_CXUSB
select DVB_MT352 if !DVB_FE_CUSTOMISE
select DVB_ZL10353 if !DVB_FE_CUSTOMISE
select DVB_DIB7000P if !DVB_FE_CUSTOMISE
+ select DVB_LGS8GL5 if !DVB_FE_CUSTOMISE
select DVB_TUNER_DIB0070 if !DVB_FE_CUSTOMISE
select MEDIA_TUNER_SIMPLE if !MEDIA_TUNER_CUSTOMIZE
select MEDIA_TUNER_XC2028 if !MEDIA_TUNER_CUSTOMIZE
diff --git a/linux/drivers/media/dvb/frontends/Kconfig b/linux/drivers/media/dvb/frontends/Kconfig
index 4059d22a1..3205e302d 100644
--- a/linux/drivers/media/dvb/frontends/Kconfig
+++ b/linux/drivers/media/dvb/frontends/Kconfig
@@ -1,17 +1,21 @@
-menu "Customise DVB Frontends"
- depends on DVB_CORE
-
config DVB_FE_CUSTOMISE
bool "Customise the frontend modules to build"
+ depends on DVB_CORE
default N
help
- This allows the user to deselect frontend drivers unnecessary
- for their hardware from the build. Use this option with care
- as deselecting frontends which are in fact necessary will result
- in DVB devices which cannot be tuned due to lack of driver support.
+ This allows the user to select/deselect frontend drivers for their
+ hardware from the build.
+
+ Use this option with care as deselecting frontends which are in fact
+ necessary will result in DVB devices which cannot be tuned due to lack
+ of driver support.
If unsure say N.
+if DVB_FE_CUSTOMISE
+
+menu "Customise DVB Frontends"
+
comment "Multistandard (satellite) frontends"
depends on DVB_CORE
@@ -507,3 +511,5 @@ config DVB_AF9013
help
Say Y when you want to support this frontend.
endmenu
+
+endif
diff --git a/linux/drivers/media/dvb/frontends/stv0900_core.c b/linux/drivers/media/dvb/frontends/stv0900_core.c
index c86c3017e..9ff9744a1 100644
--- a/linux/drivers/media/dvb/frontends/stv0900_core.c
+++ b/linux/drivers/media/dvb/frontends/stv0900_core.c
@@ -34,8 +34,8 @@
#include "stv0900_priv.h"
#include "stv0900_init.h"
-int debug = 1;
-module_param(debug, int, 0644);
+static int stvdebug = 1;
+module_param_named(debug, stvdebug, int, 0644);
/* internal params node */
struct stv0900_inode {
diff --git a/linux/drivers/media/dvb/frontends/stv0900_priv.h b/linux/drivers/media/dvb/frontends/stv0900_priv.h
index 28350fbeb..762d5af62 100644
--- a/linux/drivers/media/dvb/frontends/stv0900_priv.h
+++ b/linux/drivers/media/dvb/frontends/stv0900_priv.h
@@ -62,11 +62,11 @@
#define dmd_choose(a, b) (demod = STV0900_DEMOD_2 ? b : a))
-extern int debug;
+static int stvdebug;
#define dprintk(args...) \
do { \
- if (debug) \
+ if (stvdebug) \
printk(KERN_DEBUG args); \
} while (0)
diff --git a/linux/drivers/media/video/au0828/Kconfig b/linux/drivers/media/video/au0828/Kconfig
index 018f72b8e..deb00e4ac 100644
--- a/linux/drivers/media/video/au0828/Kconfig
+++ b/linux/drivers/media/video/au0828/Kconfig
@@ -4,10 +4,10 @@ config VIDEO_AU0828
depends on I2C && INPUT && DVB_CORE && USB
select I2C_ALGOBIT
select VIDEO_TVEEPROM
- select DVB_AU8522 if !DVB_FE_CUSTOMIZE
- select MEDIA_TUNER_XC5000 if !DVB_FE_CUSTOMIZE
- select MEDIA_TUNER_MXL5007T if !DVB_FE_CUSTOMIZE
- select MEDIA_TUNER_TDA18271 if !DVB_FE_CUSTOMIZE
+ select DVB_AU8522 if !DVB_FE_CUSTOMISE
+ select MEDIA_TUNER_XC5000 if !DVB_FE_CUSTOMISE
+ select MEDIA_TUNER_MXL5007T if !DVB_FE_CUSTOMISE
+ select MEDIA_TUNER_TDA18271 if !DVB_FE_CUSTOMISE
---help---
This is a video4linux driver for Auvitek's USB device.
diff --git a/linux/drivers/media/video/cx23885/Kconfig b/linux/drivers/media/video/cx23885/Kconfig
index b62f16d50..28896aa31 100644
--- a/linux/drivers/media/video/cx23885/Kconfig
+++ b/linux/drivers/media/video/cx23885/Kconfig
@@ -15,13 +15,15 @@ config VIDEO_CX23885
select DVB_S5H1411 if !DVB_FE_CUSTOMISE
select DVB_LGDT330X if !DVB_FE_CUSTOMISE
select DVB_ZL10353 if !DVB_FE_CUSTOMISE
- select DVB_TDA10048 if !DVB_FE_CUSTOMIZE
- select DVB_LNBP21 if !DVB_FE_CUSTOMIZE
+ select DVB_TDA10048 if !DVB_FE_CUSTOMISE
+ select DVB_LNBP21 if !DVB_FE_CUSTOMISE
+ select DVB_STV6110 if !DVB_FE_CUSTOMISE
+ select DVB_STV0900 if !DVB_FE_CUSTOMISE
select MEDIA_TUNER_MT2131 if !MEDIA_TUNER_CUSTOMIZE
- select MEDIA_TUNER_XC2028 if !DVB_FE_CUSTOMIZE
- select MEDIA_TUNER_TDA8290 if !DVB_FE_CUSTOMIZE
- select MEDIA_TUNER_TDA18271 if !DVB_FE_CUSTOMIZE
- select MEDIA_TUNER_XC5000 if !DVB_FE_CUSTOMIZE
+ select MEDIA_TUNER_XC2028 if !DVB_FE_CUSTOMISE
+ select MEDIA_TUNER_TDA8290 if !DVB_FE_CUSTOMISE
+ select MEDIA_TUNER_TDA18271 if !DVB_FE_CUSTOMISE
+ select MEDIA_TUNER_XC5000 if !DVB_FE_CUSTOMISE
---help---
This is a video4linux driver for Conexant 23885 based
TV cards.
diff --git a/linux/drivers/media/video/em28xx/em28xx-dvb.c b/linux/drivers/media/video/em28xx/em28xx-dvb.c
index c76dbc029..edafe9bde 100644
--- a/linux/drivers/media/video/em28xx/em28xx-dvb.c
+++ b/linux/drivers/media/video/em28xx/em28xx-dvb.c
@@ -30,9 +30,6 @@
#include "lgdt330x.h"
#include "zl10353.h"
#include "s5h1409.h"
-#ifdef EM28XX_DRX397XD_SUPPORT
-#include "drx397xD.h"
-#endif
MODULE_DESCRIPTION("driver for em28xx based DVB cards");
MODULE_AUTHOR("Mauro Carvalho Chehab <mchehab@infradead.org>");
diff --git a/linux/drivers/media/video/pvrusb2/Kconfig b/linux/drivers/media/video/pvrusb2/Kconfig
index 854c2a885..bb4271393 100644
--- a/linux/drivers/media/video/pvrusb2/Kconfig
+++ b/linux/drivers/media/video/pvrusb2/Kconfig
@@ -40,10 +40,10 @@ config VIDEO_PVRUSB2_DVB
select DVB_LGDT330X if !DVB_FE_CUSTOMISE
select DVB_S5H1409 if !DVB_FE_CUSTOMISE
select DVB_S5H1411 if !DVB_FE_CUSTOMISE
- select DVB_TDA10048 if !DVB_FE_CUSTOMIZE
- select MEDIA_TUNER_TDA18271 if !DVB_FE_CUSTOMIZE
+ select DVB_TDA10048 if !DVB_FE_CUSTOMISE
+ select MEDIA_TUNER_TDA18271 if !DVB_FE_CUSTOMISE
select MEDIA_TUNER_SIMPLE if !MEDIA_TUNER_CUSTOMIZE
- select MEDIA_TUNER_TDA8290 if !DVB_FE_CUSTOMIZE
+ select MEDIA_TUNER_TDA8290 if !DVB_FE_CUSTOMISE
---help---
This option enables a DVB interface for the pvrusb2 driver.
diff --git a/linux/drivers/media/video/saa7134/Kconfig b/linux/drivers/media/video/saa7134/Kconfig
index a3470ebad..51f17c82b 100644
--- a/linux/drivers/media/video/saa7134/Kconfig
+++ b/linux/drivers/media/video/saa7134/Kconfig
@@ -35,10 +35,13 @@ config VIDEO_SAA7134_DVB
select DVB_TDA10086 if !DVB_FE_CUSTOMISE
select DVB_TDA826X if !DVB_FE_CUSTOMISE
select DVB_ISL6421 if !DVB_FE_CUSTOMISE
+ select DVB_ISL6405 if !DVB_FE_CUSTOMISE
select MEDIA_TUNER_TDA827X if !MEDIA_TUNER_CUSTOMIZE
select MEDIA_TUNER_SIMPLE if !MEDIA_TUNER_CUSTOMIZE
select DVB_ZL10036 if !DVB_FE_CUSTOMISE
select DVB_MT312 if !DVB_FE_CUSTOMISE
+ select DVB_LNBP21 if !DVB_FE_CUSTOMISE
+ select DVB_ZL10353 if !DVB_FE_CUSTOMISE
---help---
This adds support for DVB cards based on the
Philips saa7134 chip.
diff --git a/linux/drivers/media/video/zoran/Kconfig b/linux/drivers/media/video/zoran/Kconfig
index 925fb5159..fd4120e4c 100644
--- a/linux/drivers/media/video/zoran/Kconfig
+++ b/linux/drivers/media/video/zoran/Kconfig
@@ -68,6 +68,7 @@ config VIDEO_ZORAN_AVS6EYES
tristate "AverMedia 6 Eyes support (EXPERIMENTAL)"
depends on VIDEO_ZORAN_ZR36060 && EXPERIMENTAL
select VIDEO_BT856 if VIDEO_HELPER_CHIPS_AUTO
+ select VIDEO_BT866 if VIDEO_HELPER_CHIPS_AUTO
select VIDEO_KS0127 if VIDEO_HELPER_CHIPS_AUTO
help
Support for the AverMedia 6 Eyes video surveillance card.
diff --git a/linux/drivers/media/video/zoran/zoran_driver.c b/linux/drivers/media/video/zoran/zoran_driver.c
index 8eda83b06..1560c1e4c 100644
--- a/linux/drivers/media/video/zoran/zoran_driver.c
+++ b/linux/drivers/media/video/zoran/zoran_driver.c
@@ -1378,11 +1378,10 @@ setup_overlay (struct file *file,
/* get the status of a buffer in the clients buffer queue */
static int
-zoran_v4l2_buffer_status (struct file *file,
+zoran_v4l2_buffer_status (struct zoran_fh *fh,
struct v4l2_buffer *buf,
int num)
{
- struct zoran_fh *fh = file->private_data;
struct zoran *zr = fh->zr;
buf->flags = V4L2_BUF_FLAG_MAPPED;
@@ -2502,7 +2501,7 @@ static int zoran_querybuf(struct file *file, void *__fh, struct v4l2_buffer *buf
int res;
mutex_lock(&zr->resource_lock);
- res = zoran_v4l2_buffer_status(file, buf, buf->index);
+ res = zoran_v4l2_buffer_status(fh, buf, buf->index);
mutex_unlock(&zr->resource_lock);
return res;
@@ -2603,7 +2602,7 @@ static int zoran_dqbuf(struct file *file, void *__fh, struct v4l2_buffer *buf)
if (res)
goto dqbuf_unlock_and_return;
zr->v4l_sync_tail++;
- res = zoran_v4l2_buffer_status(file, buf, num);
+ res = zoran_v4l2_buffer_status(fh, buf, num);
break;
case ZORAN_MAP_MODE_JPG_REC:
@@ -2634,7 +2633,7 @@ static int zoran_dqbuf(struct file *file, void *__fh, struct v4l2_buffer *buf)
res = jpg_sync(file, &bs);
if (res)
goto dqbuf_unlock_and_return;
- res = zoran_v4l2_buffer_status(file, buf, bs.frame);
+ res = zoran_v4l2_buffer_status(fh, buf, bs.frame);
break;
}
diff --git a/v4l/compat.h b/v4l/compat.h
index 3df844c87..44878ce73 100644
--- a/v4l/compat.h
+++ b/v4l/compat.h
@@ -11,6 +11,7 @@
* delayed_work in the same context as something named work_struct. */
#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 20)
#define delayed_work work_struct
+#define INIT_DELAYED_WORK(a,b,c) INIT_WORK(a,b,c)
#endif
#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 24)
diff --git a/v4l/scripts/fix_dvb_customise.pl b/v4l/scripts/fix_dvb_customise.pl
new file mode 100755
index 000000000..86a6bcf8c
--- /dev/null
+++ b/v4l/scripts/fix_dvb_customise.pl
@@ -0,0 +1,334 @@
+#!/usr/bin/perl
+use strict;
+use warnings;
+use File::Find;
+use Fcntl ':mode';
+
+my $debug = 0;
+
+my $SRC = "../linux";
+my $fname = "$SRC/drivers/media/dvb/frontends/Makefile";
+
+####################
+# Get Makefile rules
+#
+sub get_makefile($)
+{
+ my $file = shift;
+ my %rules;
+ my %composite;
+
+ open IN, $file or die "Can't find $file\n";
+ while (<IN>) {
+ # Handle line continuations
+ if (/\\\n$/) {
+ $_ .= <IN>;
+ redo;
+ }
+ # Eat line continuations in string we will parse
+ s/\s*\\\n\s*/ /g;
+
+ if (m/(^\s*[[\da-zA-Z-_]+)-objs\s*[\:\+]*\=\s*(.*)\n/) {
+ my $dep=$1;
+ my $file = $2;
+ $file =~ s/\.o / /g;
+ $file =~ s/\.o$//;
+
+ if ($file eq "") {
+ die "broken dep on file $file for $dep\n";
+ }
+
+ $composite{$dep} = $file;
+ printf "MULTI: $dep = $file\n" if ($debug > 1);
+ }
+
+ if (m/^\s*obj\-\$\(CONFIG_([^\)]+)\)\s*[\:\+]*\=\s*(.*)\n/) {
+ my $rule = $1;
+ my $file = $2;
+
+ $file =~ s/\.o / /g;
+ $file =~ s/\.o$//;
+
+ $rules{$rule} = $file;
+ printf "RULE: $rule = $file\n" if ($debug > 1);
+ }
+ }
+ close IN;
+
+ return (\%rules, \%composite);
+}
+
+###########################
+# Seeks header dependencies
+#
+my %header_deps;
+
+# For a more complete check, use:
+# my $hfiles = "*.c";
+my $hfiles = "av7110_av.c av7110.c av7110_ca.c av7110_hw.c av7110_ipack.c av7110_ir.c av7110_v4l.c budget-patch.c dvb_ringbuffer.c nova-t-usb2.c umt-010.c";
+
+sub get_header_deps()
+{
+ my $file = shift;
+ my %rules;
+ my %composite;
+
+ open IN, "gcc -I ../linux/include -I . -DCONFIG_PCI -D__LITTLE_ENDIAN -D_COMPAT_H -DKERNEL_VERSION\\(a,b,c\\) -MM $hfiles|";
+ while (<IN>) {
+ # Handle line continuations
+ if (/\\\n$/) {
+ $_ .= <IN>;
+ redo;
+ }
+ # Eat line continuations in string we will parse
+ s/\s*\\\n\s*/ /g;
+
+ if (m/^([^\:]+)\s*\:\s*(.*)/) {
+ my $dep = $1;
+ my $file = $2;
+
+ $dep =~ s|.*/||;
+ $dep =~ s/\.o$//;
+
+ my @files = split(/\s/, $file);
+ foreach my $f (@files) {
+ $f =~ s|.*/||;
+
+ if (!defined($header_deps{$f})) {
+ $header_deps{$f} = $dep;
+ } else {
+ $header_deps{$f} .= " " . $dep;
+ }
+
+ }
+ }
+ }
+ close IN;
+
+ if ($debug > 1) {
+ print "Header deps for: ";
+ print "$_ " foreach %header_deps;
+ print "\n";
+ }
+}
+
+
+###########################
+# Seeks files for Makefiles
+#
+
+my %driver_config;
+
+sub parse_makefiles()
+{
+ my $fname = $File::Find::name;
+
+ return if !($fname =~ m|/Makefile$|);
+ return if ($fname =~ m|drivers/media/dvb/frontends/|);
+
+
+ my ($refs, $mult) = get_makefile($fname);
+
+ foreach my $ref (keys %$refs) {
+ my $file=$$refs{$ref};
+
+ my @files = split(/\s/, $file);
+ foreach my $f (@files) {
+ if (defined($$mult{$f})) {
+ $file .= " " . $$mult{$f};
+ }
+ }
+
+ $file =~ s|/||g;
+
+ @files = split(/\s/, $file);
+ foreach my $f (@files) {
+ $driver_config{$f} = $ref;
+ }
+ if ($debug > 1) {
+ print "$ref = ";
+ print "$_ " foreach @files;
+ print "\n";
+ }
+ }
+}
+
+
+########################
+# Seeks files for header
+#
+my %select;
+
+sub found_ref($$)
+{
+ my $file = shift;
+ my $header = shift;
+ my $found = 0;
+ my $name = $file;
+ $name =~ s|.*/||;
+
+ $name =~ s/flexcop-fe-tuner.c/b2c2-flexcop/;
+ $name =~ s/av7110.c/av7110.h/;
+
+ if (defined ($header_deps{$name})) {
+ $name = $header_deps{$name};
+ } else {
+ $name =~ s/\.[ch]$//;
+ }
+
+ my @files = split(/\s/, $name);
+ foreach my $n (@files) {
+ if (defined($driver_config{$n})) {
+ my $ref = $driver_config{$n};
+ printf "$ref needs %s\n", $header if ($debug);
+
+ if ($ref =~ m/(PVRUSB2|CX23885|CX88|EM28XX|SAA3134)/) {
+ $ref .="_DVB";
+ }
+
+ if (!defined($select{$ref})) {
+ $select{$ref} = $header;
+ } else {
+ $select{$ref} .= " " . $header;
+ }
+ $found = 1;
+ }
+ }
+
+ if (!$found) {
+ printf "$file needs %s\n", $header;
+ }
+}
+
+########################
+# Seeks files for header
+#
+
+my %header;
+
+sub parse_headers()
+{
+ my $file = $File::Find::name;
+
+ return if !($file =~ m/\.[ch]$/);
+ return if ($file =~ m|drivers/media/dvb/frontends/|);
+
+ open IN, $file or die "Can't open $file\n";
+ while (<IN>) {
+ if (m/^\s*\#include\s+\"([^\"]+)\"/) {
+ if (defined($header{$1})) {
+ my $head = $header{$1};
+ found_ref ($file, $head);
+ }
+ }
+ }
+ close IN;
+}
+
+########################
+# Rewrite Kconfig's
+#
+
+sub parse_kconfigs()
+{
+ my $file = $File::Find::name;
+ my $conf;
+ my $out = "";
+ my $tmp = "";
+ my $all_sels;
+
+ return if !($file =~ m/Kconfig$/);
+ return if ($file =~ m|drivers/media/dvb/frontends/|);
+
+ open IN, $file or die "Can't open $file\n";
+ while (<IN>) {
+ if (m/^config\s([A-Za-z_\-\d]+)/) {
+ $out .= $tmp;
+ if (defined($select{$1})) {
+ $conf = $select{$1};
+ $all_sels = " ". $conf. " ";
+ $tmp = $_;
+
+ printf "$file: rewriting headers for $1. It should select: %s\n", $all_sels if ($debug);
+ } else {
+ $conf = "";
+ $out .= $_;
+ $tmp = "";
+ }
+ next;
+ }
+ if (!$conf) {
+ $out .= $_;
+ next;
+ }
+
+ if (m/^\s*select\s+([A-Za-z_\-\d]+)/) {
+ my $op = $1;
+
+ if (!$all_sels =~ m/\s($op)\s/) {
+ # Drops line
+ printf "$file: droppingg line $_\n";
+
+ next;
+ } else {
+ $all_sels =~ s/\s($op)\s/ /;
+ }
+ }
+ if (m/^[\s\-]*help/) {
+ my @sel = split(/\s/, $all_sels);
+ foreach my $s (@sel) {
+ if ($s ne "") {
+ printf "$file: Adding select for $s\n";
+ $tmp .= "\tselect $s if !DVB_FE_CUSTOMISE\n";
+ }
+ }
+ }
+ $tmp .= $_;
+ }
+ close IN;
+
+ $out .=$tmp;
+ open OUT, ">$file" or die "Can't open $file\n";
+ print OUT $out;
+ close OUT;
+}
+
+#####
+#main
+
+get_header_deps();
+
+my ($FEs, $mult) = get_makefile($fname);
+
+foreach my $fe (keys %$FEs) {
+ my $file=$$FEs{$fe};
+ my $found = 0;
+
+ # Special cases
+ $file =~ s/tda10021/tda1002x/;
+ $file =~ s/tda10023/tda1002x/;
+ $file =~ s/dib3000mb/dib3000/;
+
+ if (defined($$mult{$file})) {
+ $file .= " ".$$mult{$file};
+ }
+
+ my @files = split(/\s/, $file);
+ foreach my $f (@files) {
+ if (stat("$f.h")) {
+ printf "$fe = $f.h\n" if ($debug);
+ $found = 1;
+ $header {"$f.h"} = $fe;
+ last;
+ }
+ }
+
+ if (!$found) {
+ printf "$file.h ($fe) not found in $file\n";
+ exit -1;
+ }
+}
+
+find({wanted => \&parse_makefiles, no_chdir => 1}, $SRC);
+find({wanted => \&parse_headers, no_chdir => 1}, $SRC);
+find({wanted => \&parse_kconfigs, no_chdir => 1}, $SRC);
diff --git a/v4l/scripts/make_kconfig.pl b/v4l/scripts/make_kconfig.pl
index 144325c34..57c663c00 100755
--- a/v4l/scripts/make_kconfig.pl
+++ b/v4l/scripts/make_kconfig.pl
@@ -585,7 +585,6 @@ close OUT;
# These options should default to off
disable_config('DVB_AV7110_FIRMWARE');
disable_config('DVB_CINERGYT2_TUNING');
-disable_config('DVB_FE_CUSTOMISE');
disable_config('VIDEO_HELPER_CHIPS_AUTO');
disable_config('VIDEO_FIXED_MINOR_RANGES');