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 /linux/drivers/media/video | |
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 'linux/drivers/media/video')
-rw-r--r-- | linux/drivers/media/video/au0828/au0828-i2c.c | 3 | ||||
-rw-r--r-- | linux/drivers/media/video/bt8xx/bttv-i2c.c | 3 | ||||
-rw-r--r-- | linux/drivers/media/video/cx23885/cx23885-i2c.c | 3 | ||||
-rw-r--r-- | linux/drivers/media/video/em28xx/em28xx-i2c.c | 3 | ||||
-rw-r--r-- | linux/drivers/media/video/ivtv/ivtv-i2c.c | 3 | ||||
-rw-r--r-- | linux/drivers/media/video/pvrusb2/pvrusb2-i2c-core.c | 3 | ||||
-rw-r--r-- | linux/drivers/media/video/saa7134/saa7134-i2c.c | 3 | ||||
-rw-r--r-- | linux/drivers/media/video/usbvision/usbvision-i2c.c | 3 | ||||
-rw-r--r-- | linux/drivers/media/video/w9968cf.c | 3 |
9 files changed, 27 insertions, 0 deletions
diff --git a/linux/drivers/media/video/au0828/au0828-i2c.c b/linux/drivers/media/video/au0828/au0828-i2c.c index 03b797b9b..d8cef6ccc 100644 --- a/linux/drivers/media/video/au0828/au0828-i2c.c +++ b/linux/drivers/media/video/au0828/au0828-i2c.c @@ -301,6 +301,9 @@ static u32 au0828_functionality(struct i2c_adapter *adap) static struct i2c_algorithm au0828_i2c_algo_template = { .master_xfer = i2c_xfer, .functionality = au0828_functionality, +#ifdef NEED_ALGO_CONTROL + .algo_control = dummy_algo_control, +#endif }; /* ----------------------------------------------------------------------- */ diff --git a/linux/drivers/media/video/bt8xx/bttv-i2c.c b/linux/drivers/media/video/bt8xx/bttv-i2c.c index bcd2cd240..558572589 100644 --- a/linux/drivers/media/video/bt8xx/bttv-i2c.c +++ b/linux/drivers/media/video/bt8xx/bttv-i2c.c @@ -260,6 +260,9 @@ static int bttv_i2c_xfer(struct i2c_adapter *i2c_adap, struct i2c_msg *msgs, int static const struct i2c_algorithm bttv_algo = { .master_xfer = bttv_i2c_xfer, .functionality = functionality, +#ifdef NEED_ALGO_CONTROL + .algo_control = dummy_algo_control, +#endif }; /* ----------------------------------------------------------------------- */ diff --git a/linux/drivers/media/video/cx23885/cx23885-i2c.c b/linux/drivers/media/video/cx23885/cx23885-i2c.c index ced5648d8..2210b47d2 100644 --- a/linux/drivers/media/video/cx23885/cx23885-i2c.c +++ b/linux/drivers/media/video/cx23885/cx23885-i2c.c @@ -353,6 +353,9 @@ static u32 cx23885_functionality(struct i2c_adapter *adap) static struct i2c_algorithm cx23885_i2c_algo_template = { .master_xfer = i2c_xfer, .functionality = cx23885_functionality, +#ifdef NEED_ALGO_CONTROL + .algo_control = dummy_algo_control, +#endif }; /* ----------------------------------------------------------------------- */ diff --git a/linux/drivers/media/video/em28xx/em28xx-i2c.c b/linux/drivers/media/video/em28xx/em28xx-i2c.c index ec3e3b157..4e6fa575d 100644 --- a/linux/drivers/media/video/em28xx/em28xx-i2c.c +++ b/linux/drivers/media/video/em28xx/em28xx-i2c.c @@ -521,6 +521,9 @@ static int attach_inform(struct i2c_client *client) static struct i2c_algorithm em28xx_algo = { .master_xfer = em28xx_i2c_xfer, .functionality = functionality, +#ifdef NEED_ALGO_CONTROL + .algo_control = dummy_algo_control, +#endif }; static struct i2c_adapter em28xx_adap_template = { diff --git a/linux/drivers/media/video/ivtv/ivtv-i2c.c b/linux/drivers/media/video/ivtv/ivtv-i2c.c index c251ddb2f..fa18eae17 100644 --- a/linux/drivers/media/video/ivtv/ivtv-i2c.c +++ b/linux/drivers/media/video/ivtv/ivtv-i2c.c @@ -550,6 +550,9 @@ static u32 ivtv_functionality(struct i2c_adapter *adap) static struct i2c_algorithm ivtv_algo = { .master_xfer = ivtv_xfer, .functionality = ivtv_functionality, +#ifdef NEED_ALGO_CONTROL + .algo_control = dummy_algo_control, +#endif }; /* template for our-bit banger */ diff --git a/linux/drivers/media/video/pvrusb2/pvrusb2-i2c-core.c b/linux/drivers/media/video/pvrusb2/pvrusb2-i2c-core.c index edce8fc34..877c8f7b1 100644 --- a/linux/drivers/media/video/pvrusb2/pvrusb2-i2c-core.c +++ b/linux/drivers/media/video/pvrusb2/pvrusb2-i2c-core.c @@ -1013,6 +1013,9 @@ static int pvr2_i2c_detach_inform(struct i2c_client *client) static struct i2c_algorithm pvr2_i2c_algo_template = { .master_xfer = pvr2_i2c_xfer, .functionality = pvr2_i2c_functionality, +#ifdef NEED_ALGO_CONTROL + .algo_control = dummy_algo_control, +#endif }; static struct i2c_adapter pvr2_i2c_adap_template = { diff --git a/linux/drivers/media/video/saa7134/saa7134-i2c.c b/linux/drivers/media/video/saa7134/saa7134-i2c.c index df97ac987..3f7d4eb80 100644 --- a/linux/drivers/media/video/saa7134/saa7134-i2c.c +++ b/linux/drivers/media/video/saa7134/saa7134-i2c.c @@ -358,6 +358,9 @@ static int attach_inform(struct i2c_client *client) static struct i2c_algorithm saa7134_algo = { .master_xfer = saa7134_i2c_xfer, .functionality = functionality, +#ifdef NEED_ALGO_CONTROL + .algo_control = dummy_algo_control, +#endif }; static struct i2c_adapter saa7134_adap_template = { diff --git a/linux/drivers/media/video/usbvision/usbvision-i2c.c b/linux/drivers/media/video/usbvision/usbvision-i2c.c index 888051b80..58f65e03a 100644 --- a/linux/drivers/media/video/usbvision/usbvision-i2c.c +++ b/linux/drivers/media/video/usbvision/usbvision-i2c.c @@ -198,6 +198,9 @@ static struct i2c_algorithm usbvision_algo = { .master_xfer = usbvision_i2c_xfer, .smbus_xfer = NULL, .functionality = functionality, +#ifdef NEED_ALGO_CONTROL + .algo_control = dummy_algo_control, +#endif }; diff --git a/linux/drivers/media/video/w9968cf.c b/linux/drivers/media/video/w9968cf.c index ab3c054c4..5763a4234 100644 --- a/linux/drivers/media/video/w9968cf.c +++ b/linux/drivers/media/video/w9968cf.c @@ -1557,6 +1557,9 @@ static int w9968cf_i2c_init(struct w9968cf_device* cam) static struct i2c_algorithm algo = { .smbus_xfer = w9968cf_i2c_smbus_xfer, .functionality = w9968cf_i2c_func, +#ifdef NEED_ALGO_CONTROL + .algo_control = dummy_algo_control, +#endif }; static struct i2c_adapter adap = { |