diff options
author | Mauro Carvalho Chehab <mchehab@redhat.com> | 2008-11-25 09:07:00 -0200 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2008-11-25 09:07:00 -0200 |
commit | 564d21054d1f61d9448a93b3fa8a254a29713d26 (patch) | |
tree | 7ffc11b46383ff01ce60cb9c454b0938facb05ad /v4l/scripts | |
parent | 6941ff312bc3df2578143871566980c02dade212 (diff) | |
download | mediapointer-dvb-s2-564d21054d1f61d9448a93b3fa8a254a29713d26.tar.gz mediapointer-dvb-s2-564d21054d1f61d9448a93b3fa8a254a29713d26.tar.bz2 |
fix boards for kernels with algo_control
From: Mauro Carvalho Chehab <mchehab@redhat.com>
changeset 4ecae6da8244 removed algo_control from i2c drivers. However,
on older kernels, a dummy function to implement algo_control is required,
otherwise, an OOPS is generated.
This patch adds a backport for all i2c drivers that defines an
i2c_algorithm, except for cafe_ccic, since OLPC hardware only works
for kernels newer than 2.6.19.
Some of the backported drivers would need also extra changes to work with
older kernels, as specified on v4l/versions.txt. Yet, I decided to add
the backport for those drivers also, since the lack of algo_control doesn't
generate any compilation error, but it is enough to break the driver. So,
better to all for all boards than to allow compiling a kernel backported that
just generates OOPS.
Priority: normal
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'v4l/scripts')
-rwxr-xr-x | v4l/scripts/gentree.pl | 1 | ||||
-rwxr-xr-x | v4l/scripts/make_config_compat.pl | 20 |
2 files changed, 21 insertions, 0 deletions
diff --git a/v4l/scripts/gentree.pl b/v4l/scripts/gentree.pl index d84608aa1..1968bb334 100755 --- a/v4l/scripts/gentree.pl +++ b/v4l/scripts/gentree.pl @@ -74,6 +74,7 @@ my %defs = ( 'NEED_SOUND_DRIVER_H' => 0, 'TTUSB_KERNEL' => 1, 'NO_PCM_LOCK' => 0, + 'NEED_ALGO_CONTROL' => 0, ); ################################################################# diff --git a/v4l/scripts/make_config_compat.pl b/v4l/scripts/make_config_compat.pl index 3aac7e3b3..3a8bdd81e 100755 --- a/v4l/scripts/make_config_compat.pl +++ b/v4l/scripts/make_config_compat.pl @@ -178,6 +178,25 @@ sub check_pcm_lock() close INNET; } +sub check_algo_control() +{ + my $file = "$kdir/include/linux/i2c.h"; + my $need_compat = 0; + + open INNET, "<$file" or die "File not found: $file"; + while (<INNET>) { + if (m/algo_control/) { + $need_compat = 1; + last; + } + } + + if ($need_compat) { + $out.= "\n#define NEED_ALGO_CONTROL 1\n"; + } + close INNET; +} + sub check_other_dependencies() { check_spin_lock(); @@ -189,6 +208,7 @@ sub check_other_dependencies() check_clamp(); check_proc_create(); check_pcm_lock(); + check_algo_control(); } # Do the basic rules |