videodev: Unknown symbol i2c_unregister_device (in kernels older than 2.6.26)
Hi there,
I tried using the latest v4l code on an Mythtv box running 2.6.20, but the v4l videodev module fails to load with the following warnings:
videodev: Unknown symbol i2c_unregister_device
v4l2_common: Unknown symbol v4l2_device_register_subdev
It seems the "i2c_unregister_device" function was added in 2.6.26. References to this function in v4l2-common.c are enclosed in an ifdef like:
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 26)
However in "v4l2_device_unregister()" in v4l2-device.c, there is a reference to "i2c_unregister_device" without any ifdefs. I am running a pretty old kernel, but I'd guess anyone running 2.6.25 or earlier will have this problem. It seems this code was added by Mauro 3 weeks ago in this rev:
http://linuxtv.org/hg/v4l-dvb/rev/87afa7a4ccdf
I also had some other compile problems, but don't have all the details (sorry!). I had to disable the following drivers to get it to compile:
* CONFIG_VIDEO_PVRUSB2
* CONFIG_VIDEO_THS7303
* CONFIG_VIDEO_ADV7343
* CONFIG_DVB_SIANO_SMS1XXX
Regards,
Matt
Quoted 30 lines · Matt Doran
Hi there,
I tried using the latest v4l code on an Mythtv box running 2.6.20, but the v4l videodev module fails to load with the following warnings:
videodev: Unknown symbol
i2c_unregister_device
v4l2_common: Unknown symbolv4l2_device_register_subdevIt seems the "
i2c_unregister_device" function was added in 2.6.26. References to this function inv4l2-common.care enclosed in an ifdef like:#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 26)However in "
v4l2_device_unregister()" inv4l2-device.c, there is a
reference to "i2c_unregister_device" without any ifdefs. I am
running a pretty old kernel, but I'd guess anyone running 2.6.25 or
earlier will have this problem. It seems this code was added by
Mauro 3 weeks ago in this rev:http://linuxtv.org/hg/v4l-dvb/rev/87afa7a4ccdfI also had some other compile problems, but don't have all the details (sorry!). I had to disable the following drivers to get it to compile:
Quoted 9 lines
*
CONFIG_VIDEO_PVRUSB2
*CONFIG_VIDEO_THS7303
*CONFIG_VIDEO_ADV7343
*CONFIG_DVB_SIANO_SMS1XXXRegards,
Matt
Matt, I checked out v4l-dvb today and am using it under 2.6.24 and so far so good. When did the error appear -- when you were trying to load the module?
I have been seeing the errors compiling adv7343.c and ths7303.c under 2.6.24 as well. Andy Walls and Chaithrika Subrahmanya had written patches for those two modules respectively, but there were some comments during the review of the patches, so I think they are still being worked on.
David
Quoted 11 lines · David Ward
Quoted 8 lines · Matt Doran
Hi there,
I tried using the latest v4l code on an Mythtv box running 2.6.20, but the v4l videodev module fails to load with the following warnings:
videodev: Unknown symbol
i2c_unregister_device
v4l2_common: Unknown symbolv4l2_device_register_subdevMatt, I checked out v4l-dvb today and am using it under 2.6.24 and so far so good. When did the error appear -- when you were trying to load the module?
The error appeared when trying to load the module at boot time for my saa7134 based tuner card. This card would no longer work after installing the latest v4l code, however another tuner card continued to work. Maybe because this the saa7134 card is an I2C based card and the other is USB based?? (but this is all a bit over my head).
I basically just commented out the "i2c_unregister_device" function in v4l2-device.c, recompiled and everything started working. :) I don't know the implication of removing this, so I didn't submit a patch ... I thought I'd leave that to the experts.
Quoted 2 lines
I have been seeing the errors compiling
adv7343.candths7303.cunder 2.6.24 as well. Andy Walls and Chaithrika Subrahmanya had written patches for those two modules respectively, but there were some comments during the review of the patches, so I think they are still being worked on.
Great, thanks for letting me know. It's not a showstopper, but it's a pain repeatedly going through the reconfigure/compile/error loop each time you encounter a new compiler error. :) I'm just not game to upgrade the kernel on my mythtv box ... it took a long time to get stable, and I don't want to go there again. :P I'm recompiling v4l because I added a new tuner card.
Matt
Quoted 41 lines · David Ward
Quoted 30 lines · Matt Doran
Hi there,
I tried using the latest v4l code on an Mythtv box running 2.6.20, but the v4l videodev module fails to load with the following warnings:
videodev: Unknown symbol
i2c_unregister_device
v4l2_common: Unknown symbolv4l2_device_register_subdevIt seems the "
i2c_unregister_device" function was added in 2.6.26. References to this function inv4l2-common.care enclosed in an ifdef like:#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 26)However in "
v4l2_device_unregister()" inv4l2-device.c, there is a
reference to "i2c_unregister_device" without any ifdefs. I am
running a pretty old kernel, but I'd guess anyone running 2.6.25 or
earlier will have this problem. It seems this code was added by
Mauro 3 weeks ago in this rev:http://linuxtv.org/hg/v4l-dvb/rev/87afa7a4ccdfI also had some other compile problems, but don't have all the details (sorry!). I had to disable the following drivers to get it to compile:
Quoted 9 lines
*
CONFIG_VIDEO_PVRUSB2
*CONFIG_VIDEO_THS7303
*CONFIG_VIDEO_ADV7343
*CONFIG_DVB_SIANO_SMS1XXXRegards,
Matt
Quoted 8 lines
Matt, I checked out v4l-dvb today and am using it under 2.6.24 and so far so good. When did the error appear -- when you were trying to load the module?
I have been seeing the errors compiling
adv7343.candths7303.cunder 2.6.24 as well. Andy Walls and Chaithrika Subrahmanya had written patches for those two modules respectively, but there were some comments during the review of the patches, so I think they are still being worked on.
Well, just to manage expectations: I am not working on this. I do not advise waiting for something from me. ;)
As an end user, you work-around is to use "make menuconfig" (or whatever) as Matt did: disable the modules that aren't compiling on older kernels.
If it really bugs you (it would bug me), please submit a tested patch against:
v4l-dvb/v4l/versions.txt
to disable compilations of the offending drivers for older kernels.
Backward compatability fixes are not going to be appealing work for anyone, especially if you're not actually using the problem drivers.
Regards,
Andy
Quoted 1 line
David
Quoted 32 lines · Andy Walls
Quoted 24 lines · David Ward
Quoted 22 lines · Matt Doran
Hi there,
I tried using the latest v4l code on an Mythtv box running 2.6.20, but the v4l videodev module fails to load with the following warnings:
videodev: Unknown symbol
i2c_unregister_device
v4l2_common: Unknown symbolv4l2_device_register_subdevIt seems the "
i2c_unregister_device" function was added in 2.6.26. References to this function inv4l2-common.care enclosed in an ifdef like:#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 26)However in "
v4l2_device_unregister()" inv4l2-device.c, there is a
reference to "i2c_unregister_device" without any ifdefs. I am
running a pretty old kernel, but I'd guess anyone running 2.6.25 or
earlier will have this problem. It seems this code was added by
Mauro 3 weeks ago in this rev:Quoted 5 lines
Quoted 3 lines
http://linuxtv.org/hg/v4l-dvb/rev/87afa7a4ccdfI have been seeing the errors compiling
adv7343.candths7303.cunder 2.6.24 as well. Andy Walls and Chaithrika Subrahmanya had written patches for those two modules respectively, but there were some comments during the review of the patches, so I think they are still being worked on.
Quoted 9 lines
Well, just to manage expectations: I am not working on this. I do not advise waiting for something from me. ;)
As an end user, you work-around is to use "make menuconfig" (or whatever) as Matt did: disable the modules that aren't compiling on older kernels.
I agree, but the main problem I raise is the use of "i2c_unregister_device" in the main v4l module on Linux kernels that don't support it.
Regards,
Matt
Em Mon, 25 May 2009 09:10:17 +1000
Matt Doran <[email protected]> escreveu:
Quoted 15 lines
Hi there,
I tried using the latest v4l code on an Mythtv box running 2.6.20, but the v4l videodev module fails to load with the following warnings:
videodev: Unknown symbol
i2c_unregister_device
v4l2_common: Unknown symbolv4l2_device_register_subdevIt seems the "
i2c_unregister_device" function was added in 2.6.26. References to this function inv4l2-common.care enclosed in an ifdef like:#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 26)
Quoted 7 lines
However in "
v4l2_device_unregister()" inv4l2-device.c, there is a
reference to "i2c_unregister_device" without any ifdefs. I am running
a pretty old kernel, but I'd guess anyone running 2.6.25 or earlier will
have this problem. It seems this code was added by Mauro 3 weeks ago
in this rev:http://linuxtv.org/hg/v4l-dvb/rev/87afa7a4ccdf
I've just applied a patch at the tree that should fix this issue. It adds several tests and the code, but, hopefully, it should be possible even to use the IR's with kernels starting from 2.6.16.
Cheers,
Mauro
Quoted 24 lines · Mauro Carvalho Chehab
Em Mon, 25 May 2009 09:10:17 +1000
Matt Doran <[email protected]> escreveu:Quoted 21 lines
Hi there,
I tried using the latest v4l code on an Mythtv box running 2.6.20, but the v4l videodev module fails to load with the following warnings:
videodev: Unknown symbol
i2c_unregister_device
v4l2_common: Unknown symbolv4l2_device_register_subdevIt seems the "
i2c_unregister_device" function was added in 2.6.26. References to this function inv4l2-common.care enclosed in an ifdef like:#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 26)However in "
v4l2_device_unregister()" inv4l2-device.c, there is a
reference to "i2c_unregister_device" without any ifdefs. I am running
a pretty old kernel, but I'd guess anyone running 2.6.25 or earlier will
have this problem. It seems this code was added by Mauro 3 weeks ago
in this rev:
Quoted 5 lines
Quoted 1 line
http://linuxtv.org/hg/v4l-dvb/rev/87afa7a4ccdfI've just applied a patch at the tree that should fix this issue. It adds several tests and the code, but, hopefully, it should be possible even to use the IR's with kernels starting from 2.6.16.
Hi Mauro,
If you are referring to my recent patch, it needs a modification to be like other places in drivers/media/video. Patch below applies on top of the previous one.
---
From: Randy Dunlap <[email protected]>
Fix v4l2-device usage of i2c_unregister_device() and handle the case of CONFIG_I2C=m & CONFIG_MEDIA_VIDEO=y.
--- drivers/media/video/v4l2-device.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/media/video/v4l2-device.c +1 -1
@@ -85,7 +85,7 @@ void v4l2_device_unregister(struct v4l2_/* Unregister subdevs */ list_for_each_entry_safe (sd, next, &v4l2_dev->subdevs, list) {v4l2_device_unregister_subdev (sd); -#if defined(CONFIG_I2C ) || defined(CONFIG_I2C_MODULE ) +#if defined(CONFIG_I2C ) || (defined(CONFIG_I2C_MODULE ) && defined(MODULE ))if (sd->flags &V4L2_SUBDEV_FL_IS_I2C ) {struct i2c_client *client =v4l2_get_subdevdata (sd);
Signature · 3 lines
~Randy LPC 2009, Sept. 23-25, Portland, Oregon http://linuxplumbersconf.org/2009/
Quoted 17 lines · Mauro Carvalho Chehab
Em Mon, 25 May 2009 09:10:17 +1000
Matt Doran <[email protected]> escreveu:Quoted 13 lines
Hi there,
I tried using the latest v4l code on an Mythtv box running 2.6.20, but the v4l videodev module fails to load with the following warnings:
videodev: Unknown symbol
i2c_unregister_device
v4l2_common: Unknown symbolv4l2_device_register_subdevIt seems the "
i2c_unregister_device" function was added in 2.6.26. References to this function inv4l2-common.care enclosed in an ifdef like:#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 26)
Quoted 11 lines
Quoted 4 lines
However in "
v4l2_device_unregister()" inv4l2-device.c, there is a reference to "i2c_unregister_device" without any ifdefs. I am running a pretty old kernel, but I'd guess anyone running 2.6.25 or earlier will have this problem. It seems this code was added by Mauro 3 weeks ago in this rev:http://linuxtv.org/hg/v4l-dvb/rev/87afa7a4ccdfI've just applied a patch at the tree that should fix this issue. It adds several tests and the code, but, hopefully, it should be possible even to use the IR's with kernels starting from 2.6.16.
Thanks Mauro.
I've recompiled all drivers without compile error and I've been using everything for a few days now and it all works great.
Thanks again!
Matt
A message that is not in the archive (sent off-list or not yet received): [email protected]
Em Wed, 03 Jun 2009 21:50:21 +1000
Matt Doran <[email protected]> escreveu:
Quoted 19 lines
Quoted 9 lines · Mauro Carvalho Chehab
Em Mon, 25 May 2009 09:10:17 +1000
Matt Doran <[email protected]> escreveu:Quoted 5 lines
Hi there,
I tried using the latest v4l code on an Mythtv box running 2.6.20, but the v4l videodev module fails to load with the following warnings:
Quoted 9 lines
Quoted 3 lines
videodev: Unknown symbol
i2c_unregister_device
v4l2_common: Unknown symbolv4l2_device_register_subdevI've just applied a patch at the tree that should fix this issue. It adds several tests and the code, but, hopefully, it should be possible even to use the IR's with kernels starting from 2.6.16.
Quoted 4 lines
Thanks Mauro.
I've recompiled all drivers without compile error and I've been using everything for a few days now and it all works great.
Great!
Quoted 2 lines
Thanks again!
Anytime.
Cheers,
Mauro