Skip to contentSkip to conversation

Remove unneeded version.h includes (and add where needed).

PATCH Applied Jesper Juhl 24 participants 84 messages Jun 23, 2011 – Aug 2, 2011

Subsystems (45)
lore
Share & tools
lore
#0 lore raw

cover Remove unneeded version.h includes (and add where needed).

This patch series fixes up all reports of unneeded or missing linux/version.h includes reported by 'make versioncheck'.

I've manually inspected each file changed and also done build tests of 'allnoconfig', 'allmodconfig' and 'allyesconfig' on x86-64 with these patches and have encountered no problems.

All patches are against Linus' tree as of a few hours ago and I've tried to split the series sensibly by subdirectory and/or maintainer.

Please consider applying them and let me know if there are any issues that need to be worked out.
All patches will be submitted as replies to this mail with additional relevant people Cc'ed on each specific patch.

Thank you in advance.

Signature · 3 lines
Jesper Juhl <[email protected]>       http://www.chaosbits.net/
Don't top-post http://www.catb.org/jargon/html/T/top-post.html
Plain text mails only, please.
#1 lore raw

PATCH 1/37 Remove unneeded version.h includes from sound/

In the sound/ directory there are two files (flagged by 'make versioncheck'); sound/pci/asihpi/asihpi.c and sound/soc/codecs/wm8991.c that include linux/version.h although they don't need it. This patch removes the unneeded includes.

---
 sound/pci/asihpi/asihpi.c |    1 -
 sound/soc/codecs/wm8991.c |    1 -
 2 files changed, 0 insertions(+), 2 deletions(-)
sound/pci/asihpi/asihpi.c +0 -1
index 2ca6f4f..e3569bd 100644
@@ -27,7 +27,6 @@
 #include "hpioctl.h"
 
 #include <linux/pci.h>
-#include <linux/version.h>
 #include <linux/init.h>
 #include <linux/jiffies.h>
 #include <linux/slab.h>
sound/soc/codecs/wm8991.c +0 -1
index 3c2ee1b..6af23d0 100644
@@ -13,7 +13,6 @@
 
 #include <linux/module.h>
 #include <linux/moduleparam.h>
-#include <linux/version.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/delay.h>
Signature · 7 lines
1.7.5.2


-- 
Jesper Juhl <[email protected]>       http://www.chaosbits.net/
Don't top-post http://www.catb.org/jargon/html/T/top-post.html
Plain text mails only, please.
Applied
#2 lore raw

Re: [PATCH 01/37] Remove unneeded version.h includes from sound/

At Thu, 23 Jun 2011 23:54:40 +0200 (CEST),

Quoted 7 lines · Jesper Juhl

In the sound/ directory there are two files (flagged by 'make versioncheck'); sound/pci/asihpi/asihpi.c and sound/soc/codecs/wm8991.c that include linux/version.h although they don't need it. This patch removes the unneeded includes.

Thanks, applied to sound git tree now.

Takashi

Quoted 38 lines
---
 sound/pci/asihpi/asihpi.c |    1 -
 sound/soc/codecs/wm8991.c |    1 -
 2 files changed, 0 insertions(+), 2 deletions(-)
sound/pci/asihpi/asihpi.c +0 -1
index 2ca6f4f..e3569bd 100644
@@ -27,7 +27,6 @@
 #include "hpioctl.h"
 
 #include <linux/pci.h>
-#include <linux/version.h>
 #include <linux/init.h>
 #include <linux/jiffies.h>
 #include <linux/slab.h>
sound/soc/codecs/wm8991.c +0 -1
index 3c2ee1b..6af23d0 100644
@@ -13,7 +13,6 @@
 
 #include <linux/module.h>
 #include <linux/moduleparam.h>
-#include <linux/version.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/delay.h>
Signature · 7 lines
1.7.5.2


-- 
Jesper Juhl <[email protected]>       http://www.chaosbits.net/
Don't top-post http://www.catb.org/jargon/html/T/top-post.html
Plain text mails only, please.
#3 lore raw

PATCH 2/37 Remove unneeded version.h include from lib/

In reply to Jesper Juhl

This patch removes an unneeded include of linux/version.h from lib/dynamic_debug.c - identified by 'make versioncheck'. This is the only file in lib/ with this issue.

---
 lib/dynamic_debug.c |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)
lib/dynamic_debug.c +0 -1
index 75ca78f..79fc20b 100644
@@ -14,7 +14,6 @@
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/kallsyms.h>
-#include <linux/version.h>
 #include <linux/types.h>
 #include <linux/mutex.h>
 #include <linux/proc_fs.h>
Signature · 7 lines
1.7.5.2


-- 
Jesper Juhl <[email protected]>       http://www.chaosbits.net/
Don't top-post http://www.catb.org/jargon/html/T/top-post.html
Plain text mails only, please.
#4 lore raw

PATCH 3/37 Remove unneeded version.h includes from include/

In reply to Jesper Juhl

It was pointed out by 'make versioncheck' that some includes of linux/version.h were not needed in include/.
This patch removes them.

---
 include/linux/ceph/messenger.h |    1 -
 include/media/pwc-ioctl.h      |    1 -
 2 files changed, 0 insertions(+), 2 deletions(-)
include/linux/ceph/messenger.h +0 -1
index 31d91a6..291aa6e 100644
@@ -6,7 +6,6 @@
 #include <linux/net.h>
 #include <linux/radix-tree.h>
 #include <linux/uio.h>
-#include <linux/version.h>
 #include <linux/workqueue.h>
 
 #include "types.h"
include/media/pwc-ioctl.h +0 -1
index 0f19779..1ed1e61 100644
@@ -53,7 +53,6 @@
  */
 
 #include <linux/types.h>
-#include <linux/version.h>
 
 /* Enumeration of image sizes */
 #define PSZ_SQCIF	0x00
Signature · 7 lines
1.7.5.2


-- 
Jesper Juhl <[email protected]>       http://www.chaosbits.net/
Don't top-post http://www.catb.org/jargon/html/T/top-post.html
Plain text mails only, please.
Acked-by on v1 3/37
#5 lore raw

Re: [PATCH 03/37] Remove unneeded version.h includes from include/

Quoted 5 lines · Jesper Juhl

It was pointed out by 'make versioncheck' that some includes of linux/version.h were not needed in include/.
This patch removes them.

for the ceph bit.

sage

Quoted 44 lines
---
 include/linux/ceph/messenger.h |    1 -
 include/media/pwc-ioctl.h      |    1 -
 2 files changed, 0 insertions(+), 2 deletions(-)
include/linux/ceph/messenger.h +0 -1
index 31d91a6..291aa6e 100644
@@ -6,7 +6,6 @@
 #include <linux/net.h>
 #include <linux/radix-tree.h>
 #include <linux/uio.h>
-#include <linux/version.h>
 #include <linux/workqueue.h>
 
 #include "types.h"
include/media/pwc-ioctl.h +0 -1
index 0f19779..1ed1e61 100644
@@ -53,7 +53,6 @@
  */
 
 #include <linux/types.h>
-#include <linux/version.h>
 
 /* Enumeration of image sizes */
 #define PSZ_SQCIF	0x00
Signature · 12 lines
1.7.5.2


-- 
Jesper Juhl <[email protected]>       http://www.chaosbits.net/
Don't top-post http://www.catb.org/jargon/html/T/top-post.html
Plain text mails only, please.

--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
#6 lore raw

RFC 1/1 Don't use linux/version.h anymore to indicate a per-driver version - Was: Re: [PATCH 03/37] Remove unneeded version.h includes from include/

In reply to Jesper Juhl

Em 23-06-2011 18:58, Jesper Juhl escreveu:

Quoted 27 lines

It was pointed out by 'make versioncheck' that some includes of linux/version.h were not needed in include/.
This patch removes them.

---
 include/linux/ceph/messenger.h |    1 -
 include/media/pwc-ioctl.h      |    1 -
 2 files changed, 0 insertions(+), 2 deletions(-)
include/linux/ceph/messenger.h +0 -1
index 31d91a6..291aa6e 100644
@@ -6,7 +6,6 @@
 #include <linux/net.h>
 #include <linux/radix-tree.h>
 #include <linux/uio.h>
-#include <linux/version.h>
 #include <linux/workqueue.h>
 
 #include "types.h"
include/media/pwc-ioctl.h +0 -0
index 0f19779..1ed1e61 100644

include/media/pwc-ioctl.h line 58

Quoted 7 lines
include/media/pwc-ioctl.h +0 -1
@@ -53,7 +53,6 @@
  */
 
 #include <linux/types.h>
-#include <linux/version.h>
 
 /* Enumeration of image sizes */
 #define PSZ_SQCIF	0x00

The usage of version.h at the Linux media kernel is due to a V4L2 API requirement[1], where an ioctl query of VIDIOC_QUERYCAP type would return the driver version formatted with KERNEL_VERSION() macro.

[1] http://linuxtv.org/downloads/v4l-dvb-apis/vidioc-querycap.html

While a few driver maintainers are careful enough to increment it on every new kernel version where the driver was touched, others simply keep it outdated.

IMHO, it doesn't make much sense on having a per-driver version field: the V4L2 layer should be enough to abstract hardware differences, and to avoid userspace to have a per driver list of hacks. I don't think that the userspace applications are really using it. Module versions should just use the MODULE_VERSION() macro.

So, IMO, the better would be to convert this field into a V4L2 API version field instead like the enclosed patch. Of course, this also means to change the V4L2 API Docbook. After that, we can cleanup all those linux/version.h code on all V4L drivers.

The idea is that, every time we add something new at the V4L2 API, we'll increment it to match the current kernel version.

On a quick look, all drivers, except by one uses versions <= KERNEL_VERSION(3, 0, 0). The only exception is the pwc driver, with version is KERNEL_VERSION(10, 0, 12). Due to a bug on it, it also reports its version as: "10.0.14" at module version. The version 10.0.12 is reported there since 2006, even having suffered a major change, due to the removal of the V4L1 API, on changeset 479567ce3af7b99d645a3c53b8ca2fc65e46efdc. So, I think it would be safe to change it to 3.0.0, as using the version here, in the favor of a greater good. We can keep the driver-specific version only at

Comments?

If others are ok with that, I'll prepare the changesets.

Cheers,
Mauro

-

[media] v4l2 core: Use a per-API version instead of a per driver version

drivers/media/video/v4l2-ioctl.c +0 -0
index 213ba7d..d8fa571 100644
@@ -16,6 +16,7 @@
 #include <linux/slab.h>
 #include <linux/types.h>
 #include <linux/kernel.h>diff --git a/drivers/media/video/v4l2-ioctl.c b/drivers/media/video/v4l2-ioctl.c

index 213ba7d..b19ad56 100644

drivers/media/video/v4l2-ioctl.c +7 -1
@@ -16,6 +16,7 @@
 #include <linux/slab.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
+#include <linux/version.h>
 
 #include <linux/videodev2.h>
 
@@ -27,6 +28,8 @@
 #include <media/v4l2-device.h>
 #include <media/v4l2-chip-ident.h>
 
+#define V4L2_API_VERSION KERNEL_VERSION(3, 0, 0)
+
 #define dbgarg(cmd, fmt, arg...) \
 		do {							\
 		    if (vfd->debug & V4L2_DEBUG_IOCTL_ARG) {		\
@@ -606,13 +609,16 @@ static long __video_do_ioctl(struct file *file,
 			break;
 
 		ret = ops->vidioc_querycap(file, fh, cap);
-		if (!ret)
+		if (!ret) {
+			cap->version = V4L2_API_VERSION;
+
 			dbgarg(cmd, "driver=%s, card=%s, bus=%s, "
 					"version=0x%08x, "
 					"capabilities=0x%08x\n",
 					cap->driver, cap->card, cap->bus_info,
 					cap->version,
 					cap->capabilities);
+		}
 		break;
 	}
 
#7 lore raw

Re: [RFC] Don't use linux/version.h anymore to indicate a per-driver version - Was: Re: [PATCH 03/37] Remove unneeded version.h includes from include/

Quoted 41 lines · On Friday, June 24, 2011 13:21:14 Mauro Carvalho Chehab wrote:

Em 23-06-2011 18:58, Jesper Juhl escreveu:

Quoted 27 lines

It was pointed out by 'make versioncheck' that some includes of linux/version.h were not needed in include/.
This patch removes them.

---
 include/linux/ceph/messenger.h |    1 -
 include/media/pwc-ioctl.h      |    1 -
 2 files changed, 0 insertions(+), 2 deletions(-)
include/linux/ceph/messenger.h +0 -1
index 31d91a6..291aa6e 100644
@@ -6,7 +6,6 @@
 #include <linux/net.h>
 #include <linux/radix-tree.h>
 #include <linux/uio.h>
-#include <linux/version.h>
 #include <linux/workqueue.h>
 
 #include "types.h"
include/media/pwc-ioctl.h +0 -0
index 0f19779..1ed1e61 100644

include/media/pwc-ioctl.h line 58

Quoted 7 lines
include/media/pwc-ioctl.h +0 -1
@@ -53,7 +53,6 @@
  */
 
 #include <linux/types.h>
-#include <linux/version.h>
 
 /* Enumeration of image sizes */
 #define PSZ_SQCIF	0x00

The usage of version.h at the Linux media kernel is due to a V4L2 API requirement[1], where an ioctl query of VIDIOC_QUERYCAP type would return the driver version formatted with KERNEL_VERSION() macro.

Quoted 8 lines

[1] http://linuxtv.org/downloads/v4l-dvb-apis/vidioc-querycap.html

While a few driver maintainers are careful enough to increment it on every new kernel version where the driver was touched, others simply keep it outdated.

IMHO, it doesn't make much sense on having a per-driver version field: the V4L2 layer should be enough to abstract hardware differences, and to avoid userspace to have a per driver list of hacks. I don't think that the userspace applications are really using it.

Applications are certainly using it. I know this for a fact for the ivtv driver where feature improvements are marked that way.

Without more research on how this is used I am not comfortable with this.

Regards,

Hans

Quoted 82 lines

Module versions should just use the MODULE_VERSION() macro.

So, IMO, the better would be to convert this field into a V4L2 API version field instead like the enclosed patch. Of course, this also means to change the V4L2 API Docbook. After that, we can cleanup all those linux/version.h code on all V4L drivers.

The idea is that, every time we add something new at the V4L2 API, we'll increment it to match the current kernel version.

On a quick look, all drivers, except by one uses versions <= KERNEL_VERSION(3, 0, 0). The only exception is the pwc driver, with version is KERNEL_VERSION(10, 0, 12). Due to a bug on it, it also reports its version as: "10.0.14" at module version. The version 10.0.12 is reported there since 2006, even having suffered a major change, due to the removal of the V4L1 API, on changeset 479567ce3af7b99d645a3c53b8ca2fc65e46efdc. So, I think it would be safe to change it to 3.0.0, as using the version here, in the favor of a greater good. We can keep the driver-specific version only at

Comments?

If others are ok with that, I'll prepare the changesets.

Cheers,
Mauro

-

[media] v4l2 core: Use a per-API version instead of a per driver version

drivers/media/video/v4l2-ioctl.c +0 -0
index 213ba7d..d8fa571 100644
@@ -16,6 +16,7 @@
 #include <linux/slab.h>
 #include <linux/types.h>
 #include <linux/kernel.h>diff --git a/drivers/media/video/v4l2-ioctl.c b/drivers/media/video/v4l2-ioctl.c

index 213ba7d..b19ad56 100644

drivers/media/video/v4l2-ioctl.c +7 -2
@@ -16,6 +16,7 @@
 #include <linux/slab.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
+#include <linux/version.h>
 
 #include <linux/videodev2.h>
 
@@ -27,6 +28,8 @@
 #include <media/v4l2-device.h>
 #include <media/v4l2-chip-ident.h>
 
+#define V4L2_API_VERSION KERNEL_VERSION(3, 0, 0)
+
 #define dbgarg(cmd, fmt, arg...) \
 		do {							\
 		    if (vfd->debug & V4L2_DEBUG_IOCTL_ARG) {		\
@@ -606,13 +609,16 @@ static long __video_do_ioctl(struct file *file,
 			break;
 
 		ret = ops->vidioc_querycap(file, fh, cap);
-		if (!ret)
+		if (!ret) {
+			cap->version = V4L2_API_VERSION;
+
 			dbgarg(cmd, "driver=%s, card=%s, bus=%s, "
 					"version=0x%08x, "
 					"capabilities=0x%08x\n",
 					cap->driver, cap->card, cap->bus_info,
 					cap->version,
 					cap->capabilities);
+		}
 		break;
 	}
 
--

To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

#8 lore raw

Re: [RFC] Don't use linux/version.h anymore to indicate a per-driver version - Was: Re: [PATCH 03/37] Remove unneeded version.h includes from include/

Quoted 8 lines

Applications are certainly using it. I know this for a fact for the ivtv driver where feature improvements are marked that way.

Without more research on how this is used I am not comfortable with this.

Regards,

       Hans

MythTV has a bunch of these too (mainly so the code can adapt to driver bugs that are fixed in later revisions). Putting Mauro's patch upstream will definitely cause breakage.

Also, it screws up the ability for users to get fixes through the media_build tree (unless you are increasing the revision constantly with every merge you do).

Devin

Signature · 6 lines
Devin J. Heitmueller - Kernel Labs
http://www.kernellabs.com
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
#9 lore raw

Re: [RFC] Don't use linux/version.h anymore to indicate a per-driver version - Was: Re: [PATCH 03/37] Remove unneeded version.h includes from include/

Em 24-06-2011 09:20, Devin Heitmueller escreveu:

Quoted 5 lines
Quoted 5 lines

Applications are certainly using it. I know this for a fact for the ivtv driver where feature improvements are marked that way.

Without more research on how this is used I am not comfortable with this.

Quoted 7 lines
Quoted 3 lines

Regards,

Hans

MythTV has a bunch of these too (mainly so the code can adapt to driver bugs that are fixed in later revisions). Putting Mauro's patch upstream will definitely cause breakage.

It shouldn't, as ivtv driver version is lower than 3.0.0. All the old bug fixes aren't needed if version is >= 3.0.0.

Besides that, trusting on a driver revision number to detect that a bug is there is not the right thing to do, as version numbers are never increased at the stable kernels (nor distro modified kernels take care of increasing revision number as patches are backported there).

In other words, relying on it doesn't work fine.

Quoted 3 lines

Also, it screws up the ability for users to get fixes through the media_build tree (unless you are increasing the revision constantly with every merge you do).

Why? Developers don't increase version numbers on every applied patch (with is great, as it avoids merge conflicts).

Mauro

#10 lore raw

Re: [RFC] Don't use linux/version.h anymore to indicate a per-driver version - Was: Re: [PATCH 03/37] Remove unneeded version.h includes from include/

Quoted 11 lines · Mauro Carvalho Chehab
Quoted 3 lines

MythTV has a bunch of these too (mainly so the code can adapt to driver bugs that are fixed in later revisions).  Putting Mauro's patch upstream will definitely cause breakage.

It shouldn't, as ivtv driver version is lower than 3.0.0. All the old bug fixes aren't needed if version is >= 3.0.0.

Besides that, trusting on a driver revision number to detect that a bug is there is not the right thing to do, as version numbers are never increased at the stable kernels (nor distro modified kernels take care of increasing revision number as patches are backported there).

The versions are increased at the discretion of the driver maintainer, usually when there is some userland visible change in driver behavior.
I assure you the application developers don't *want* to rely on such
a mechanism, but there have definitely been cases in the past where there was no easy way to detect the behavior of the driver from userland.

It lets application developers work around things like violations of the V4L2 standard which get fixed in newer revisions of the driver. It provides them the ability to put a hack in their code that says "if (version < X) then this driver feature is broken and I shouldn't use it."

Quoted 1 line

In other words, relying on it doesn't work fine.

It's the best (and really only solution) we have today.

Quoted 6 lines
Quoted 3 lines

Also, it screws up the ability for users to get fixes through the media_build tree (unless you are increasing the revision constantly with every merge you do).

Why? Developers don't increase version numbers on every applied patch (with is great, as it avoids merge conflicts).

The driver maintainer doesn't *have* to increase the version - he does it when he thinks it's appropriate. The point is you are taking that discretion out of *their* hands, and you yourself are unaware of when it is actually needed.

You need to stop looking at this from a purist standpoint and think of how application developers actually use the API. They need tools like this to allow them to work around driver bugs while having a source codebase which operates against different kernels (including kernels that may still have those bugs).

Sure, in a perfect world where drivers don't have bugs and applications don't have to run against older kernels, what you are saying is not illogical. But then again, we don't live in a perfect world.

Devin

Signature · 6 lines
Devin J. Heitmueller - Kernel Labs
http://www.kernellabs.com
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
#11 lore raw

Re: [RFC] Don't use linux/version.h anymore to indicate a per-driver version - Was: Re: [PATCH 03/37] Remove unneeded version.h includes from include/

Quoted 21 lines · On Friday, June 24, 2011 15:45:59 Devin Heitmueller wrote:
Quoted 11 lines · Mauro Carvalho Chehab
Quoted 3 lines

MythTV has a bunch of these too (mainly so the code can adapt to driver bugs that are fixed in later revisions). Putting Mauro's patch upstream will definitely cause breakage.

It shouldn't, as ivtv driver version is lower than 3.0.0. All the old bug fixes aren't needed if version is >= 3.0.0.

Besides that, trusting on a driver revision number to detect that a bug is there is not the right thing to do, as version numbers are never increased at the stable kernels (nor distro modified kernels take care of increasing revision number as patches are backported there).

The versions are increased at the discretion of the driver maintainer, usually when there is some userland visible change in driver behavior.
I assure you the application developers don't *want* to rely on such
a mechanism, but there have definitely been cases in the past where there was no easy way to detect the behavior of the driver from userland.

Quoted 5 lines

It lets application developers work around things like violations of the V4L2 standard which get fixed in newer revisions of the driver. It provides them the ability to put a hack in their code that says "if (version < X) then this driver feature is broken and I shouldn't use it."

Indeed. Ideally we shouldn't need it. But reality is different.

What we have right now works and I see no compelling reason to change the behavior.

Regards,

Hans

Quoted 30 lines
Quoted 1 line

In other words, relying on it doesn't work fine.

It's the best (and really only solution) we have today.

Quoted 6 lines
Quoted 3 lines

Also, it screws up the ability for users to get fixes through the media_build tree (unless you are increasing the revision constantly with every merge you do).

Why? Developers don't increase version numbers on every applied patch (with is great, as it avoids merge conflicts).

The driver maintainer doesn't *have* to increase the version - he does it when he thinks it's appropriate. The point is you are taking that discretion out of *their* hands, and you yourself are unaware of when it is actually needed.

You need to stop looking at this from a purist standpoint and think of how application developers actually use the API. They need tools like this to allow them to work around driver bugs while having a source codebase which operates against different kernels (including kernels that may still have those bugs).

Sure, in a perfect world where drivers don't have bugs and applications don't have to run against older kernels, what you are saying is not illogical. But then again, we don't live in a perfect world.

Devin

#12 lore raw

Re: [RFC] Don't use linux/version.h anymore to indicate a per-driver version - Was: Re: [PATCH 03/37] Remove unneeded version.h includes from include/

Em 24-06-2011 10:54, Hans Verkuil escreveu:

Quoted 28 lines · On Friday, June 24, 2011 15:45:59 Devin Heitmueller wrote:
Quoted 21 lines
Quoted 11 lines · Mauro Carvalho Chehab
Quoted 3 lines

MythTV has a bunch of these too (mainly so the code can adapt to driver bugs that are fixed in later revisions). Putting Mauro's patch upstream will definitely cause breakage.

It shouldn't, as ivtv driver version is lower than 3.0.0. All the old bug fixes aren't needed if version is >= 3.0.0.

Besides that, trusting on a driver revision number to detect that a bug is there is not the right thing to do, as version numbers are never increased at the stable kernels (nor distro modified kernels take care of increasing revision number as patches are backported there).

The versions are increased at the discretion of the driver maintainer, usually when there is some userland visible change in driver behavior.
I assure you the application developers don't *want* to rely on such
a mechanism, but there have definitely been cases in the past where there was no easy way to detect the behavior of the driver from userland.

Quoted 5 lines

It lets application developers work around things like violations of the V4L2 standard which get fixed in newer revisions of the driver. It provides them the ability to put a hack in their code that says "if (version < X) then this driver feature is broken and I shouldn't use it."

Quoted 4 lines

Indeed. Ideally we shouldn't need it. But reality is different.

What we have right now works and I see no compelling reason to change the behavior.

A per-driver version only works if the user is running a vanilla kernel without any stable patches applied.

I doubt that this covers the large amount of the users: they'll either use an stable patched kernel or a distribution-specific one. On both cases, the driver version is not associated with a bug fix, as the driver maintainers just take care of increasing the driver version once per each new kernel version (when they care enough).

Also, a git blame for the V4L2 drivers shows that only a few drivers have their version increased as changes are applied there. So, relying on cap->version has a minimal chance of working only with a few drivers, with vanilla *.0 kernels.

Anyway, I think that we should at least apply the enclosed patch, and remove KERNEL_VERSION and linux/version.h includes for the drivers that didn't change its version in the past 2 kernel releases.

I'll work later on the linux/version.h cleanup patches.

Cheers,
Mauro

-

[media] v4l2-ioctl: Add a default value for kernel version

Most drivers don't increase kernel versions as newer features are added or bug fixes are solved. So, vidioc_querycap returned value for cap->version is meaningless. Instead of keeping this situation forever, let's add a default value matching the current Linux version.

Drivers that want to keep their own version control can still do it, as they can override the default value for cap->version.

drivers/media/video/v4l2-ioctl.c +2 -0
index 213ba7d..61ac6bf 100644
@@ -16,6 +16,7 @@
 #include <linux/slab.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
+#include <linux/version.h>
 
 #include <linux/videodev2.h>
 
@@ -605,6 +606,7 @@ static long __video_do_ioctl(struct file *file,
 		if (!ops->vidioc_querycap)
 			break;
 
+		cap->version = LINUX_VERSION_CODE;
 		ret = ops->vidioc_querycap(file, fh, cap);
 		if (!ret)
 			dbgarg(cmd, "driver=%s, card=%s, bus=%s, "
#13 lore raw

PATCH 1/1 Stop using linux/version.h on most drivers

All the modified drivers didn't have any version increment since Jan, 1 2011. Several of them didn't have any version increment for a long time, even having new features and important bug fixes happening.

As we're now filling the QUERYCAP version with the current Kernel Release, we don't need to maintain a per-driver version control anymore. So, let's just use the default.

In order to preserve the Kernel module version history, a KERNEL_VERSION() macro were added to all modified drivers, and the extraver number were incremented.

I opted to preserve the per-driver version control to a few
drivers: cx18, davinci, fsl-viu, gspca, ivtv, m5mols, soc_camera, pwc, s2255, s5p-fimc and sh_vou. The rationale is that the per-driver version control seems to be actively maintained on those.

A few drivers are still using the legacy way to handle ioctl's. So, we can't do such change on them, otherwise, they'll break. Those are: uvc, pvrusb2, et61x251 and sn9c102.

Yet, I think that the better for them would be to just use the default version numbering, instead of doing that by themselves.

While here, removed a few not needed include linux/version.h.

---

Note: This patch assumes that cap->version = LINUX_VERSION_CODE is filled inside v4l2-ioctl [1]

[1] http://www.mail-archive.com/[email protected]/msg33547.html

 drivers/media/video/arv.c                       |    5 ++---
 drivers/media/video/au0828/au0828-core.c        |    1 +
 drivers/media/video/au0828/au0828-video.c       |    5 -----
 drivers/media/video/bt8xx/bttv-driver.c         |   14 ++++----------
 drivers/media/video/bt8xx/bttvp.h               |    3 ---
 drivers/media/video/bw-qcam.c                   |    3 +--
 drivers/media/video/c-qcam.c                    |    3 +--
 drivers/media/video/cpia2/cpia2.h               |    5 -----
 drivers/media/video/cpia2/cpia2_v4l.c           |   12 ++++--------
 drivers/media/video/cx231xx/cx231xx-video.c     |   14 ++++----------
 drivers/media/video/cx231xx/cx231xx.h           |    1 -
 drivers/media/video/cx23885/altera-ci.c         |    1 -
 drivers/media/video/cx23885/cx23885-417.c       |    1 -
 drivers/media/video/cx23885/cx23885-core.c      |   13 +++----------
 drivers/media/video/cx23885/cx23885-video.c     |    1 -
 drivers/media/video/cx23885/cx23885.h           |    3 +--
 drivers/media/video/cx88/cx88-alsa.c            |   19 ++++---------------
 drivers/media/video/cx88/cx88-blackbird.c       |   20 +++-----------------
 drivers/media/video/cx88/cx88-dvb.c             |   18 +++---------------
 drivers/media/video/cx88/cx88-mpeg.c            |   11 +++--------
 drivers/media/video/cx88/cx88-video.c           |   21 +++------------------
 drivers/media/video/cx88/cx88.h                 |    4 ++--
 drivers/media/video/em28xx/em28xx-video.c       |   14 +++++---------
 drivers/media/video/gspca/gl860/gl860.h         |    1 -
 drivers/media/video/hdpvr/hdpvr-core.c          |    1 +
 drivers/media/video/hdpvr/hdpvr-video.c         |    2 --
 drivers/media/video/hdpvr/hdpvr.h               |    6 ------
 drivers/media/video/mem2mem_testdev.c           |    4 +---
 drivers/media/video/pms.c                       |    4 +---
 drivers/media/video/pwc/pwc-ioctl.h             |    1 -
 drivers/media/video/pwc/pwc.h                   |    8 ++++----
 drivers/media/video/saa7134/saa7134-core.c      |   12 ++++--------
 drivers/media/video/saa7134/saa7134-empress.c   |    1 -
 drivers/media/video/saa7134/saa7134-video.c     |    2 --
 drivers/media/video/saa7134/saa7134.h           |    3 +--
 drivers/media/video/saa7164/saa7164.h           |    1 -
 drivers/media/video/timblogiw.c                 |    1 -
 drivers/media/video/tlg2300/pd-common.h         |    1 -
 drivers/media/video/tlg2300/pd-main.c           |    1 +
 drivers/media/video/tlg2300/pd-radio.c          |    2 --
 drivers/media/video/usbvision/usbvision-video.c |   12 +-----------
 drivers/media/video/vino.c                      |    5 +----
 drivers/media/video/vivi.c                      |   14 ++++----------
 drivers/media/video/w9966.c                     |    4 +---
 drivers/media/video/zoran/zoran.h               |    4 ----
 drivers/media/video/zoran/zoran_card.c          |    7 +++++--
 drivers/media/video/zoran/zoran_driver.c        |    3 ---
 drivers/media/video/zr364xx.c                   |    6 ++----
 48 files changed, 71 insertions(+), 227 deletions(-)
drivers/media/video/arv.c +2 -3
index f989f28..b6ed44a 100644
@@ -27,7 +27,6 @@
 #include <linux/slab.h>
 #include <linux/mm.h>
 #include <linux/sched.h>
-#include <linux/version.h>
 #include <linux/videodev2.h>
 #include <media/v4l2-common.h>
 #include <media/v4l2-device.h>
@@ -54,7 +53,7 @@
  */
 #define USE_INT		0	/* Don't modify */
 
-#define VERSION	"0.04"
+#define VERSION	"0.0.5"
 
 #define ar_inl(addr) 		inl((unsigned long)(addr))
 #define ar_outl(val, addr)	outl((unsigned long)(val), (unsigned long)(addr))
@@ -404,7 +403,6 @@ static int ar_querycap(struct file *file, void  *priv,
 	strlcpy(vcap->driver, ar->vdev.name, sizeof(vcap->driver));
 	strlcpy(vcap->card, "Colour AR VGA", sizeof(vcap->card));
 	strlcpy(vcap->bus_info, "Platform", sizeof(vcap->bus_info));
-	vcap->version = KERNEL_VERSION(0, 0, 4);
 	vcap->capabilities = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_READWRITE;
 	return 0;
 }
@@ -879,3 +877,4 @@ module_exit(ar_cleanup_module);
 MODULE_AUTHOR("Takeo Takahashi <[email protected]>");
 MODULE_DESCRIPTION("Colour AR M64278(VGA) for Video4Linux");
 MODULE_LICENSE("GPL");
+MODULE_VERSION(VERSION);
drivers/media/video/au0828/au0828-core.c +1 -0
index ca342e4..1e4ce50 100644
@@ -292,3 +292,4 @@ module_exit(au0828_exit);
 MODULE_DESCRIPTION("Driver for Auvitek AU0828 based products");
 MODULE_AUTHOR("Steven Toth <[email protected]>");
 MODULE_LICENSE("GPL");
+MODULE_VERSION("0.0.2");
drivers/media/video/au0828/au0828-video.c +0 -5
index c03eb29..0b3e481 100644
@@ -33,7 +33,6 @@
 #include <linux/init.h>
 #include <linux/device.h>
 #include <linux/suspend.h>
-#include <linux/version.h>
 #include <media/v4l2-common.h>
 #include <media/v4l2-ioctl.h>
 #include <media/v4l2-chip-ident.h>
@@ -43,8 +42,6 @@
 
 static DEFINE_MUTEX(au0828_sysfs_lock);
 
-#define AU0828_VERSION_CODE KERNEL_VERSION(0, 0, 1)
-
 /* ------------------------------------------------------------------
 	Videobuf operations
    ------------------------------------------------------------------*/
@@ -1254,8 +1251,6 @@ static int vidioc_querycap(struct file *file, void  *priv,
 	strlcpy(cap->card, dev->board.name, sizeof(cap->card));
 	strlcpy(cap->bus_info, dev->v4l2_dev.name, sizeof(cap->bus_info));
 
-	cap->version = AU0828_VERSION_CODE;
-
 	/*set the device capabilities */
 	cap->capabilities = V4L2_CAP_VIDEO_CAPTURE |
 		V4L2_CAP_VBI_CAPTURE |
drivers/media/video/bt8xx/bttv-driver.c +4 -10
index a97cf27..696e978 100644
@@ -57,6 +57,7 @@
 
 #include <media/saa6588.h>
 
+#define BTTV_VERSION "0.9.19"
 
 unsigned int bttv_num;			/* number of Bt848s in use */
 struct bttv *bttvs[BTTV_MAX];
@@ -163,6 +164,7 @@ MODULE_PARM_DESC(radio_nr, "radio device numbers");
 MODULE_DESCRIPTION("bttv - v4l/v4l2 driver module for bt848/878 based cards");
 MODULE_AUTHOR("Ralph Metzler & Marcus Metzler & Gerd Knorr");
 MODULE_LICENSE("GPL");
+MODULE_VERSION(BTTV_VERSION);
 
 /* ----------------------------------------------------------------------- */
 /* sysfs                                                                   */
@@ -2616,7 +2618,6 @@ static int bttv_querycap(struct file *file, void  *priv,
 	strlcpy(cap->card, btv->video_dev->name, sizeof(cap->card));
 	snprintf(cap->bus_info, sizeof(cap->bus_info),
 		 "PCI:%s", pci_name(btv->c.pci));
-	cap->version = BTTV_VERSION_CODE;
 	cap->capabilities =
 		V4L2_CAP_VIDEO_CAPTURE |
 		V4L2_CAP_VBI_CAPTURE |
@@ -3416,7 +3417,6 @@ static int radio_querycap(struct file *file, void *priv,
 	strcpy(cap->driver, "bttv");
 	strlcpy(cap->card, btv->radio_dev->name, sizeof(cap->card));
 	sprintf(cap->bus_info, "PCI:%s", pci_name(btv->c.pci));
-	cap->version = BTTV_VERSION_CODE;
 	cap->capabilities = V4L2_CAP_TUNER;
 
 	return 0;
@@ -4585,14 +4585,8 @@ static int __init bttv_init_module(void)
 
 	bttv_num = 0;
 
-	printk(KERN_INFO "bttv: driver version %d.%d.%d loaded\n",
-	       (BTTV_VERSION_CODE >> 16) & 0xff,
-	       (BTTV_VERSION_CODE >> 8) & 0xff,
-	       BTTV_VERSION_CODE & 0xff);
-#ifdef SNAPSHOT
-	printk(KERN_INFO "bttv: snapshot date %04d-%02d-%02d\n",
-	       SNAPSHOT/10000, (SNAPSHOT/100)%100, SNAPSHOT%100);
-#endif
+	printk(KERN_INFO "bttv: driver version %s loaded\n",
+	       BTTV_VERSION);
 	if (gbuffers < 2 || gbuffers > VIDEO_MAX_FRAME)
 		gbuffers = 2;
 	if (gbufsize > BTTV_MAX_FBUF)
drivers/media/video/bt8xx/bttvp.h +0 -3
index 9b776fa..318edf2 100644
@@ -25,9 +25,6 @@
 #ifndef _BTTVP_H_
 #define _BTTVP_H_
 
-#include <linux/version.h>
-#define BTTV_VERSION_CODE KERNEL_VERSION(0,9,18)
-
 #include <linux/types.h>
 #include <linux/wait.h>
 #include <linux/i2c.h>
drivers/media/video/bw-qcam.c +1 -2
index c119350..2fc998e 100644
@@ -71,7 +71,6 @@ OTHER DEALINGS IN THE SOFTWARE.
 #include <linux/mm.h>
 #include <linux/parport.h>
 #include <linux/sched.h>
-#include <linux/version.h>
 #include <linux/videodev2.h>
 #include <linux/mutex.h>
 #include <asm/uaccess.h>
@@ -647,7 +646,6 @@ static int qcam_querycap(struct file *file, void  *priv,
 	strlcpy(vcap->driver, qcam->v4l2_dev.name, sizeof(vcap->driver));
 	strlcpy(vcap->card, "B&W Quickcam", sizeof(vcap->card));
 	strlcpy(vcap->bus_info, "parport", sizeof(vcap->bus_info));
-	vcap->version = KERNEL_VERSION(0, 0, 2);
 	vcap->capabilities = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_READWRITE;
 	return 0;
 }
@@ -1092,3 +1090,4 @@ module_init(init_bw_qcams);
 module_exit(exit_bw_qcams);
 
 MODULE_LICENSE("GPL");
+MODULE_VERSION("0.0.3");
drivers/media/video/c-qcam.c +1 -2
index 24fc009..b8d800e 100644
@@ -35,7 +35,6 @@
 #include <linux/sched.h>
 #include <linux/mutex.h>
 #include <linux/jiffies.h>
-#include <linux/version.h>
 #include <linux/videodev2.h>
 #include <asm/uaccess.h>
 #include <media/v4l2-device.h>
@@ -517,7 +516,6 @@ static int qcam_querycap(struct file *file, void  *priv,
 	strlcpy(vcap->driver, qcam->v4l2_dev.name, sizeof(vcap->driver));
 	strlcpy(vcap->card, "Color Quickcam", sizeof(vcap->card));
 	strlcpy(vcap->bus_info, "parport", sizeof(vcap->bus_info));
-	vcap->version = KERNEL_VERSION(0, 0, 3);
 	vcap->capabilities = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_READWRITE;
 	return 0;
 }
@@ -886,6 +884,7 @@ static void __exit cqcam_cleanup(void)
 MODULE_AUTHOR("Philip Blundell <[email protected]>");
 MODULE_DESCRIPTION(BANNER);
 MODULE_LICENSE("GPL");
+MODULE_VERSION("0.0.4");
 
 module_init(cqcam_init);
 module_exit(cqcam_cleanup);
drivers/media/video/cpia2/cpia2.h +0 -5
index 6d6d184..ab25218 100644
@@ -31,7 +31,6 @@
 #ifndef __CPIA2_H__
 #define __CPIA2_H__
 
-#include <linux/version.h>
 #include <linux/videodev2.h>
 #include <media/v4l2-common.h>
 #include <linux/usb.h>
@@ -43,10 +42,6 @@
 /* define for verbose debug output */
 //#define _CPIA2_DEBUG_
 
-#define CPIA2_MAJ_VER	3
-#define CPIA2_MIN_VER   0
-#define CPIA2_PATCH_VER	0
-
 /***
  * Image defines
  ***/
drivers/media/video/cpia2/cpia2_v4l.c +4 -8
index 40eb632..077eb1d 100644
@@ -29,8 +29,7 @@
  *		Alan Cox <[email protected]>
  ****************************************************************************/
 
-#include <linux/version.h>
-
+#define CPIA_VERSION "3.0.1"
 
 #include <linux/module.h>
 #include <linux/time.h>
@@ -80,6 +79,7 @@ MODULE_AUTHOR("Steve Miller (STMicroelectronics) <[email protected]>");
 MODULE_DESCRIPTION("V4L-driver for STMicroelectronics CPiA2 based cameras");
 MODULE_SUPPORTED_DEVICE("video");
 MODULE_LICENSE("GPL");
+MODULE_VERSION(CPIA_VERSION);
 
 #define ABOUT "V4L-Driver for Vision CPiA2 based cameras"
 
@@ -465,9 +465,6 @@ static int cpia2_querycap(struct file *file, void *fh, struct v4l2_capability *v
 	if (usb_make_path(cam->dev, vc->bus_info, sizeof(vc->bus_info)) <0)
 		memset(vc->bus_info,0, sizeof(vc->bus_info));
 
-	vc->version = KERNEL_VERSION(CPIA2_MAJ_VER, CPIA2_MIN_VER,
-				     CPIA2_PATCH_VER);
-
 	vc->capabilities = V4L2_CAP_VIDEO_CAPTURE |
 			   V4L2_CAP_READWRITE |
 			   V4L2_CAP_STREAMING;
@@ -1558,8 +1555,8 @@ static void __init check_parameters(void)
  *****************************************************************************/
 static int __init cpia2_init(void)
 {
-	LOG("%s v%d.%d.%d\n",
-	    ABOUT, CPIA2_MAJ_VER, CPIA2_MIN_VER, CPIA2_PATCH_VER);
+	LOG("%s v%s\n",
+	    ABOUT, CPIA_VERSION);
 	check_parameters();
 	cpia2_usb_init();
 	return 0;
@@ -1579,4 +1576,3 @@ static void __exit cpia2_exit(void)
 
 module_init(cpia2_init);
 module_exit(cpia2_exit);
-
drivers/media/video/cx231xx/cx231xx-video.c +4 -10
index a69c24d..21fa547 100644
@@ -29,7 +29,6 @@
 #include <linux/bitmap.h>
 #include <linux/usb.h>
 #include <linux/i2c.h>
-#include <linux/version.h>
 #include <linux/mm.h>
 #include <linux/mutex.h>
 #include <linux/slab.h>
@@ -45,7 +44,7 @@
 #include "cx231xx.h"
 #include "cx231xx-vbi.h"
 
-#define CX231XX_VERSION_CODE            KERNEL_VERSION(0, 0, 1)
+#define CX231XX_VERSION "0.0.2"
 
 #define DRIVER_AUTHOR   "Srinivasa Deevi <[email protected]>"
 #define DRIVER_DESC     "Conexant cx231xx based USB video device driver"
@@ -70,6 +69,7 @@ do {\
 MODULE_AUTHOR(DRIVER_AUTHOR);
 MODULE_DESCRIPTION(DRIVER_DESC);
 MODULE_LICENSE("GPL");
+MODULE_VERSION(CX231XX_VERSION);
 
 static unsigned int card[]     = {[0 ... (CX231XX_MAXBOARDS - 1)] = UNSET };
 static unsigned int video_nr[] = {[0 ... (CX231XX_MAXBOARDS - 1)] = UNSET };
@@ -1869,8 +1869,6 @@ static int vidioc_querycap(struct file *file, void *priv,
 	strlcpy(cap->card, cx231xx_boards[dev->model].name, sizeof(cap->card));
 	usb_make_path(dev->udev, cap->bus_info, sizeof(cap->bus_info));
 
-	cap->version = CX231XX_VERSION_CODE;
-
 	cap->capabilities = V4L2_CAP_VBI_CAPTURE |
 #if 0
 		V4L2_CAP_SLICED_VBI_CAPTURE |
@@ -2057,7 +2055,6 @@ static int radio_querycap(struct file *file, void *priv,
 	strlcpy(cap->card, cx231xx_boards[dev->model].name, sizeof(cap->card));
 	usb_make_path(dev->udev, cap->bus_info, sizeof(cap->bus_info));
 
-	cap->version = CX231XX_VERSION_CODE;
 	cap->capabilities = V4L2_CAP_TUNER;
 	return 0;
 }
@@ -2570,11 +2567,8 @@ int cx231xx_register_analog_devices(struct cx231xx *dev)
 {
 	int ret;
 
-	cx231xx_info("%s: v4l2 driver version %d.%d.%d\n",
-		     dev->name,
-		     (CX231XX_VERSION_CODE >> 16) & 0xff,
-		     (CX231XX_VERSION_CODE >> 8) & 0xff,
-		     CX231XX_VERSION_CODE & 0xff);
+	cx231xx_info("%s: v4l2 driver version %s\n",
+		     dev->name, CX231XX_VERSION);
 
 	/* set default norm */
 	/*dev->norm = cx231xx_video_template.current_norm; */
drivers/media/video/cx231xx/cx231xx.h +0 -1
index b39b85e..c8d0d3d 100644
@@ -114,7 +114,6 @@
 	V4L2_STD_PAL_BG |  V4L2_STD_PAL_DK    |  V4L2_STD_PAL_I    | \
 	V4L2_STD_PAL_M  |  V4L2_STD_PAL_N     |  V4L2_STD_PAL_Nc   | \
 	V4L2_STD_PAL_60 |  V4L2_STD_SECAM_L   |  V4L2_STD_SECAM_DK)
-#define CX231xx_VERSION_CODE KERNEL_VERSION(0, 0, 2)
 
 #define SLEEP_S5H1432    30
 #define CX23417_OSC_EN   8
drivers/media/video/cx23885/altera-ci.c +0 -1
index 678539b..1fa8927 100644
@@ -52,7 +52,6 @@
  * |  DATA7|  DATA6|  DATA5|  DATA4|  DATA3|  DATA2|  DATA1|  DATA0|
  * +-------+-------+-------+-------+-------+-------+-------+-------+
  */
-#include <linux/version.h>
 #include <media/videobuf-dma-sg.h>
 #include <media/videobuf-dvb.h>
 #include "altera-ci.h"
drivers/media/video/cx23885/cx23885-417.c +0 -1
index 9a98dc5..67c4a59 100644
@@ -1359,7 +1359,6 @@ static int vidioc_querycap(struct file *file, void  *priv,
 	strlcpy(cap->card, cx23885_boards[tsport->dev->board].name,
 		sizeof(cap->card));
 	sprintf(cap->bus_info, "PCI:%s", pci_name(dev->pci));
-	cap->version = CX23885_VERSION_CODE;
 	cap->capabilities =
 		V4L2_CAP_VIDEO_CAPTURE |
 		V4L2_CAP_READWRITE     |
drivers/media/video/cx23885/cx23885-core.c +3 -10
index 64d9b21..0b44255 100644
@@ -42,6 +42,7 @@
 MODULE_DESCRIPTION("Driver for cx23885 based TV cards");
 MODULE_AUTHOR("Steven Toth <[email protected]>");
 MODULE_LICENSE("GPL");
+MODULE_VERSION(CX23885_VERSION);
 
 static unsigned int debug;
 module_param(debug, int, 0644);
@@ -2152,14 +2153,8 @@ static struct pci_driver cx23885_pci_driver = {
 
 static int __init cx23885_init(void)
 {
-	printk(KERN_INFO "cx23885 driver version %d.%d.%d loaded\n",
-	       (CX23885_VERSION_CODE >> 16) & 0xff,
-	       (CX23885_VERSION_CODE >>  8) & 0xff,
-	       CX23885_VERSION_CODE & 0xff);
-#ifdef SNAPSHOT
-	printk(KERN_INFO "cx23885: snapshot date %04d-%02d-%02d\n",
-	       SNAPSHOT/10000, (SNAPSHOT/100)%100, SNAPSHOT%100);
-#endif
+	printk(KERN_INFO "cx23885 driver version %s loaded\n",
+		CX23885_VERSION);
 	return pci_register_driver(&cx23885_pci_driver);
 }
 
@@ -2170,5 +2165,3 @@ static void __exit cx23885_fini(void)
 
 module_init(cx23885_init);
 module_exit(cx23885_fini);
-
-/* ----------------------------------------------------------- */
drivers/media/video/cx23885/cx23885-video.c +0 -1
index ee57f6b..896bb32 100644
@@ -1000,7 +1000,6 @@ static int vidioc_querycap(struct file *file, void  *priv,
 	strlcpy(cap->card, cx23885_boards[dev->board].name,
 		sizeof(cap->card));
 	sprintf(cap->bus_info, "PCIe:%s", pci_name(dev->pci));
-	cap->version = CX23885_VERSION_CODE;
 	cap->capabilities =
 		V4L2_CAP_VIDEO_CAPTURE |
 		V4L2_CAP_READWRITE     |
drivers/media/video/cx23885/cx23885.h +1 -2
index c186473..01c3b7b 100644
@@ -36,10 +36,9 @@
 #include "cx23885-reg.h"
 #include "media/cx2341x.h"
 
-#include <linux/version.h>
 #include <linux/mutex.h>
 
-#define CX23885_VERSION_CODE KERNEL_VERSION(0, 0, 2)
+#define CX23885_VERSION "0.0.3"
 
 #define UNSET (-1U)
 
drivers/media/video/cx88/cx88-alsa.c +4 -15
index 423c1af..68d1240 100644
@@ -113,6 +113,8 @@ MODULE_DESCRIPTION("ALSA driver module for cx2388x based TV cards");
 MODULE_AUTHOR("Ricardo Cerqueira");
 MODULE_AUTHOR("Mauro Carvalho Chehab <[email protected]>");
 MODULE_LICENSE("GPL");
+MODULE_VERSION(CX88_VERSION);
+
 MODULE_SUPPORTED_DEVICE("{{Conexant,23881},"
 			"{{Conexant,23882},"
 			"{{Conexant,23883}");
@@ -973,14 +975,8 @@ static struct pci_driver cx88_audio_pci_driver = {
  */
 static int __init cx88_audio_init(void)
 {
-	printk(KERN_INFO "cx2388x alsa driver version %d.%d.%d loaded\n",
-	       (CX88_VERSION_CODE >> 16) & 0xff,
-	       (CX88_VERSION_CODE >>  8) & 0xff,
-	       CX88_VERSION_CODE & 0xff);
-#ifdef SNAPSHOT
-	printk(KERN_INFO "cx2388x: snapshot date %04d-%02d-%02d\n",
-	       SNAPSHOT/10000, (SNAPSHOT/100)%100, SNAPSHOT%100);
-#endif
+	printk(KERN_INFO "cx2388x alsa driver version %s loaded\n",
+	       CX88_VERSION);
 	return pci_register_driver(&cx88_audio_pci_driver);
 }
 
@@ -994,10 +990,3 @@ static void __exit cx88_audio_fini(void)
 
 module_init(cx88_audio_init);
 module_exit(cx88_audio_fini);
-
-/* ----------------------------------------------------------- */
-/*
- * Local variables:
- * c-basic-offset: 8
- * End:
- */
drivers/media/video/cx88/cx88-blackbird.c +3 -17
index 11e49bb..e46446a 100644
@@ -42,6 +42,7 @@
 MODULE_DESCRIPTION("driver for cx2388x/cx23416 based mpeg encoder cards");
 MODULE_AUTHOR("Jelle Foks <[email protected]>, Gerd Knorr <[email protected]> [SuSE Labs]");
 MODULE_LICENSE("GPL");
+MODULE_VERSION(CX88_VERSION);
 
 static unsigned int mpegbufs = 32;
 module_param(mpegbufs,int,0644);
@@ -730,7 +731,6 @@ static int vidioc_querycap (struct file *file, void  *priv,
 	strcpy(cap->driver, "cx88_blackbird");
 	strlcpy(cap->card, core->board.name, sizeof(cap->card));
 	sprintf(cap->bus_info,"PCI:%s",pci_name(dev->pci));
-	cap->version = CX88_VERSION_CODE;
 	cap->capabilities =
 		V4L2_CAP_VIDEO_CAPTURE |
 		V4L2_CAP_READWRITE     |
@@ -1368,14 +1368,8 @@ static struct cx8802_driver cx8802_blackbird_driver = {
 
 static int __init blackbird_init(void)
 {
-	printk(KERN_INFO "cx2388x blackbird driver version %d.%d.%d loaded\n",
-	       (CX88_VERSION_CODE >> 16) & 0xff,
-	       (CX88_VERSION_CODE >>  8) & 0xff,
-	       CX88_VERSION_CODE & 0xff);
-#ifdef SNAPSHOT
-	printk(KERN_INFO "cx2388x: snapshot date %04d-%02d-%02d\n",
-	       SNAPSHOT/10000, (SNAPSHOT/100)%100, SNAPSHOT%100);
-#endif
+	printk(KERN_INFO "cx2388x blackbird driver version %s loaded\n",
+	       CX88_VERSION);
 	return cx8802_register_driver(&cx8802_blackbird_driver);
 }
 
@@ -1389,11 +1383,3 @@ module_exit(blackbird_fini);
 
 module_param_named(video_debug,cx8802_mpeg_template.debug, int, 0644);
 MODULE_PARM_DESC(debug,"enable debug messages [video]");
-
-/* ----------------------------------------------------------- */
-/*
- * Local variables:
- * c-basic-offset: 8
- * End:
- * kate: eol "unix"; indent-width 3; remove-trailing-space on; replace-trailing-space-save on; tab-width 8; replace-tabs off; space-indent off; mixed-indent off
- */
drivers/media/video/cx88/cx88-dvb.c +3 -15
index 1ed72ce..cf3d33a 100644
@@ -64,6 +64,7 @@ MODULE_DESCRIPTION("driver for cx2388x based DVB cards");
 MODULE_AUTHOR("Chris Pascoe <[email protected]>");
 MODULE_AUTHOR("Gerd Knorr <[email protected]> [SuSE Labs]");
 MODULE_LICENSE("GPL");
+MODULE_VERSION(CX88_VERSION);
 
 static unsigned int debug;
 module_param(debug, int, 0644);
@@ -1749,14 +1750,8 @@ static struct cx8802_driver cx8802_dvb_driver = {
 
 static int __init dvb_init(void)
 {
-	printk(KERN_INFO "cx88/2: cx2388x dvb driver version %d.%d.%d loaded\n",
-	       (CX88_VERSION_CODE >> 16) & 0xff,
-	       (CX88_VERSION_CODE >>  8) & 0xff,
-	       CX88_VERSION_CODE & 0xff);
-#ifdef SNAPSHOT
-	printk(KERN_INFO "cx2388x: snapshot date %04d-%02d-%02d\n",
-	       SNAPSHOT/10000, (SNAPSHOT/100)%100, SNAPSHOT%100);
-#endif
+	printk(KERN_INFO "cx88/2: cx2388x dvb driver version %s loaded\n",
+	       CX88_VERSION);
 	return cx8802_register_driver(&cx8802_dvb_driver);
 }
 
@@ -1767,10 +1762,3 @@ static void __exit dvb_fini(void)
 
 module_init(dvb_init);
 module_exit(dvb_fini);
-
-/*
- * Local variables:
- * c-basic-offset: 8
- * compile-command: "make DVB=1"
- * End:
- */
drivers/media/video/cx88/cx88-mpeg.c +3 -8
index 1a7b983..ccd8797 100644
@@ -39,6 +39,7 @@ MODULE_AUTHOR("Jelle Foks <[email protected]>");
 MODULE_AUTHOR("Chris Pascoe <[email protected]>");
 MODULE_AUTHOR("Gerd Knorr <[email protected]> [SuSE Labs]");
 MODULE_LICENSE("GPL");
+MODULE_VERSION(CX88_VERSION);
 
 static unsigned int debug;
 module_param(debug,int,0644);
@@ -890,14 +891,8 @@ static struct pci_driver cx8802_pci_driver = {
 
 static int __init cx8802_init(void)
 {
-	printk(KERN_INFO "cx88/2: cx2388x MPEG-TS Driver Manager version %d.%d.%d loaded\n",
-	       (CX88_VERSION_CODE >> 16) & 0xff,
-	       (CX88_VERSION_CODE >>  8) & 0xff,
-	       CX88_VERSION_CODE & 0xff);
-#ifdef SNAPSHOT
-	printk(KERN_INFO "cx2388x: snapshot date %04d-%02d-%02d\n",
-	       SNAPSHOT/10000, (SNAPSHOT/100)%100, SNAPSHOT%100);
-#endif
+	printk(KERN_INFO "cx88/2: cx2388x MPEG-TS Driver Manager version %s loaded\n",
+	       CX88_VERSION);
 	return pci_register_driver(&cx8802_pci_driver);
 }
 
drivers/media/video/cx88/cx88-video.c +3 -18
index cef4f28..1db97f3 100644
@@ -45,6 +45,7 @@
 MODULE_DESCRIPTION("v4l2 driver module for cx2388x based TV cards");
 MODULE_AUTHOR("Gerd Knorr <[email protected]> [SuSE Labs]");
 MODULE_LICENSE("GPL");
+MODULE_VERSION(CX88_VERSION);
 
 /* ------------------------------------------------------------------ */
 
@@ -1161,7 +1162,6 @@ static int vidioc_querycap (struct file *file, void  *priv,
 	strcpy(cap->driver, "cx8800");
 	strlcpy(cap->card, core->board.name, sizeof(cap->card));
 	sprintf(cap->bus_info,"PCI:%s",pci_name(dev->pci));
-	cap->version = CX88_VERSION_CODE;
 	cap->capabilities =
 		V4L2_CAP_VIDEO_CAPTURE |
 		V4L2_CAP_READWRITE     |
@@ -1480,7 +1480,6 @@ static int radio_querycap (struct file *file, void  *priv,
 	strcpy(cap->driver, "cx8800");
 	strlcpy(cap->card, core->board.name, sizeof(cap->card));
 	sprintf(cap->bus_info,"PCI:%s", pci_name(dev->pci));
-	cap->version = CX88_VERSION_CODE;
 	cap->capabilities = V4L2_CAP_TUNER;
 	return 0;
 }
@@ -2139,14 +2138,8 @@ static struct pci_driver cx8800_pci_driver = {
 
 static int __init cx8800_init(void)
 {
-	printk(KERN_INFO "cx88/0: cx2388x v4l2 driver version %d.%d.%d loaded\n",
-	       (CX88_VERSION_CODE >> 16) & 0xff,
-	       (CX88_VERSION_CODE >>  8) & 0xff,
-	       CX88_VERSION_CODE & 0xff);
-#ifdef SNAPSHOT
-	printk(KERN_INFO "cx2388x: snapshot date %04d-%02d-%02d\n",
-	       SNAPSHOT/10000, (SNAPSHOT/100)%100, SNAPSHOT%100);
-#endif
+	printk(KERN_INFO "cx88/0: cx2388x v4l2 driver version %s loaded\n",
+	       CX88_VERSION);
 	return pci_register_driver(&cx8800_pci_driver);
 }
 
@@ -2157,11 +2150,3 @@ static void __exit cx8800_fini(void)
 
 module_init(cx8800_init);
 module_exit(cx8800_fini);
-
-/* ----------------------------------------------------------- */
-/*
- * Local variables:
- * c-basic-offset: 8
- * End:
- * kate: eol "unix"; indent-width 3; remove-trailing-space on; replace-trailing-space-save on; tab-width 8; replace-tabs off; space-indent off; mixed-indent off
- */
drivers/media/video/cx88/cx88.h +2 -2
index 5719063..425c9fb 100644
@@ -39,9 +39,9 @@
 #include "cx88-reg.h"
 #include "tuner-xc2028.h"
 
-#include <linux/version.h>
 #include <linux/mutex.h>
-#define CX88_VERSION_CODE KERNEL_VERSION(0, 0, 8)
+
+#define CX88_VERSION "0.0.9"
 
 #define UNSET (-1U)
 
drivers/media/video/em28xx/em28xx-video.c +5 -9
index 7b6461d..d176dc0 100644
@@ -32,7 +32,6 @@
 #include <linux/bitmap.h>
 #include <linux/usb.h>
 #include <linux/i2c.h>
-#include <linux/version.h>
 #include <linux/mm.h>
 #include <linux/mutex.h>
 #include <linux/slab.h>
@@ -50,7 +49,8 @@
 		      "Sascha Sommer <[email protected]>"
 
 #define DRIVER_DESC         "Empia em28xx based USB video device driver"
-#define EM28XX_VERSION_CODE  KERNEL_VERSION(0, 1, 2)
+
+#define EM28XX_VERSION "0.1.3"
 
 #define em28xx_videodbg(fmt, arg...) do {\
 	if (video_debug) \
@@ -72,6 +72,7 @@ do {\
 MODULE_AUTHOR(DRIVER_AUTHOR);
 MODULE_DESCRIPTION(DRIVER_DESC);
 MODULE_LICENSE("GPL");
+MODULE_VERSION(EM28XX_VERSION);
 
 static unsigned int video_nr[] = {[0 ... (EM28XX_MAXBOARDS - 1)] = UNSET };
 static unsigned int vbi_nr[]   = {[0 ... (EM28XX_MAXBOARDS - 1)] = UNSET };
@@ -1757,8 +1758,6 @@ static int vidioc_querycap(struct file *file, void  *priv,
 	strlcpy(cap->card, em28xx_boards[dev->model].name, sizeof(cap->card));
 	usb_make_path(dev->udev, cap->bus_info, sizeof(cap->bus_info));
 
-	cap->version = EM28XX_VERSION_CODE;
-
 	cap->capabilities =
 			V4L2_CAP_SLICED_VBI_CAPTURE |
 			V4L2_CAP_VIDEO_CAPTURE |
@@ -1976,7 +1975,6 @@ static int radio_querycap(struct file *file, void  *priv,
 	strlcpy(cap->card, em28xx_boards[dev->model].name, sizeof(cap->card));
 	usb_make_path(dev->udev, cap->bus_info, sizeof(cap->bus_info));
 
-	cap->version = EM28XX_VERSION_CODE;
 	cap->capabilities = V4L2_CAP_TUNER;
 	return 0;
 }
@@ -2450,10 +2448,8 @@ int em28xx_register_analog_devices(struct em28xx *dev)
       u8 val;
 	int ret;
 
-	printk(KERN_INFO "%s: v4l2 driver version %d.%d.%d\n",
-		dev->name,
-		(EM28XX_VERSION_CODE >> 16) & 0xff,
-		(EM28XX_VERSION_CODE >> 8) & 0xff, EM28XX_VERSION_CODE & 0xff);
+	printk(KERN_INFO "%s: v4l2 driver version %s\n",
+		dev->name, EM28XX_VERSION);
 
 	/* set default norm */
 	dev->norm = em28xx_video_template.current_norm;
drivers/media/video/gspca/gl860/gl860.h +0 -1
index 49ad4ac..0330a02 100644
@@ -18,7 +18,6 @@
  */
 #ifndef GL860_DEV_H
 #define GL860_DEV_H
-#include <linux/version.h>
 
 #include "gspca.h"
 
drivers/media/video/hdpvr/hdpvr-core.c +1 -0
index a27d93b..5442a17 100644
@@ -474,5 +474,6 @@ module_init(hdpvr_init);
 module_exit(hdpvr_exit);
 
 MODULE_LICENSE("GPL");
+MODULE_VERSION("0.2.1");
 MODULE_AUTHOR("Janne Grunau");
 MODULE_DESCRIPTION("Hauppauge HD PVR driver");
drivers/media/video/hdpvr/hdpvr-video.c +0 -2
index 514aea7..087f7c0 100644
@@ -17,7 +17,6 @@
 #include <linux/uaccess.h>
 #include <linux/usb.h>
 #include <linux/mutex.h>
-#include <linux/version.h>
 #include <linux/workqueue.h>
 
 #include <linux/videodev2.h>
@@ -574,7 +573,6 @@ static int vidioc_querycap(struct file *file, void  *priv,
 	strcpy(cap->driver, "hdpvr");
 	strcpy(cap->card, "Hauppauge HD PVR");
 	usb_make_path(dev->udev, cap->bus_info, sizeof(cap->bus_info));
-	cap->version = HDPVR_VERSION;
 	cap->capabilities =     V4L2_CAP_VIDEO_CAPTURE |
 				V4L2_CAP_AUDIO         |
 				V4L2_CAP_READWRITE;
drivers/media/video/hdpvr/hdpvr.h +0 -6
index 072f23c..d6439db 100644
@@ -18,12 +18,6 @@
 #include <media/v4l2-device.h>
 #include <media/ir-kbd-i2c.h>
 
-#define HDPVR_MAJOR_VERSION 0
-#define HDPVR_MINOR_VERSION 2
-#define HDPVR_RELEASE 0
-#define HDPVR_VERSION \
-	KERNEL_VERSION(HDPVR_MAJOR_VERSION, HDPVR_MINOR_VERSION, HDPVR_RELEASE)
-
 #define HDPVR_MAX 8
 #define HDPVR_I2C_MAX_SIZE 128
 
drivers/media/video/mem2mem_testdev.c +1 -3
index b03d74e..166bf93 100644
@@ -19,7 +19,6 @@
 #include <linux/module.h>
 #include <linux/delay.h>
 #include <linux/fs.h>
-#include <linux/version.h>
 #include <linux/timer.h>
 #include <linux/sched.h>
 #include <linux/slab.h>
@@ -35,7 +34,7 @@
 MODULE_DESCRIPTION("Virtual device for mem2mem framework testing");
 MODULE_AUTHOR("Pawel Osciak, <[email protected]>");
 MODULE_LICENSE("GPL");
-
+MODULE_VERSION("0.1.1");
 
 #define MIN_W 32
 #define MIN_H 32
@@ -380,7 +379,6 @@ static int vidioc_querycap(struct file *file, void *priv,
 	strncpy(cap->driver, MEM2MEM_NAME, sizeof(cap->driver) - 1);
 	strncpy(cap->card, MEM2MEM_NAME, sizeof(cap->card) - 1);
 	cap->bus_info[0] = 0;
-	cap->version = KERNEL_VERSION(0, 1, 0);
 	cap->capabilities = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_VIDEO_OUTPUT
 			  | V4L2_CAP_STREAMING;
 
drivers/media/video/pms.c +1 -3
index 7551907..e753b5e 100644
@@ -28,7 +28,6 @@
 #include <linux/mm.h>
 #include <linux/ioport.h>
 #include <linux/init.h>
-#include <linux/version.h>
 #include <linux/mutex.h>
 #include <linux/uaccess.h>
 #include <asm/io.h>
@@ -39,7 +38,7 @@
 #include <media/v4l2-device.h>
 
 MODULE_LICENSE("GPL");
-
+MODULE_VERSION("0.0.4");
 
 #define MOTOROLA	1
 #define PHILIPS2	2               /* SAA7191 */
@@ -678,7 +677,6 @@ static int pms_querycap(struct file *file, void  *priv,
 	strlcpy(vcap->driver, dev->v4l2_dev.name, sizeof(vcap->driver));
 	strlcpy(vcap->card, "Mediavision PMS", sizeof(vcap->card));
 	strlcpy(vcap->bus_info, "ISA", sizeof(vcap->bus_info));
-	vcap->version = KERNEL_VERSION(0, 0, 3);
 	vcap->capabilities = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_READWRITE;
 	return 0;
 }
drivers/media/video/pwc/pwc-ioctl.h +0 -1
index 8c0cae7..b74fea0 100644
@@ -52,7 +52,6 @@
  */
 
 #include <linux/types.h>
-#include <linux/version.h>
 
  /* Enumeration of image sizes */
 #define PSZ_SQCIF	0x00
drivers/media/video/pwc/pwc.h +4 -4
index e947766..78185c6 100644
@@ -29,7 +29,6 @@
 #include <linux/usb.h>
 #include <linux/spinlock.h>
 #include <linux/wait.h>
-#include <linux/version.h>
 #include <linux/mutex.h>
 #include <linux/mm.h>
 #include <linux/slab.h>
@@ -47,9 +46,10 @@
 /* Version block */
 #define PWC_MAJOR	10
 #define PWC_MINOR	0
-#define PWC_EXTRAMINOR	12
-#define PWC_VERSION_CODE KERNEL_VERSION(PWC_MAJOR,PWC_MINOR,PWC_EXTRAMINOR)
-#define PWC_VERSION	"10.0.14"
+#define PWC_EXTRAMINOR	15
+
+#define PWC_VERSION_CODE KERNEL_VERSION(PWC_MAJOR, PWC_MINOR, PWC_EXTRAMINOR)
+#define PWC_VERSION __stringify(PWC_MAJOR) "." __stringify(PWC_MINOR) "." __stringify(PWC_EXTRAMINOR)
 #define PWC_NAME 	"pwc"
 #define PFX		PWC_NAME ": "
 
drivers/media/video/saa7134/saa7134-core.c +4 -8
index f9be737..acf83f4 100644
@@ -39,6 +39,8 @@
 MODULE_DESCRIPTION("v4l2 driver module for saa7130/34 based TV cards");
 MODULE_AUTHOR("Gerd Knorr <[email protected]> [SuSE Labs]");
 MODULE_LICENSE("GPL");
+MODULE_LICENSE(SAA7134_VERSION);
+
 
 /* ------------------------------------------------------------------ */
 
@@ -1332,14 +1334,8 @@ static struct pci_driver saa7134_pci_driver = {
 static int __init saa7134_init(void)
 {
 	INIT_LIST_HEAD(&saa7134_devlist);
-	printk(KERN_INFO "saa7130/34: v4l2 driver version %d.%d.%d loaded\n",
-	       (SAA7134_VERSION_CODE >> 16) & 0xff,
-	       (SAA7134_VERSION_CODE >>  8) & 0xff,
-	       SAA7134_VERSION_CODE & 0xff);
-#ifdef SNAPSHOT
-	printk(KERN_INFO "saa7130/34: snapshot date %04d-%02d-%02d\n",
-	       SNAPSHOT/10000, (SNAPSHOT/100)%100, SNAPSHOT%100);
-#endif
+	printk(KERN_INFO "saa7130/34: v4l2 driver version %s loaded\n",
+	       SAA7134_VERSION);
 	return pci_register_driver(&saa7134_pci_driver);
 }
 
drivers/media/video/saa7134/saa7134-empress.c +0 -1
index 18294db..dde361a 100644
@@ -172,7 +172,6 @@ static int empress_querycap(struct file *file, void  *priv,
 	strlcpy(cap->card, saa7134_boards[dev->board].name,
 		sizeof(cap->card));
 	sprintf(cap->bus_info, "PCI:%s", pci_name(dev->pci));
-	cap->version = SAA7134_VERSION_CODE;
 	cap->capabilities =
 		V4L2_CAP_VIDEO_CAPTURE |
 		V4L2_CAP_READWRITE |
drivers/media/video/saa7134/saa7134-video.c +0 -2
index 776ba2d..9cf7914 100644
@@ -1810,7 +1810,6 @@ static int saa7134_querycap(struct file *file, void  *priv,
 	strlcpy(cap->card, saa7134_boards[dev->board].name,
 		sizeof(cap->card));
 	sprintf(cap->bus_info, "PCI:%s", pci_name(dev->pci));
-	cap->version = SAA7134_VERSION_CODE;
 	cap->capabilities =
 		V4L2_CAP_VIDEO_CAPTURE |
 		V4L2_CAP_VBI_CAPTURE |
@@ -2307,7 +2306,6 @@ static int radio_querycap(struct file *file, void *priv,
 	strcpy(cap->driver, "saa7134");
 	strlcpy(cap->card, saa7134_boards[dev->board].name, sizeof(cap->card));
 	sprintf(cap->bus_info, "PCI:%s", pci_name(dev->pci));
-	cap->version = SAA7134_VERSION_CODE;
 	cap->capabilities = V4L2_CAP_TUNER;
 	return 0;
 }
drivers/media/video/saa7134/saa7134.h +1 -2
index 28eb103..bc8d6bb 100644
@@ -19,8 +19,7 @@
  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include <linux/version.h>
-#define SAA7134_VERSION_CODE KERNEL_VERSION(0, 2, 16)
+#define SAA7134_VERSION "0, 2, 17"
 
 #include <linux/pci.h>
 #include <linux/i2c.h>
drivers/media/video/saa7164/saa7164.h +0 -1
index 16745d2..6678bf1 100644
@@ -48,7 +48,6 @@
 #include <linux/i2c.h>
 #include <linux/i2c-algo-bit.h>
 #include <linux/kdev_t.h>
-#include <linux/version.h>
 #include <linux/mutex.h>
 #include <linux/crc32.h>
 #include <linux/kthread.h>
drivers/media/video/timblogiw.c +0 -1
index fc611eb..84cd1b6 100644
@@ -20,7 +20,6 @@
  * Timberdale FPGA LogiWin Video In
  */
 
-#include <linux/version.h>
 #include <linux/platform_device.h>
 #include <linux/slab.h>
 #include <linux/dmaengine.h>
drivers/media/video/tlg2300/pd-common.h +0 -1
index 46066bd..56564e6 100644
@@ -1,7 +1,6 @@
 #ifndef PD_COMMON_H
 #define PD_COMMON_H
 
-#include <linux/version.h>
 #include <linux/fs.h>
 #include <linux/wait.h>
 #include <linux/list.h>
drivers/media/video/tlg2300/pd-main.c +1 -0
index 99c81a9..129f135 100644
@@ -531,3 +531,4 @@ module_exit(poseidon_exit);
 MODULE_AUTHOR("Telegent Systems");
 MODULE_DESCRIPTION("For tlg2300-based USB device ");
 MODULE_LICENSE("GPL");
+MODULE_VERSION("0.0.2");
drivers/media/video/tlg2300/pd-radio.c +0 -2
index fae84c2..4fad1df 100644
@@ -6,7 +6,6 @@
 #include <linux/usb.h>
 #include <linux/i2c.h>
 #include <media/v4l2-dev.h>
-#include <linux/version.h>
 #include <linux/mm.h>
 #include <linux/mutex.h>
 #include <media/v4l2-ioctl.h>
@@ -149,7 +148,6 @@ static int vidioc_querycap(struct file *file, void *priv,
 	strlcpy(v->driver, "tele-radio", sizeof(v->driver));
 	strlcpy(v->card, "Telegent Poseidon", sizeof(v->card));
 	usb_make_path(p->udev, v->bus_info, sizeof(v->bus_info));
-	v->version = KERNEL_VERSION(0, 0, 1);
 	v->capabilities = V4L2_CAP_TUNER | V4L2_CAP_RADIO;
 	return 0;
 }
drivers/media/video/usbvision/usbvision-video.c +1 -11
index ea8ea8a..5a74f5e 100644
@@ -45,7 +45,6 @@
  *
  */
 
-#include <linux/version.h>
 #include <linux/kernel.h>
 #include <linux/list.h>
 #include <linux/timer.h>
@@ -77,15 +76,7 @@
 #define DRIVER_ALIAS "USBVision"
 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux"
 #define DRIVER_LICENSE "GPL"
-#define USBVISION_DRIVER_VERSION_MAJOR 0
-#define USBVISION_DRIVER_VERSION_MINOR 9
-#define USBVISION_DRIVER_VERSION_PATCHLEVEL 10
-#define USBVISION_DRIVER_VERSION KERNEL_VERSION(USBVISION_DRIVER_VERSION_MAJOR,\
-USBVISION_DRIVER_VERSION_MINOR,\
-USBVISION_DRIVER_VERSION_PATCHLEVEL)
-#define USBVISION_VERSION_STRING __stringify(USBVISION_DRIVER_VERSION_MAJOR) \
-"." __stringify(USBVISION_DRIVER_VERSION_MINOR) \
-"." __stringify(USBVISION_DRIVER_VERSION_PATCHLEVEL)
+#define USBVISION_VERSION_STRING "0.9.11"
 
 #define	ENABLE_HEXDUMP	0	/* Enable if you need it */
 
@@ -516,7 +507,6 @@ static int vidioc_querycap(struct file *file, void  *priv,
 		usbvision_device_data[usbvision->dev_model].model_string,
 		sizeof(vc->card));
 	usb_make_path(usbvision->dev, vc->bus_info, sizeof(vc->bus_info));
-	vc->version = USBVISION_DRIVER_VERSION;
 	vc->capabilities = V4L2_CAP_VIDEO_CAPTURE |
 		V4L2_CAP_AUDIO |
 		V4L2_CAP_READWRITE |
drivers/media/video/vino.c +1 -4
index d63e9d9..52a0a37 100644
@@ -36,7 +36,6 @@
 #include <linux/slab.h>
 #include <linux/mm.h>
 #include <linux/time.h>
-#include <linux/version.h>
 #include <linux/kmod.h>
 
 #include <linux/i2c.h>
@@ -61,8 +60,7 @@
 // #define VINO_DEBUG
 // #define VINO_DEBUG_INT
 
-#define VINO_MODULE_VERSION "0.0.6"
-#define VINO_VERSION_CODE KERNEL_VERSION(0, 0, 6)
+#define VINO_MODULE_VERSION "0.0.7"
 
 MODULE_DESCRIPTION("SGI VINO Video4Linux2 driver");
 MODULE_VERSION(VINO_MODULE_VERSION);
@@ -2934,7 +2932,6 @@ static int vino_querycap(struct file *file, void *__fh,
 	strcpy(cap->driver, vino_driver_name);
 	strcpy(cap->card, vino_driver_description);
 	strcpy(cap->bus_info, vino_bus_name);
-	cap->version = VINO_VERSION_CODE;
 	cap->capabilities =
 		V4L2_CAP_VIDEO_CAPTURE |
 		V4L2_CAP_STREAMING;
drivers/media/video/vivi.c +4 -10
index 2238a61..3b9db8c 100644
@@ -22,7 +22,6 @@
 #include <linux/sched.h>
 #include <linux/slab.h>
 #include <linux/font.h>
-#include <linux/version.h>
 #include <linux/mutex.h>
 #include <linux/videodev2.h>
 #include <linux/kthread.h>
@@ -44,15 +43,12 @@
 #define MAX_WIDTH 1920
 #define MAX_HEIGHT 1200
 
-#define VIVI_MAJOR_VERSION 0
-#define VIVI_MINOR_VERSION 8
-#define VIVI_RELEASE 0
-#define VIVI_VERSION \
-	KERNEL_VERSION(VIVI_MAJOR_VERSION, VIVI_MINOR_VERSION, VIVI_RELEASE)
+#define VIVI_VERSION "0.8.1"
 
 MODULE_DESCRIPTION("Video Technology Magazine Virtual Video Capture Board");
 MODULE_AUTHOR("Mauro Carvalho Chehab, Ted Walther and John Sokol");
 MODULE_LICENSE("Dual BSD/GPL");
+MODULE_VERSION(VIVI_VERSION);
 
 static unsigned video_nr = -1;
 module_param(video_nr, uint, 0644);
@@ -812,7 +808,6 @@ static int vidioc_querycap(struct file *file, void  *priv,
 	strcpy(cap->driver, "vivi");
 	strcpy(cap->card, "vivi");
 	strlcpy(cap->bus_info, dev->v4l2_dev.name, sizeof(cap->bus_info));
-	cap->version = VIVI_VERSION;
 	cap->capabilities = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING | \
 			    V4L2_CAP_READWRITE;
 	return 0;
@@ -1325,9 +1320,8 @@ static int __init vivi_init(void)
 	}
 
 	printk(KERN_INFO "Video Technology Magazine Virtual Video "
-			"Capture Board ver %u.%u.%u successfully loaded.\n",
-			(VIVI_VERSION >> 16) & 0xFF, (VIVI_VERSION >> 8) & 0xFF,
-			VIVI_VERSION & 0xFF);
+			"Capture Board ver %s successfully loaded.\n",
+			VIVI_VERSION);
 
 	/* n_devs will reflect the actual number of allocated devices */
 	n_devs = i;
drivers/media/video/w9966.c +1 -3
index fa35639..453dbbd 100644
@@ -57,7 +57,6 @@
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/delay.h>
-#include <linux/version.h>
 #include <linux/videodev2.h>
 #include <linux/slab.h>
 #include <media/v4l2-common.h>
@@ -127,7 +126,7 @@ struct w9966 {
 MODULE_AUTHOR("Jakob Kemi <[email protected]>");
 MODULE_DESCRIPTION("Winbond w9966cf WebCam driver (0.32)");
 MODULE_LICENSE("GPL");
-
+MODULE_VERSION("0.33.1");
 
 #ifdef MODULE
 static const char *pardev[] = {[0 ... W9966_MAXCAMS] = ""};
@@ -568,7 +567,6 @@ static int cam_querycap(struct file *file, void  *priv,
 	strlcpy(vcap->driver, cam->v4l2_dev.name, sizeof(vcap->driver));
 	strlcpy(vcap->card, W9966_DRIVERNAME, sizeof(vcap->card));
 	strlcpy(vcap->bus_info, "parport", sizeof(vcap->bus_info));
-	vcap->version = KERNEL_VERSION(0, 33, 0);
 	vcap->capabilities = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_READWRITE;
 	return 0;
 }
drivers/media/video/zoran/zoran.h +0 -4
index f3f6400..d7166af 100644
@@ -41,10 +41,6 @@ struct zoran_sync {
 };
 
 
-#define MAJOR_VERSION 0		/* driver major version */
-#define MINOR_VERSION 10	/* driver minor version */
-#define RELEASE_VERSION 0	/* release version */
-
 #define ZORAN_NAME    "ZORAN"	/* name of the device */
 
 #define ZR_DEVNAME(zr) ((zr)->name)
drivers/media/video/zoran/zoran_card.c +5 -2
index 79b04ac..c3602d6 100644
@@ -123,9 +123,12 @@ int zr36067_debug = 1;
 module_param_named(debug, zr36067_debug, int, 0644);
 MODULE_PARM_DESC(debug, "Debug level (0-5)");
 
+#define ZORAN_VERSION "0.10.1"
+
 MODULE_DESCRIPTION("Zoran-36057/36067 JPEG codec driver");
 MODULE_AUTHOR("Serguei Miridonov");
 MODULE_LICENSE("GPL");
+MODULE_VERSION(ZORAN_VERSION);
 
 #define ZR_DEVICE(subven, subdev, data)	{ \
 	.vendor = PCI_VENDOR_ID_ZORAN, .device = PCI_DEVICE_ID_ZORAN_36057, \
@@ -1459,8 +1462,8 @@ static int __init zoran_init(void)
 {
 	int res;
 
-	printk(KERN_INFO "Zoran MJPEG board driver version %d.%d.%d\n",
-	       MAJOR_VERSION, MINOR_VERSION, RELEASE_VERSION);
+	printk(KERN_INFO "Zoran MJPEG board driver version %s\n",
+	       ZORAN_VERSION);
 
 	/* check the parameters we have been given, adjust if necessary */
 	if (v4l_nbufs < 2)
drivers/media/video/zoran/zoran_driver.c +0 -3
index 2771d81..d4d05d2 100644
@@ -44,7 +44,6 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include <linux/version.h>
 #include <linux/init.h>
 #include <linux/module.h>
 #include <linux/delay.h>
@@ -1538,8 +1537,6 @@ static int zoran_querycap(struct file *file, void *__fh, struct v4l2_capability
 	strncpy(cap->driver, "zoran", sizeof(cap->driver)-1);
 	snprintf(cap->bus_info, sizeof(cap->bus_info), "PCI:%s",
 		 pci_name(zr->pci_dev));
-	cap->version = KERNEL_VERSION(MAJOR_VERSION, MINOR_VERSION,
-			   RELEASE_VERSION);
 	cap->capabilities = V4L2_CAP_STREAMING | V4L2_CAP_VIDEO_CAPTURE |
 			    V4L2_CAP_VIDEO_OUTPUT | V4L2_CAP_VIDEO_OVERLAY;
 	return 0;
drivers/media/video/zr364xx.c +2 -4
index 7dfb01e..c492846 100644
@@ -29,7 +29,6 @@
 
 
 #include <linux/module.h>
-#include <linux/version.h>
 #include <linux/init.h>
 #include <linux/usb.h>
 #include <linux/vmalloc.h>
@@ -42,8 +41,7 @@
 
 
 /* Version Information */
-#define DRIVER_VERSION "v0.73"
-#define ZR364XX_VERSION_CODE KERNEL_VERSION(0, 7, 3)
+#define DRIVER_VERSION "0.7.4"
 #define DRIVER_AUTHOR "Antoine Jacquet, http://royale.zerezo.com/"
 #define DRIVER_DESC "Zoran 364xx"
 
@@ -744,7 +742,6 @@ static int zr364xx_vidioc_querycap(struct file *file, void *priv,
 	strlcpy(cap->card, cam->udev->product, sizeof(cap->card));
 	strlcpy(cap->bus_info, dev_name(&cam->udev->dev),
 		sizeof(cap->bus_info));
-	cap->version = ZR364XX_VERSION_CODE;
 	cap->capabilities = V4L2_CAP_VIDEO_CAPTURE |
 			    V4L2_CAP_READWRITE |
 			    V4L2_CAP_STREAMING;
@@ -1721,3 +1718,4 @@ module_exit(zr364xx_exit);
 MODULE_AUTHOR(DRIVER_AUTHOR);
 MODULE_DESCRIPTION(DRIVER_DESC);
 MODULE_LICENSE("GPL");
+MODULE_VERSION(DRIVER_VERSION);
#14 lore raw

Re: [PATCH] [media] Stop using linux/version.h on most drivers

Quoted 23 lines · On Friday, June 24, 2011 20:25:26 Mauro Carvalho Chehab wrote:

All the modified drivers didn't have any version increment since Jan, 1 2011. Several of them didn't have any version increment for a long time, even having new features and important bug fixes happening.

As we're now filling the QUERYCAP version with the current Kernel Release, we don't need to maintain a per-driver version control anymore. So, let's just use the default.

In order to preserve the Kernel module version history, a KERNEL_VERSION() macro were added to all modified drivers, and the extraver number were incremented.

I opted to preserve the per-driver version control to a few
drivers: cx18, davinci, fsl-viu, gspca, ivtv, m5mols, soc_camera, pwc, s2255, s5p-fimc and sh_vou. The rationale is that the per-driver version control seems to be actively maintained on those.

A few drivers are still using the legacy way to handle ioctl's. So, we can't do such change on them, otherwise, they'll break. Those are: uvc, pvrusb2, et61x251 and sn9c102.

Quoted 6 lines

Yet, I think that the better for them would be to just use the default version numbering, instead of doing that by themselves.

While here, removed a few not needed include linux/version.h.

Sorry, but I have to say NACK to this.

If we do this, then we should do this consistently.

I thought it over and filling it with the current kernel version would work well with one exception: the pwc driver has a major number of 10 which is larger than the kernel's major number. (cpia2 has a version of 3.0.0, so that just works).

I am inclined to sort of close my eyes for that one and just replace it as well, but that's just me :-)

The only thing that needs to be done is that media_build needs some hack to set the version field to the source git tree kernel version instead of the target's kernel version.

To simplify that and to accomodate the four ioctl-legacy drivers we can make a simple include/media/version.h header that defines a V4L2_API_VERSION define.

An alternative is to just add an api_version field to v4l2_querycap. That would work fine too.

One reason for doing that may be to help out-of-tree drivers: for those a driver version *does* make sense. I know, we shouldn't have to care about out-of-tree drivers, but on the other hand why make life hard for them without a good reason?

The more I think about it, the more I like the idea of an api_version field. It would keep pwc happy, it wouldn't require many changes to drivers, and it will not affect out-of-tree drivers.

Regards,

Hans

Quoted 1,317 lines

---

Note: This patch assumes that cap->version = LINUX_VERSION_CODE is filled inside v4l2-ioctl [1]

[1] http://www.mail-archive.com/[email protected]/msg33547.html

 drivers/media/video/arv.c                       |    5 ++---
 drivers/media/video/au0828/au0828-core.c        |    1 +
 drivers/media/video/au0828/au0828-video.c       |    5 -----
 drivers/media/video/bt8xx/bttv-driver.c         |   14 ++++----------
 drivers/media/video/bt8xx/bttvp.h               |    3 ---
 drivers/media/video/bw-qcam.c                   |    3 +--
 drivers/media/video/c-qcam.c                    |    3 +--
 drivers/media/video/cpia2/cpia2.h               |    5 -----
 drivers/media/video/cpia2/cpia2_v4l.c           |   12 ++++--------
 drivers/media/video/cx231xx/cx231xx-video.c     |   14 ++++----------
 drivers/media/video/cx231xx/cx231xx.h           |    1 -
 drivers/media/video/cx23885/altera-ci.c         |    1 -
 drivers/media/video/cx23885/cx23885-417.c       |    1 -
 drivers/media/video/cx23885/cx23885-core.c      |   13 +++----------
 drivers/media/video/cx23885/cx23885-video.c     |    1 -
 drivers/media/video/cx23885/cx23885.h           |    3 +--
 drivers/media/video/cx88/cx88-alsa.c            |   19 ++++---------------
 drivers/media/video/cx88/cx88-blackbird.c       |   20 +++-----------------
 drivers/media/video/cx88/cx88-dvb.c             |   18 +++---------------
 drivers/media/video/cx88/cx88-mpeg.c            |   11 +++--------
 drivers/media/video/cx88/cx88-video.c           |   21 +++------------------
 drivers/media/video/cx88/cx88.h                 |    4 ++--
 drivers/media/video/em28xx/em28xx-video.c       |   14 +++++---------
 drivers/media/video/gspca/gl860/gl860.h         |    1 -
 drivers/media/video/hdpvr/hdpvr-core.c          |    1 +
 drivers/media/video/hdpvr/hdpvr-video.c         |    2 --
 drivers/media/video/hdpvr/hdpvr.h               |    6 ------
 drivers/media/video/mem2mem_testdev.c           |    4 +---
 drivers/media/video/pms.c                       |    4 +---
 drivers/media/video/pwc/pwc-ioctl.h             |    1 -
 drivers/media/video/pwc/pwc.h                   |    8 ++++----
 drivers/media/video/saa7134/saa7134-core.c      |   12 ++++--------
 drivers/media/video/saa7134/saa7134-empress.c   |    1 -
 drivers/media/video/saa7134/saa7134-video.c     |    2 --
 drivers/media/video/saa7134/saa7134.h           |    3 +--
 drivers/media/video/saa7164/saa7164.h           |    1 -
 drivers/media/video/timblogiw.c                 |    1 -
 drivers/media/video/tlg2300/pd-common.h         |    1 -
 drivers/media/video/tlg2300/pd-main.c           |    1 +
 drivers/media/video/tlg2300/pd-radio.c          |    2 --
 drivers/media/video/usbvision/usbvision-video.c |   12 +-----------
 drivers/media/video/vino.c                      |    5 +----
 drivers/media/video/vivi.c                      |   14 ++++----------
 drivers/media/video/w9966.c                     |    4 +---
 drivers/media/video/zoran/zoran.h               |    4 ----
 drivers/media/video/zoran/zoran_card.c          |    7 +++++--
 drivers/media/video/zoran/zoran_driver.c        |    3 ---
 drivers/media/video/zr364xx.c                   |    6 ++----
 48 files changed, 71 insertions(+), 227 deletions(-)
drivers/media/video/arv.c +2 -3
index f989f28..b6ed44a 100644
@@ -27,7 +27,6 @@
 #include <linux/slab.h>
 #include <linux/mm.h>
 #include <linux/sched.h>
-#include <linux/version.h>
 #include <linux/videodev2.h>
 #include <media/v4l2-common.h>
 #include <media/v4l2-device.h>
@@ -54,7 +53,7 @@
  */
 #define USE_INT		0	/* Don't modify */
 
-#define VERSION	"0.04"
+#define VERSION	"0.0.5"
 
 #define ar_inl(addr) 		inl((unsigned long)(addr))
 #define ar_outl(val, addr)	outl((unsigned long)(val), (unsigned long)(addr))
@@ -404,7 +403,6 @@ static int ar_querycap(struct file *file, void  *priv,
 	strlcpy(vcap->driver, ar->vdev.name, sizeof(vcap->driver));
 	strlcpy(vcap->card, "Colour AR VGA", sizeof(vcap->card));
 	strlcpy(vcap->bus_info, "Platform", sizeof(vcap->bus_info));
-	vcap->version = KERNEL_VERSION(0, 0, 4);
 	vcap->capabilities = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_READWRITE;
 	return 0;
 }
@@ -879,3 +877,4 @@ module_exit(ar_cleanup_module);
 MODULE_AUTHOR("Takeo Takahashi <[email protected]>");
 MODULE_DESCRIPTION("Colour AR M64278(VGA) for Video4Linux");
 MODULE_LICENSE("GPL");
+MODULE_VERSION(VERSION);
drivers/media/video/au0828/au0828-core.c +1 -0
index ca342e4..1e4ce50 100644
@@ -292,3 +292,4 @@ module_exit(au0828_exit);
 MODULE_DESCRIPTION("Driver for Auvitek AU0828 based products");
 MODULE_AUTHOR("Steven Toth <[email protected]>");
 MODULE_LICENSE("GPL");
+MODULE_VERSION("0.0.2");
drivers/media/video/au0828/au0828-video.c +0 -5
index c03eb29..0b3e481 100644
@@ -33,7 +33,6 @@
 #include <linux/init.h>
 #include <linux/device.h>
 #include <linux/suspend.h>
-#include <linux/version.h>
 #include <media/v4l2-common.h>
 #include <media/v4l2-ioctl.h>
 #include <media/v4l2-chip-ident.h>
@@ -43,8 +42,6 @@
 
 static DEFINE_MUTEX(au0828_sysfs_lock);
 
-#define AU0828_VERSION_CODE KERNEL_VERSION(0, 0, 1)
-
 /* ------------------------------------------------------------------
 	Videobuf operations
    ------------------------------------------------------------------*/
@@ -1254,8 +1251,6 @@ static int vidioc_querycap(struct file *file, void  *priv,
 	strlcpy(cap->card, dev->board.name, sizeof(cap->card));
 	strlcpy(cap->bus_info, dev->v4l2_dev.name, sizeof(cap->bus_info));
 
-	cap->version = AU0828_VERSION_CODE;
-
 	/*set the device capabilities */
 	cap->capabilities = V4L2_CAP_VIDEO_CAPTURE |
 		V4L2_CAP_VBI_CAPTURE |
drivers/media/video/bt8xx/bttv-driver.c +4 -10
index a97cf27..696e978 100644
@@ -57,6 +57,7 @@
 
 #include <media/saa6588.h>
 
+#define BTTV_VERSION "0.9.19"
 
 unsigned int bttv_num;			/* number of Bt848s in use */
 struct bttv *bttvs[BTTV_MAX];
@@ -163,6 +164,7 @@ MODULE_PARM_DESC(radio_nr, "radio device numbers");
 MODULE_DESCRIPTION("bttv - v4l/v4l2 driver module for bt848/878 based cards");
 MODULE_AUTHOR("Ralph Metzler & Marcus Metzler & Gerd Knorr");
 MODULE_LICENSE("GPL");
+MODULE_VERSION(BTTV_VERSION);
 
 /* ----------------------------------------------------------------------- */
 /* sysfs                                                                   */
@@ -2616,7 +2618,6 @@ static int bttv_querycap(struct file *file, void  *priv,
 	strlcpy(cap->card, btv->video_dev->name, sizeof(cap->card));
 	snprintf(cap->bus_info, sizeof(cap->bus_info),
 		 "PCI:%s", pci_name(btv->c.pci));
-	cap->version = BTTV_VERSION_CODE;
 	cap->capabilities =
 		V4L2_CAP_VIDEO_CAPTURE |
 		V4L2_CAP_VBI_CAPTURE |
@@ -3416,7 +3417,6 @@ static int radio_querycap(struct file *file, void *priv,
 	strcpy(cap->driver, "bttv");
 	strlcpy(cap->card, btv->radio_dev->name, sizeof(cap->card));
 	sprintf(cap->bus_info, "PCI:%s", pci_name(btv->c.pci));
-	cap->version = BTTV_VERSION_CODE;
 	cap->capabilities = V4L2_CAP_TUNER;
 
 	return 0;
@@ -4585,14 +4585,8 @@ static int __init bttv_init_module(void)
 
 	bttv_num = 0;
 
-	printk(KERN_INFO "bttv: driver version %d.%d.%d loaded\n",
-	       (BTTV_VERSION_CODE >> 16) & 0xff,
-	       (BTTV_VERSION_CODE >> 8) & 0xff,
-	       BTTV_VERSION_CODE & 0xff);
-#ifdef SNAPSHOT
-	printk(KERN_INFO "bttv: snapshot date %04d-%02d-%02d\n",
-	       SNAPSHOT/10000, (SNAPSHOT/100)%100, SNAPSHOT%100);
-#endif
+	printk(KERN_INFO "bttv: driver version %s loaded\n",
+	       BTTV_VERSION);
 	if (gbuffers < 2 || gbuffers > VIDEO_MAX_FRAME)
 		gbuffers = 2;
 	if (gbufsize > BTTV_MAX_FBUF)
drivers/media/video/bt8xx/bttvp.h +0 -3
index 9b776fa..318edf2 100644
@@ -25,9 +25,6 @@
 #ifndef _BTTVP_H_
 #define _BTTVP_H_
 
-#include <linux/version.h>
-#define BTTV_VERSION_CODE KERNEL_VERSION(0,9,18)
-
 #include <linux/types.h>
 #include <linux/wait.h>
 #include <linux/i2c.h>
drivers/media/video/bw-qcam.c +1 -2
index c119350..2fc998e 100644
@@ -71,7 +71,6 @@ OTHER DEALINGS IN THE SOFTWARE.
 #include <linux/mm.h>
 #include <linux/parport.h>
 #include <linux/sched.h>
-#include <linux/version.h>
 #include <linux/videodev2.h>
 #include <linux/mutex.h>
 #include <asm/uaccess.h>
@@ -647,7 +646,6 @@ static int qcam_querycap(struct file *file, void  *priv,
 	strlcpy(vcap->driver, qcam->v4l2_dev.name, sizeof(vcap->driver));
 	strlcpy(vcap->card, "B&W Quickcam", sizeof(vcap->card));
 	strlcpy(vcap->bus_info, "parport", sizeof(vcap->bus_info));
-	vcap->version = KERNEL_VERSION(0, 0, 2);
 	vcap->capabilities = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_READWRITE;
 	return 0;
 }
@@ -1092,3 +1090,4 @@ module_init(init_bw_qcams);
 module_exit(exit_bw_qcams);
 
 MODULE_LICENSE("GPL");
+MODULE_VERSION("0.0.3");
drivers/media/video/c-qcam.c +1 -2
index 24fc009..b8d800e 100644
@@ -35,7 +35,6 @@
 #include <linux/sched.h>
 #include <linux/mutex.h>
 #include <linux/jiffies.h>
-#include <linux/version.h>
 #include <linux/videodev2.h>
 #include <asm/uaccess.h>
 #include <media/v4l2-device.h>
@@ -517,7 +516,6 @@ static int qcam_querycap(struct file *file, void  *priv,
 	strlcpy(vcap->driver, qcam->v4l2_dev.name, sizeof(vcap->driver));
 	strlcpy(vcap->card, "Color Quickcam", sizeof(vcap->card));
 	strlcpy(vcap->bus_info, "parport", sizeof(vcap->bus_info));
-	vcap->version = KERNEL_VERSION(0, 0, 3);
 	vcap->capabilities = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_READWRITE;
 	return 0;
 }
@@ -886,6 +884,7 @@ static void __exit cqcam_cleanup(void)
 MODULE_AUTHOR("Philip Blundell <[email protected]>");
 MODULE_DESCRIPTION(BANNER);
 MODULE_LICENSE("GPL");
+MODULE_VERSION("0.0.4");
 
 module_init(cqcam_init);
 module_exit(cqcam_cleanup);
drivers/media/video/cpia2/cpia2.h +0 -5
index 6d6d184..ab25218 100644
@@ -31,7 +31,6 @@
 #ifndef __CPIA2_H__
 #define __CPIA2_H__
 
-#include <linux/version.h>
 #include <linux/videodev2.h>
 #include <media/v4l2-common.h>
 #include <linux/usb.h>
@@ -43,10 +42,6 @@
 /* define for verbose debug output */
 //#define _CPIA2_DEBUG_
 
-#define CPIA2_MAJ_VER	3
-#define CPIA2_MIN_VER   0
-#define CPIA2_PATCH_VER	0
-
 /***
  * Image defines
  ***/
drivers/media/video/cpia2/cpia2_v4l.c +4 -8
index 40eb632..077eb1d 100644
@@ -29,8 +29,7 @@
  *		Alan Cox <[email protected]>
  ****************************************************************************/
 
-#include <linux/version.h>
-
+#define CPIA_VERSION "3.0.1"
 
 #include <linux/module.h>
 #include <linux/time.h>
@@ -80,6 +79,7 @@ MODULE_AUTHOR("Steve Miller (STMicroelectronics) <[email protected]>");
 MODULE_DESCRIPTION("V4L-driver for STMicroelectronics CPiA2 based cameras");
 MODULE_SUPPORTED_DEVICE("video");
 MODULE_LICENSE("GPL");
+MODULE_VERSION(CPIA_VERSION);
 
 #define ABOUT "V4L-Driver for Vision CPiA2 based cameras"
 
@@ -465,9 +465,6 @@ static int cpia2_querycap(struct file *file, void *fh, struct v4l2_capability *v
 	if (usb_make_path(cam->dev, vc->bus_info, sizeof(vc->bus_info)) <0)
 		memset(vc->bus_info,0, sizeof(vc->bus_info));
 
-	vc->version = KERNEL_VERSION(CPIA2_MAJ_VER, CPIA2_MIN_VER,
-				     CPIA2_PATCH_VER);
-
 	vc->capabilities = V4L2_CAP_VIDEO_CAPTURE |
 			   V4L2_CAP_READWRITE |
 			   V4L2_CAP_STREAMING;
@@ -1558,8 +1555,8 @@ static void __init check_parameters(void)
  *****************************************************************************/
 static int __init cpia2_init(void)
 {
-	LOG("%s v%d.%d.%d\n",
-	    ABOUT, CPIA2_MAJ_VER, CPIA2_MIN_VER, CPIA2_PATCH_VER);
+	LOG("%s v%s\n",
+	    ABOUT, CPIA_VERSION);
 	check_parameters();
 	cpia2_usb_init();
 	return 0;
@@ -1579,4 +1576,3 @@ static void __exit cpia2_exit(void)
 
 module_init(cpia2_init);
 module_exit(cpia2_exit);
-
drivers/media/video/cx231xx/cx231xx-video.c +4 -10
index a69c24d..21fa547 100644
@@ -29,7 +29,6 @@
 #include <linux/bitmap.h>
 #include <linux/usb.h>
 #include <linux/i2c.h>
-#include <linux/version.h>
 #include <linux/mm.h>
 #include <linux/mutex.h>
 #include <linux/slab.h>
@@ -45,7 +44,7 @@
 #include "cx231xx.h"
 #include "cx231xx-vbi.h"
 
-#define CX231XX_VERSION_CODE            KERNEL_VERSION(0, 0, 1)
+#define CX231XX_VERSION "0.0.2"
 
 #define DRIVER_AUTHOR   "Srinivasa Deevi <[email protected]>"
 #define DRIVER_DESC     "Conexant cx231xx based USB video device driver"
@@ -70,6 +69,7 @@ do {\
 MODULE_AUTHOR(DRIVER_AUTHOR);
 MODULE_DESCRIPTION(DRIVER_DESC);
 MODULE_LICENSE("GPL");
+MODULE_VERSION(CX231XX_VERSION);
 
 static unsigned int card[]     = {[0 ... (CX231XX_MAXBOARDS - 1)] = UNSET };
 static unsigned int video_nr[] = {[0 ... (CX231XX_MAXBOARDS - 1)] = UNSET };
@@ -1869,8 +1869,6 @@ static int vidioc_querycap(struct file *file, void *priv,
 	strlcpy(cap->card, cx231xx_boards[dev->model].name, sizeof(cap->card));
 	usb_make_path(dev->udev, cap->bus_info, sizeof(cap->bus_info));
 
-	cap->version = CX231XX_VERSION_CODE;
-
 	cap->capabilities = V4L2_CAP_VBI_CAPTURE |
 #if 0
 		V4L2_CAP_SLICED_VBI_CAPTURE |
@@ -2057,7 +2055,6 @@ static int radio_querycap(struct file *file, void *priv,
 	strlcpy(cap->card, cx231xx_boards[dev->model].name, sizeof(cap->card));
 	usb_make_path(dev->udev, cap->bus_info, sizeof(cap->bus_info));
 
-	cap->version = CX231XX_VERSION_CODE;
 	cap->capabilities = V4L2_CAP_TUNER;
 	return 0;
 }
@@ -2570,11 +2567,8 @@ int cx231xx_register_analog_devices(struct cx231xx *dev)
 {
 	int ret;
 
-	cx231xx_info("%s: v4l2 driver version %d.%d.%d\n",
-		     dev->name,
-		     (CX231XX_VERSION_CODE >> 16) & 0xff,
-		     (CX231XX_VERSION_CODE >> 8) & 0xff,
-		     CX231XX_VERSION_CODE & 0xff);
+	cx231xx_info("%s: v4l2 driver version %s\n",
+		     dev->name, CX231XX_VERSION);
 
 	/* set default norm */
 	/*dev->norm = cx231xx_video_template.current_norm; */
drivers/media/video/cx231xx/cx231xx.h +0 -1
index b39b85e..c8d0d3d 100644
@@ -114,7 +114,6 @@
 	V4L2_STD_PAL_BG |  V4L2_STD_PAL_DK    |  V4L2_STD_PAL_I    | \
 	V4L2_STD_PAL_M  |  V4L2_STD_PAL_N     |  V4L2_STD_PAL_Nc   | \
 	V4L2_STD_PAL_60 |  V4L2_STD_SECAM_L   |  V4L2_STD_SECAM_DK)
-#define CX231xx_VERSION_CODE KERNEL_VERSION(0, 0, 2)
 
 #define SLEEP_S5H1432    30
 #define CX23417_OSC_EN   8
drivers/media/video/cx23885/altera-ci.c +0 -1
index 678539b..1fa8927 100644
@@ -52,7 +52,6 @@
  * |  DATA7|  DATA6|  DATA5|  DATA4|  DATA3|  DATA2|  DATA1|  DATA0|
  * +-------+-------+-------+-------+-------+-------+-------+-------+
  */
-#include <linux/version.h>
 #include <media/videobuf-dma-sg.h>
 #include <media/videobuf-dvb.h>
 #include "altera-ci.h"
drivers/media/video/cx23885/cx23885-417.c +0 -1
index 9a98dc5..67c4a59 100644
@@ -1359,7 +1359,6 @@ static int vidioc_querycap(struct file *file, void  *priv,
 	strlcpy(cap->card, cx23885_boards[tsport->dev->board].name,
 		sizeof(cap->card));
 	sprintf(cap->bus_info, "PCI:%s", pci_name(dev->pci));
-	cap->version = CX23885_VERSION_CODE;
 	cap->capabilities =
 		V4L2_CAP_VIDEO_CAPTURE |
 		V4L2_CAP_READWRITE     |
drivers/media/video/cx23885/cx23885-core.c +3 -10
index 64d9b21..0b44255 100644
@@ -42,6 +42,7 @@
 MODULE_DESCRIPTION("Driver for cx23885 based TV cards");
 MODULE_AUTHOR("Steven Toth <[email protected]>");
 MODULE_LICENSE("GPL");
+MODULE_VERSION(CX23885_VERSION);
 
 static unsigned int debug;
 module_param(debug, int, 0644);
@@ -2152,14 +2153,8 @@ static struct pci_driver cx23885_pci_driver = {
 
 static int __init cx23885_init(void)
 {
-	printk(KERN_INFO "cx23885 driver version %d.%d.%d loaded\n",
-	       (CX23885_VERSION_CODE >> 16) & 0xff,
-	       (CX23885_VERSION_CODE >>  8) & 0xff,
-	       CX23885_VERSION_CODE & 0xff);
-#ifdef SNAPSHOT
-	printk(KERN_INFO "cx23885: snapshot date %04d-%02d-%02d\n",
-	       SNAPSHOT/10000, (SNAPSHOT/100)%100, SNAPSHOT%100);
-#endif
+	printk(KERN_INFO "cx23885 driver version %s loaded\n",
+		CX23885_VERSION);
 	return pci_register_driver(&cx23885_pci_driver);
 }
 
@@ -2170,5 +2165,3 @@ static void __exit cx23885_fini(void)
 
 module_init(cx23885_init);
 module_exit(cx23885_fini);
-
-/* ----------------------------------------------------------- */
drivers/media/video/cx23885/cx23885-video.c +0 -1
index ee57f6b..896bb32 100644
@@ -1000,7 +1000,6 @@ static int vidioc_querycap(struct file *file, void  *priv,
 	strlcpy(cap->card, cx23885_boards[dev->board].name,
 		sizeof(cap->card));
 	sprintf(cap->bus_info, "PCIe:%s", pci_name(dev->pci));
-	cap->version = CX23885_VERSION_CODE;
 	cap->capabilities =
 		V4L2_CAP_VIDEO_CAPTURE |
 		V4L2_CAP_READWRITE     |
drivers/media/video/cx23885/cx23885.h +1 -2
index c186473..01c3b7b 100644
@@ -36,10 +36,9 @@
 #include "cx23885-reg.h"
 #include "media/cx2341x.h"
 
-#include <linux/version.h>
 #include <linux/mutex.h>
 
-#define CX23885_VERSION_CODE KERNEL_VERSION(0, 0, 2)
+#define CX23885_VERSION "0.0.3"
 
 #define UNSET (-1U)
 
drivers/media/video/cx88/cx88-alsa.c +4 -15
index 423c1af..68d1240 100644
@@ -113,6 +113,8 @@ MODULE_DESCRIPTION("ALSA driver module for cx2388x based TV cards");
 MODULE_AUTHOR("Ricardo Cerqueira");
 MODULE_AUTHOR("Mauro Carvalho Chehab <[email protected]>");
 MODULE_LICENSE("GPL");
+MODULE_VERSION(CX88_VERSION);
+
 MODULE_SUPPORTED_DEVICE("{{Conexant,23881},"
 			"{{Conexant,23882},"
 			"{{Conexant,23883}");
@@ -973,14 +975,8 @@ static struct pci_driver cx88_audio_pci_driver = {
  */
 static int __init cx88_audio_init(void)
 {
-	printk(KERN_INFO "cx2388x alsa driver version %d.%d.%d loaded\n",
-	       (CX88_VERSION_CODE >> 16) & 0xff,
-	       (CX88_VERSION_CODE >>  8) & 0xff,
-	       CX88_VERSION_CODE & 0xff);
-#ifdef SNAPSHOT
-	printk(KERN_INFO "cx2388x: snapshot date %04d-%02d-%02d\n",
-	       SNAPSHOT/10000, (SNAPSHOT/100)%100, SNAPSHOT%100);
-#endif
+	printk(KERN_INFO "cx2388x alsa driver version %s loaded\n",
+	       CX88_VERSION);
 	return pci_register_driver(&cx88_audio_pci_driver);
 }
 
@@ -994,10 +990,3 @@ static void __exit cx88_audio_fini(void)
 
 module_init(cx88_audio_init);
 module_exit(cx88_audio_fini);
-
-/* ----------------------------------------------------------- */
-/*
- * Local variables:
- * c-basic-offset: 8
- * End:
- */
drivers/media/video/cx88/cx88-blackbird.c +3 -17
index 11e49bb..e46446a 100644
@@ -42,6 +42,7 @@
 MODULE_DESCRIPTION("driver for cx2388x/cx23416 based mpeg encoder cards");
 MODULE_AUTHOR("Jelle Foks <[email protected]>, Gerd Knorr <[email protected]> [SuSE Labs]");
 MODULE_LICENSE("GPL");
+MODULE_VERSION(CX88_VERSION);
 
 static unsigned int mpegbufs = 32;
 module_param(mpegbufs,int,0644);
@@ -730,7 +731,6 @@ static int vidioc_querycap (struct file *file, void  *priv,
 	strcpy(cap->driver, "cx88_blackbird");
 	strlcpy(cap->card, core->board.name, sizeof(cap->card));
 	sprintf(cap->bus_info,"PCI:%s",pci_name(dev->pci));
-	cap->version = CX88_VERSION_CODE;
 	cap->capabilities =
 		V4L2_CAP_VIDEO_CAPTURE |
 		V4L2_CAP_READWRITE     |
@@ -1368,14 +1368,8 @@ static struct cx8802_driver cx8802_blackbird_driver = {
 
 static int __init blackbird_init(void)
 {
-	printk(KERN_INFO "cx2388x blackbird driver version %d.%d.%d loaded\n",
-	       (CX88_VERSION_CODE >> 16) & 0xff,
-	       (CX88_VERSION_CODE >>  8) & 0xff,
-	       CX88_VERSION_CODE & 0xff);
-#ifdef SNAPSHOT
-	printk(KERN_INFO "cx2388x: snapshot date %04d-%02d-%02d\n",
-	       SNAPSHOT/10000, (SNAPSHOT/100)%100, SNAPSHOT%100);
-#endif
+	printk(KERN_INFO "cx2388x blackbird driver version %s loaded\n",
+	       CX88_VERSION);
 	return cx8802_register_driver(&cx8802_blackbird_driver);
 }
 
@@ -1389,11 +1383,3 @@ module_exit(blackbird_fini);
 
 module_param_named(video_debug,cx8802_mpeg_template.debug, int, 0644);
 MODULE_PARM_DESC(debug,"enable debug messages [video]");
-
-/* ----------------------------------------------------------- */
-/*
- * Local variables:
- * c-basic-offset: 8
- * End:
- * kate: eol "unix"; indent-width 3; remove-trailing-space on; replace-trailing-space-save on; tab-width 8; replace-tabs off; space-indent off; mixed-indent off
- */
drivers/media/video/cx88/cx88-dvb.c +3 -15
index 1ed72ce..cf3d33a 100644
@@ -64,6 +64,7 @@ MODULE_DESCRIPTION("driver for cx2388x based DVB cards");
 MODULE_AUTHOR("Chris Pascoe <[email protected]>");
 MODULE_AUTHOR("Gerd Knorr <[email protected]> [SuSE Labs]");
 MODULE_LICENSE("GPL");
+MODULE_VERSION(CX88_VERSION);
 
 static unsigned int debug;
 module_param(debug, int, 0644);
@@ -1749,14 +1750,8 @@ static struct cx8802_driver cx8802_dvb_driver = {
 
 static int __init dvb_init(void)
 {
-	printk(KERN_INFO "cx88/2: cx2388x dvb driver version %d.%d.%d loaded\n",
-	       (CX88_VERSION_CODE >> 16) & 0xff,
-	       (CX88_VERSION_CODE >>  8) & 0xff,
-	       CX88_VERSION_CODE & 0xff);
-#ifdef SNAPSHOT
-	printk(KERN_INFO "cx2388x: snapshot date %04d-%02d-%02d\n",
-	       SNAPSHOT/10000, (SNAPSHOT/100)%100, SNAPSHOT%100);
-#endif
+	printk(KERN_INFO "cx88/2: cx2388x dvb driver version %s loaded\n",
+	       CX88_VERSION);
 	return cx8802_register_driver(&cx8802_dvb_driver);
 }
 
@@ -1767,10 +1762,3 @@ static void __exit dvb_fini(void)
 
 module_init(dvb_init);
 module_exit(dvb_fini);
-
-/*
- * Local variables:
- * c-basic-offset: 8
- * compile-command: "make DVB=1"
- * End:
- */
drivers/media/video/cx88/cx88-mpeg.c +3 -8
index 1a7b983..ccd8797 100644
@@ -39,6 +39,7 @@ MODULE_AUTHOR("Jelle Foks <[email protected]>");
 MODULE_AUTHOR("Chris Pascoe <[email protected]>");
 MODULE_AUTHOR("Gerd Knorr <[email protected]> [SuSE Labs]");
 MODULE_LICENSE("GPL");
+MODULE_VERSION(CX88_VERSION);
 
 static unsigned int debug;
 module_param(debug,int,0644);
@@ -890,14 +891,8 @@ static struct pci_driver cx8802_pci_driver = {
 
 static int __init cx8802_init(void)
 {
-	printk(KERN_INFO "cx88/2: cx2388x MPEG-TS Driver Manager version %d.%d.%d loaded\n",
-	       (CX88_VERSION_CODE >> 16) & 0xff,
-	       (CX88_VERSION_CODE >>  8) & 0xff,
-	       CX88_VERSION_CODE & 0xff);
-#ifdef SNAPSHOT
-	printk(KERN_INFO "cx2388x: snapshot date %04d-%02d-%02d\n",
-	       SNAPSHOT/10000, (SNAPSHOT/100)%100, SNAPSHOT%100);
-#endif
+	printk(KERN_INFO "cx88/2: cx2388x MPEG-TS Driver Manager version %s loaded\n",
+	       CX88_VERSION);
 	return pci_register_driver(&cx8802_pci_driver);
 }
 
drivers/media/video/cx88/cx88-video.c +3 -18
index cef4f28..1db97f3 100644
@@ -45,6 +45,7 @@
 MODULE_DESCRIPTION("v4l2 driver module for cx2388x based TV cards");
 MODULE_AUTHOR("Gerd Knorr <[email protected]> [SuSE Labs]");
 MODULE_LICENSE("GPL");
+MODULE_VERSION(CX88_VERSION);
 
 /* ------------------------------------------------------------------ */
 
@@ -1161,7 +1162,6 @@ static int vidioc_querycap (struct file *file, void  *priv,
 	strcpy(cap->driver, "cx8800");
 	strlcpy(cap->card, core->board.name, sizeof(cap->card));
 	sprintf(cap->bus_info,"PCI:%s",pci_name(dev->pci));
-	cap->version = CX88_VERSION_CODE;
 	cap->capabilities =
 		V4L2_CAP_VIDEO_CAPTURE |
 		V4L2_CAP_READWRITE     |
@@ -1480,7 +1480,6 @@ static int radio_querycap (struct file *file, void  *priv,
 	strcpy(cap->driver, "cx8800");
 	strlcpy(cap->card, core->board.name, sizeof(cap->card));
 	sprintf(cap->bus_info,"PCI:%s", pci_name(dev->pci));
-	cap->version = CX88_VERSION_CODE;
 	cap->capabilities = V4L2_CAP_TUNER;
 	return 0;
 }
@@ -2139,14 +2138,8 @@ static struct pci_driver cx8800_pci_driver = {
 
 static int __init cx8800_init(void)
 {
-	printk(KERN_INFO "cx88/0: cx2388x v4l2 driver version %d.%d.%d loaded\n",
-	       (CX88_VERSION_CODE >> 16) & 0xff,
-	       (CX88_VERSION_CODE >>  8) & 0xff,
-	       CX88_VERSION_CODE & 0xff);
-#ifdef SNAPSHOT
-	printk(KERN_INFO "cx2388x: snapshot date %04d-%02d-%02d\n",
-	       SNAPSHOT/10000, (SNAPSHOT/100)%100, SNAPSHOT%100);
-#endif
+	printk(KERN_INFO "cx88/0: cx2388x v4l2 driver version %s loaded\n",
+	       CX88_VERSION);
 	return pci_register_driver(&cx8800_pci_driver);
 }
 
@@ -2157,11 +2150,3 @@ static void __exit cx8800_fini(void)
 
 module_init(cx8800_init);
 module_exit(cx8800_fini);
-
-/* ----------------------------------------------------------- */
-/*
- * Local variables:
- * c-basic-offset: 8
- * End:
- * kate: eol "unix"; indent-width 3; remove-trailing-space on; replace-trailing-space-save on; tab-width 8; replace-tabs off; space-indent off; mixed-indent off
- */
drivers/media/video/cx88/cx88.h +2 -2
index 5719063..425c9fb 100644
@@ -39,9 +39,9 @@
 #include "cx88-reg.h"
 #include "tuner-xc2028.h"
 
-#include <linux/version.h>
 #include <linux/mutex.h>
-#define CX88_VERSION_CODE KERNEL_VERSION(0, 0, 8)
+
+#define CX88_VERSION "0.0.9"
 
 #define UNSET (-1U)
 
drivers/media/video/em28xx/em28xx-video.c +5 -9
index 7b6461d..d176dc0 100644
@@ -32,7 +32,6 @@
 #include <linux/bitmap.h>
 #include <linux/usb.h>
 #include <linux/i2c.h>
-#include <linux/version.h>
 #include <linux/mm.h>
 #include <linux/mutex.h>
 #include <linux/slab.h>
@@ -50,7 +49,8 @@
 		      "Sascha Sommer <[email protected]>"
 
 #define DRIVER_DESC         "Empia em28xx based USB video device driver"
-#define EM28XX_VERSION_CODE  KERNEL_VERSION(0, 1, 2)
+
+#define EM28XX_VERSION "0.1.3"
 
 #define em28xx_videodbg(fmt, arg...) do {\
 	if (video_debug) \
@@ -72,6 +72,7 @@ do {\
 MODULE_AUTHOR(DRIVER_AUTHOR);
 MODULE_DESCRIPTION(DRIVER_DESC);
 MODULE_LICENSE("GPL");
+MODULE_VERSION(EM28XX_VERSION);
 
 static unsigned int video_nr[] = {[0 ... (EM28XX_MAXBOARDS - 1)] = UNSET };
 static unsigned int vbi_nr[]   = {[0 ... (EM28XX_MAXBOARDS - 1)] = UNSET };
@@ -1757,8 +1758,6 @@ static int vidioc_querycap(struct file *file, void  *priv,
 	strlcpy(cap->card, em28xx_boards[dev->model].name, sizeof(cap->card));
 	usb_make_path(dev->udev, cap->bus_info, sizeof(cap->bus_info));
 
-	cap->version = EM28XX_VERSION_CODE;
-
 	cap->capabilities =
 			V4L2_CAP_SLICED_VBI_CAPTURE |
 			V4L2_CAP_VIDEO_CAPTURE |
@@ -1976,7 +1975,6 @@ static int radio_querycap(struct file *file, void  *priv,
 	strlcpy(cap->card, em28xx_boards[dev->model].name, sizeof(cap->card));
 	usb_make_path(dev->udev, cap->bus_info, sizeof(cap->bus_info));
 
-	cap->version = EM28XX_VERSION_CODE;
 	cap->capabilities = V4L2_CAP_TUNER;
 	return 0;
 }
@@ -2450,10 +2448,8 @@ int em28xx_register_analog_devices(struct em28xx *dev)
       u8 val;
 	int ret;
 
-	printk(KERN_INFO "%s: v4l2 driver version %d.%d.%d\n",
-		dev->name,
-		(EM28XX_VERSION_CODE >> 16) & 0xff,
-		(EM28XX_VERSION_CODE >> 8) & 0xff, EM28XX_VERSION_CODE & 0xff);
+	printk(KERN_INFO "%s: v4l2 driver version %s\n",
+		dev->name, EM28XX_VERSION);
 
 	/* set default norm */
 	dev->norm = em28xx_video_template.current_norm;
drivers/media/video/gspca/gl860/gl860.h +0 -1
index 49ad4ac..0330a02 100644
@@ -18,7 +18,6 @@
  */
 #ifndef GL860_DEV_H
 #define GL860_DEV_H
-#include <linux/version.h>
 
 #include "gspca.h"
 
drivers/media/video/hdpvr/hdpvr-core.c +1 -0
index a27d93b..5442a17 100644
@@ -474,5 +474,6 @@ module_init(hdpvr_init);
 module_exit(hdpvr_exit);
 
 MODULE_LICENSE("GPL");
+MODULE_VERSION("0.2.1");
 MODULE_AUTHOR("Janne Grunau");
 MODULE_DESCRIPTION("Hauppauge HD PVR driver");
drivers/media/video/hdpvr/hdpvr-video.c +0 -2
index 514aea7..087f7c0 100644
@@ -17,7 +17,6 @@
 #include <linux/uaccess.h>
 #include <linux/usb.h>
 #include <linux/mutex.h>
-#include <linux/version.h>
 #include <linux/workqueue.h>
 
 #include <linux/videodev2.h>
@@ -574,7 +573,6 @@ static int vidioc_querycap(struct file *file, void  *priv,
 	strcpy(cap->driver, "hdpvr");
 	strcpy(cap->card, "Hauppauge HD PVR");
 	usb_make_path(dev->udev, cap->bus_info, sizeof(cap->bus_info));
-	cap->version = HDPVR_VERSION;
 	cap->capabilities =     V4L2_CAP_VIDEO_CAPTURE |
 				V4L2_CAP_AUDIO         |
 				V4L2_CAP_READWRITE;
drivers/media/video/hdpvr/hdpvr.h +0 -6
index 072f23c..d6439db 100644
@@ -18,12 +18,6 @@
 #include <media/v4l2-device.h>
 #include <media/ir-kbd-i2c.h>
 
-#define HDPVR_MAJOR_VERSION 0
-#define HDPVR_MINOR_VERSION 2
-#define HDPVR_RELEASE 0
-#define HDPVR_VERSION \
-	KERNEL_VERSION(HDPVR_MAJOR_VERSION, HDPVR_MINOR_VERSION, HDPVR_RELEASE)
-
 #define HDPVR_MAX 8
 #define HDPVR_I2C_MAX_SIZE 128
 
drivers/media/video/mem2mem_testdev.c +1 -3
index b03d74e..166bf93 100644
@@ -19,7 +19,6 @@
 #include <linux/module.h>
 #include <linux/delay.h>
 #include <linux/fs.h>
-#include <linux/version.h>
 #include <linux/timer.h>
 #include <linux/sched.h>
 #include <linux/slab.h>
@@ -35,7 +34,7 @@
 MODULE_DESCRIPTION("Virtual device for mem2mem framework testing");
 MODULE_AUTHOR("Pawel Osciak, <[email protected]>");
 MODULE_LICENSE("GPL");
-
+MODULE_VERSION("0.1.1");
 
 #define MIN_W 32
 #define MIN_H 32
@@ -380,7 +379,6 @@ static int vidioc_querycap(struct file *file, void *priv,
 	strncpy(cap->driver, MEM2MEM_NAME, sizeof(cap->driver) - 1);
 	strncpy(cap->card, MEM2MEM_NAME, sizeof(cap->card) - 1);
 	cap->bus_info[0] = 0;
-	cap->version = KERNEL_VERSION(0, 1, 0);
 	cap->capabilities = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_VIDEO_OUTPUT
 			  | V4L2_CAP_STREAMING;
 
drivers/media/video/pms.c +1 -3
index 7551907..e753b5e 100644
@@ -28,7 +28,6 @@
 #include <linux/mm.h>
 #include <linux/ioport.h>
 #include <linux/init.h>
-#include <linux/version.h>
 #include <linux/mutex.h>
 #include <linux/uaccess.h>
 #include <asm/io.h>
@@ -39,7 +38,7 @@
 #include <media/v4l2-device.h>
 
 MODULE_LICENSE("GPL");
-
+MODULE_VERSION("0.0.4");
 
 #define MOTOROLA	1
 #define PHILIPS2	2               /* SAA7191 */
@@ -678,7 +677,6 @@ static int pms_querycap(struct file *file, void  *priv,
 	strlcpy(vcap->driver, dev->v4l2_dev.name, sizeof(vcap->driver));
 	strlcpy(vcap->card, "Mediavision PMS", sizeof(vcap->card));
 	strlcpy(vcap->bus_info, "ISA", sizeof(vcap->bus_info));
-	vcap->version = KERNEL_VERSION(0, 0, 3);
 	vcap->capabilities = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_READWRITE;
 	return 0;
 }
drivers/media/video/pwc/pwc-ioctl.h +0 -1
index 8c0cae7..b74fea0 100644
@@ -52,7 +52,6 @@
  */
 
 #include <linux/types.h>
-#include <linux/version.h>
 
  /* Enumeration of image sizes */
 #define PSZ_SQCIF	0x00
drivers/media/video/pwc/pwc.h +4 -4
index e947766..78185c6 100644
@@ -29,7 +29,6 @@
 #include <linux/usb.h>
 #include <linux/spinlock.h>
 #include <linux/wait.h>
-#include <linux/version.h>
 #include <linux/mutex.h>
 #include <linux/mm.h>
 #include <linux/slab.h>
@@ -47,9 +46,10 @@
 /* Version block */
 #define PWC_MAJOR	10
 #define PWC_MINOR	0
-#define PWC_EXTRAMINOR	12
-#define PWC_VERSION_CODE KERNEL_VERSION(PWC_MAJOR,PWC_MINOR,PWC_EXTRAMINOR)
-#define PWC_VERSION	"10.0.14"
+#define PWC_EXTRAMINOR	15
+
+#define PWC_VERSION_CODE KERNEL_VERSION(PWC_MAJOR, PWC_MINOR, PWC_EXTRAMINOR)
+#define PWC_VERSION __stringify(PWC_MAJOR) "." __stringify(PWC_MINOR) "." __stringify(PWC_EXTRAMINOR)
 #define PWC_NAME 	"pwc"
 #define PFX		PWC_NAME ": "
 
drivers/media/video/saa7134/saa7134-core.c +4 -8
index f9be737..acf83f4 100644
@@ -39,6 +39,8 @@
 MODULE_DESCRIPTION("v4l2 driver module for saa7130/34 based TV cards");
 MODULE_AUTHOR("Gerd Knorr <[email protected]> [SuSE Labs]");
 MODULE_LICENSE("GPL");
+MODULE_LICENSE(SAA7134_VERSION);
+
 
 /* ------------------------------------------------------------------ */
 
@@ -1332,14 +1334,8 @@ static struct pci_driver saa7134_pci_driver = {
 static int __init saa7134_init(void)
 {
 	INIT_LIST_HEAD(&saa7134_devlist);
-	printk(KERN_INFO "saa7130/34: v4l2 driver version %d.%d.%d loaded\n",
-	       (SAA7134_VERSION_CODE >> 16) & 0xff,
-	       (SAA7134_VERSION_CODE >>  8) & 0xff,
-	       SAA7134_VERSION_CODE & 0xff);
-#ifdef SNAPSHOT
-	printk(KERN_INFO "saa7130/34: snapshot date %04d-%02d-%02d\n",
-	       SNAPSHOT/10000, (SNAPSHOT/100)%100, SNAPSHOT%100);
-#endif
+	printk(KERN_INFO "saa7130/34: v4l2 driver version %s loaded\n",
+	       SAA7134_VERSION);
 	return pci_register_driver(&saa7134_pci_driver);
 }
 
drivers/media/video/saa7134/saa7134-empress.c +0 -1
index 18294db..dde361a 100644
@@ -172,7 +172,6 @@ static int empress_querycap(struct file *file, void  *priv,
 	strlcpy(cap->card, saa7134_boards[dev->board].name,
 		sizeof(cap->card));
 	sprintf(cap->bus_info, "PCI:%s", pci_name(dev->pci));
-	cap->version = SAA7134_VERSION_CODE;
 	cap->capabilities =
 		V4L2_CAP_VIDEO_CAPTURE |
 		V4L2_CAP_READWRITE |
drivers/media/video/saa7134/saa7134-video.c +0 -2
index 776ba2d..9cf7914 100644
@@ -1810,7 +1810,6 @@ static int saa7134_querycap(struct file *file, void  *priv,
 	strlcpy(cap->card, saa7134_boards[dev->board].name,
 		sizeof(cap->card));
 	sprintf(cap->bus_info, "PCI:%s", pci_name(dev->pci));
-	cap->version = SAA7134_VERSION_CODE;
 	cap->capabilities =
 		V4L2_CAP_VIDEO_CAPTURE |
 		V4L2_CAP_VBI_CAPTURE |
@@ -2307,7 +2306,6 @@ static int radio_querycap(struct file *file, void *priv,
 	strcpy(cap->driver, "saa7134");
 	strlcpy(cap->card, saa7134_boards[dev->board].name, sizeof(cap->card));
 	sprintf(cap->bus_info, "PCI:%s", pci_name(dev->pci));
-	cap->version = SAA7134_VERSION_CODE;
 	cap->capabilities = V4L2_CAP_TUNER;
 	return 0;
 }
drivers/media/video/saa7134/saa7134.h +1 -2
index 28eb103..bc8d6bb 100644
@@ -19,8 +19,7 @@
  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include <linux/version.h>
-#define SAA7134_VERSION_CODE KERNEL_VERSION(0, 2, 16)
+#define SAA7134_VERSION "0, 2, 17"
 
 #include <linux/pci.h>
 #include <linux/i2c.h>
drivers/media/video/saa7164/saa7164.h +0 -1
index 16745d2..6678bf1 100644
@@ -48,7 +48,6 @@
 #include <linux/i2c.h>
 #include <linux/i2c-algo-bit.h>
 #include <linux/kdev_t.h>
-#include <linux/version.h>
 #include <linux/mutex.h>
 #include <linux/crc32.h>
 #include <linux/kthread.h>
drivers/media/video/timblogiw.c +0 -1
index fc611eb..84cd1b6 100644
@@ -20,7 +20,6 @@
  * Timberdale FPGA LogiWin Video In
  */
 
-#include <linux/version.h>
 #include <linux/platform_device.h>
 #include <linux/slab.h>
 #include <linux/dmaengine.h>
drivers/media/video/tlg2300/pd-common.h +0 -1
index 46066bd..56564e6 100644
@@ -1,7 +1,6 @@
 #ifndef PD_COMMON_H
 #define PD_COMMON_H
 
-#include <linux/version.h>
 #include <linux/fs.h>
 #include <linux/wait.h>
 #include <linux/list.h>
drivers/media/video/tlg2300/pd-main.c +1 -0
index 99c81a9..129f135 100644
@@ -531,3 +531,4 @@ module_exit(poseidon_exit);
 MODULE_AUTHOR("Telegent Systems");
 MODULE_DESCRIPTION("For tlg2300-based USB device ");
 MODULE_LICENSE("GPL");
+MODULE_VERSION("0.0.2");
drivers/media/video/tlg2300/pd-radio.c +0 -2
index fae84c2..4fad1df 100644
@@ -6,7 +6,6 @@
 #include <linux/usb.h>
 #include <linux/i2c.h>
 #include <media/v4l2-dev.h>
-#include <linux/version.h>
 #include <linux/mm.h>
 #include <linux/mutex.h>
 #include <media/v4l2-ioctl.h>
@@ -149,7 +148,6 @@ static int vidioc_querycap(struct file *file, void *priv,
 	strlcpy(v->driver, "tele-radio", sizeof(v->driver));
 	strlcpy(v->card, "Telegent Poseidon", sizeof(v->card));
 	usb_make_path(p->udev, v->bus_info, sizeof(v->bus_info));
-	v->version = KERNEL_VERSION(0, 0, 1);
 	v->capabilities = V4L2_CAP_TUNER | V4L2_CAP_RADIO;
 	return 0;
 }
drivers/media/video/usbvision/usbvision-video.c +1 -11
index ea8ea8a..5a74f5e 100644
@@ -45,7 +45,6 @@
  *
  */
 
-#include <linux/version.h>
 #include <linux/kernel.h>
 #include <linux/list.h>
 #include <linux/timer.h>
@@ -77,15 +76,7 @@
 #define DRIVER_ALIAS "USBVision"
 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux"
 #define DRIVER_LICENSE "GPL"
-#define USBVISION_DRIVER_VERSION_MAJOR 0
-#define USBVISION_DRIVER_VERSION_MINOR 9
-#define USBVISION_DRIVER_VERSION_PATCHLEVEL 10
-#define USBVISION_DRIVER_VERSION KERNEL_VERSION(USBVISION_DRIVER_VERSION_MAJOR,\
-USBVISION_DRIVER_VERSION_MINOR,\
-USBVISION_DRIVER_VERSION_PATCHLEVEL)
-#define USBVISION_VERSION_STRING __stringify(USBVISION_DRIVER_VERSION_MAJOR) \
-"." __stringify(USBVISION_DRIVER_VERSION_MINOR) \
-"." __stringify(USBVISION_DRIVER_VERSION_PATCHLEVEL)
+#define USBVISION_VERSION_STRING "0.9.11"
 
 #define	ENABLE_HEXDUMP	0	/* Enable if you need it */
 
@@ -516,7 +507,6 @@ static int vidioc_querycap(struct file *file, void  *priv,
 		usbvision_device_data[usbvision->dev_model].model_string,
 		sizeof(vc->card));
 	usb_make_path(usbvision->dev, vc->bus_info, sizeof(vc->bus_info));
-	vc->version = USBVISION_DRIVER_VERSION;
 	vc->capabilities = V4L2_CAP_VIDEO_CAPTURE |
 		V4L2_CAP_AUDIO |
 		V4L2_CAP_READWRITE |
drivers/media/video/vino.c +1 -4
index d63e9d9..52a0a37 100644
@@ -36,7 +36,6 @@
 #include <linux/slab.h>
 #include <linux/mm.h>
 #include <linux/time.h>
-#include <linux/version.h>
 #include <linux/kmod.h>
 
 #include <linux/i2c.h>
@@ -61,8 +60,7 @@
 // #define VINO_DEBUG
 // #define VINO_DEBUG_INT
 
-#define VINO_MODULE_VERSION "0.0.6"
-#define VINO_VERSION_CODE KERNEL_VERSION(0, 0, 6)
+#define VINO_MODULE_VERSION "0.0.7"
 
 MODULE_DESCRIPTION("SGI VINO Video4Linux2 driver");
 MODULE_VERSION(VINO_MODULE_VERSION);
@@ -2934,7 +2932,6 @@ static int vino_querycap(struct file *file, void *__fh,
 	strcpy(cap->driver, vino_driver_name);
 	strcpy(cap->card, vino_driver_description);
 	strcpy(cap->bus_info, vino_bus_name);
-	cap->version = VINO_VERSION_CODE;
 	cap->capabilities =
 		V4L2_CAP_VIDEO_CAPTURE |
 		V4L2_CAP_STREAMING;
drivers/media/video/vivi.c +4 -10
index 2238a61..3b9db8c 100644
@@ -22,7 +22,6 @@
 #include <linux/sched.h>
 #include <linux/slab.h>
 #include <linux/font.h>
-#include <linux/version.h>
 #include <linux/mutex.h>
 #include <linux/videodev2.h>
 #include <linux/kthread.h>
@@ -44,15 +43,12 @@
 #define MAX_WIDTH 1920
 #define MAX_HEIGHT 1200
 
-#define VIVI_MAJOR_VERSION 0
-#define VIVI_MINOR_VERSION 8
-#define VIVI_RELEASE 0
-#define VIVI_VERSION \
-	KERNEL_VERSION(VIVI_MAJOR_VERSION, VIVI_MINOR_VERSION, VIVI_RELEASE)
+#define VIVI_VERSION "0.8.1"
 
 MODULE_DESCRIPTION("Video Technology Magazine Virtual Video Capture Board");
 MODULE_AUTHOR("Mauro Carvalho Chehab, Ted Walther and John Sokol");
 MODULE_LICENSE("Dual BSD/GPL");
+MODULE_VERSION(VIVI_VERSION);
 
 static unsigned video_nr = -1;
 module_param(video_nr, uint, 0644);
@@ -812,7 +808,6 @@ static int vidioc_querycap(struct file *file, void  *priv,
 	strcpy(cap->driver, "vivi");
 	strcpy(cap->card, "vivi");
 	strlcpy(cap->bus_info, dev->v4l2_dev.name, sizeof(cap->bus_info));
-	cap->version = VIVI_VERSION;
 	cap->capabilities = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING | \
 			    V4L2_CAP_READWRITE;
 	return 0;
@@ -1325,9 +1320,8 @@ static int __init vivi_init(void)
 	}
 
 	printk(KERN_INFO "Video Technology Magazine Virtual Video "
-			"Capture Board ver %u.%u.%u successfully loaded.\n",
-			(VIVI_VERSION >> 16) & 0xFF, (VIVI_VERSION >> 8) & 0xFF,
-			VIVI_VERSION & 0xFF);
+			"Capture Board ver %s successfully loaded.\n",
+			VIVI_VERSION);
 
 	/* n_devs will reflect the actual number of allocated devices */
 	n_devs = i;
drivers/media/video/w9966.c +1 -3
index fa35639..453dbbd 100644
@@ -57,7 +57,6 @@
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/delay.h>
-#include <linux/version.h>
 #include <linux/videodev2.h>
 #include <linux/slab.h>
 #include <media/v4l2-common.h>
@@ -127,7 +126,7 @@ struct w9966 {
 MODULE_AUTHOR("Jakob Kemi <[email protected]>");
 MODULE_DESCRIPTION("Winbond w9966cf WebCam driver (0.32)");
 MODULE_LICENSE("GPL");
-
+MODULE_VERSION("0.33.1");
 
 #ifdef MODULE
 static const char *pardev[] = {[0 ... W9966_MAXCAMS] = ""};
@@ -568,7 +567,6 @@ static int cam_querycap(struct file *file, void  *priv,
 	strlcpy(vcap->driver, cam->v4l2_dev.name, sizeof(vcap->driver));
 	strlcpy(vcap->card, W9966_DRIVERNAME, sizeof(vcap->card));
 	strlcpy(vcap->bus_info, "parport", sizeof(vcap->bus_info));
-	vcap->version = KERNEL_VERSION(0, 33, 0);
 	vcap->capabilities = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_READWRITE;
 	return 0;
 }
drivers/media/video/zoran/zoran.h +0 -4
index f3f6400..d7166af 100644
@@ -41,10 +41,6 @@ struct zoran_sync {
 };
 
 
-#define MAJOR_VERSION 0		/* driver major version */
-#define MINOR_VERSION 10	/* driver minor version */
-#define RELEASE_VERSION 0	/* release version */
-
 #define ZORAN_NAME    "ZORAN"	/* name of the device */
 
 #define ZR_DEVNAME(zr) ((zr)->name)
drivers/media/video/zoran/zoran_card.c +5 -2
index 79b04ac..c3602d6 100644
@@ -123,9 +123,12 @@ int zr36067_debug = 1;
 module_param_named(debug, zr36067_debug, int, 0644);
 MODULE_PARM_DESC(debug, "Debug level (0-5)");
 
+#define ZORAN_VERSION "0.10.1"
+
 MODULE_DESCRIPTION("Zoran-36057/36067 JPEG codec driver");
 MODULE_AUTHOR("Serguei Miridonov");
 MODULE_LICENSE("GPL");
+MODULE_VERSION(ZORAN_VERSION);
 
 #define ZR_DEVICE(subven, subdev, data)	{ \
 	.vendor = PCI_VENDOR_ID_ZORAN, .device = PCI_DEVICE_ID_ZORAN_36057, \
@@ -1459,8 +1462,8 @@ static int __init zoran_init(void)
 {
 	int res;
 
-	printk(KERN_INFO "Zoran MJPEG board driver version %d.%d.%d\n",
-	       MAJOR_VERSION, MINOR_VERSION, RELEASE_VERSION);
+	printk(KERN_INFO "Zoran MJPEG board driver version %s\n",
+	       ZORAN_VERSION);
 
 	/* check the parameters we have been given, adjust if necessary */
 	if (v4l_nbufs < 2)
drivers/media/video/zoran/zoran_driver.c +0 -3
index 2771d81..d4d05d2 100644
@@ -44,7 +44,6 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include <linux/version.h>
 #include <linux/init.h>
 #include <linux/module.h>
 #include <linux/delay.h>
@@ -1538,8 +1537,6 @@ static int zoran_querycap(struct file *file, void *__fh, struct v4l2_capability
 	strncpy(cap->driver, "zoran", sizeof(cap->driver)-1);
 	snprintf(cap->bus_info, sizeof(cap->bus_info), "PCI:%s",
 		 pci_name(zr->pci_dev));
-	cap->version = KERNEL_VERSION(MAJOR_VERSION, MINOR_VERSION,
-			   RELEASE_VERSION);
 	cap->capabilities = V4L2_CAP_STREAMING | V4L2_CAP_VIDEO_CAPTURE |
 			    V4L2_CAP_VIDEO_OUTPUT | V4L2_CAP_VIDEO_OVERLAY;
 	return 0;
drivers/media/video/zr364xx.c +2 -4
index 7dfb01e..c492846 100644
@@ -29,7 +29,6 @@
 
 
 #include <linux/module.h>
-#include <linux/version.h>
 #include <linux/init.h>
 #include <linux/usb.h>
 #include <linux/vmalloc.h>
@@ -42,8 +41,7 @@
 
 
 /* Version Information */
-#define DRIVER_VERSION "v0.73"
-#define ZR364XX_VERSION_CODE KERNEL_VERSION(0, 7, 3)
+#define DRIVER_VERSION "0.7.4"
 #define DRIVER_AUTHOR "Antoine Jacquet, http://royale.zerezo.com/"
 #define DRIVER_DESC "Zoran 364xx"
 
@@ -744,7 +742,6 @@ static int zr364xx_vidioc_querycap(struct file *file, void *priv,
 	strlcpy(cap->card, cam->udev->product, sizeof(cap->card));
 	strlcpy(cap->bus_info, dev_name(&cam->udev->dev),
 		sizeof(cap->bus_info));
-	cap->version = ZR364XX_VERSION_CODE;
 	cap->capabilities = V4L2_CAP_VIDEO_CAPTURE |
 			    V4L2_CAP_READWRITE |
 			    V4L2_CAP_STREAMING;
@@ -1721,3 +1718,4 @@ module_exit(zr364xx_exit);
 MODULE_AUTHOR(DRIVER_AUTHOR);
 MODULE_DESCRIPTION(DRIVER_DESC);
 MODULE_LICENSE("GPL");
+MODULE_VERSION(DRIVER_VERSION);
#15 lore raw

Re: [PATCH] [media] Stop using linux/version.h on most drivers

Em 25-06-2011 07:09, Hans Verkuil escreveu:

Quoted 27 lines · On Friday, June 24, 2011 20:25:26 Mauro Carvalho Chehab wrote:
Quoted 26 lines

All the modified drivers didn't have any version increment since Jan, 1 2011. Several of them didn't have any version increment for a long time, even having new features and important bug fixes happening.

As we're now filling the QUERYCAP version with the current Kernel Release, we don't need to maintain a per-driver version control anymore. So, let's just use the default.

In order to preserve the Kernel module version history, a KERNEL_VERSION() macro were added to all modified drivers, and the extraver number were incremented.

I opted to preserve the per-driver version control to a few
drivers: cx18, davinci, fsl-viu, gspca, ivtv, m5mols, soc_camera, pwc, s2255, s5p-fimc and sh_vou. The rationale is that the per-driver version control seems to be actively maintained on those.

A few drivers are still using the legacy way to handle ioctl's. So, we can't do such change on them, otherwise, they'll break. Those are: uvc, pvrusb2, et61x251 and sn9c102.

Yet, I think that the better for them would be to just use the default version numbering, instead of doing that by themselves.

Quoted 7 lines
Quoted 3 lines

While here, removed a few not needed include linux/version.h.

Sorry, but I have to say NACK to this.

If we do this, then we should do this consistently.

IMO, all drivers should stop reporting its own version via V4L2 API:
people forget to maintain it on a consistent way. That was my original proposal, and it can still be implemented later.

This patch does it on a consistent way: on places were version is not updated for more than 6 months (2 kernel releases) and use video_ioctl2, the version string were replaced by a number that it is greater than the previous value.

My original proposal were to replace it on every place, but you and Devin argued against. So, this approach is a mid-term: let's do it initially where it makes more sense, and discuss what will be done with the remaining drivers that implement their own version control.

With the mid-term approach taken by this patch, we warrant that, when newer V4L2 core API changes are applied, the version number will also be incremented, reflecting that changes could have affected the driver.

Quoted 4 lines

I thought it over and filling it with the current kernel version would work well with one exception: the pwc driver has a major number of 10 which is larger than the kernel's major number. (cpia2 has a version of 3.0.0, so that just works).

That's what I've explained on my first email about this subject: the only driver that has a numbering > 3.0.0 is the pwc driver, and it does that on a not consistent way:
when you've removed the V4L1 API, you've incremented the version string, but you forgot to upgrade the caps->version. So, if any application is relying on it for pwc, the check is currently broken.

Quoted 2 lines

I am inclined to sort of close my eyes for that one and just replace it as well, but that's just me :-)

I like the idea of replacing pwc version to 3.0.0. We moved it into drivers/media at 2006-03-25. On that time, the version was: 9.0.2-unofficial, and only the V4L1 API was implemented.

In other words, the pwc driver never returned version 3.0.0 to VIDIOC_QUERYCAP. So, it is safe to just use 3.x.y. Assuming that we'll be incrementing Kernel major versions on every 10 years, the namespace conflicts will happen 70 years from now ;) Seriously, I don't think we need to be concerned with a conflict with 10.0.x. numbering that will happen on lots of years in the future (also, because we probably won't use the extraver numbering).

Quoted 3 lines

The only thing that needs to be done is that media_build needs some hack to set the version field to the source git tree kernel version instead of the target's kernel version.

Yes. After applying those patches, we'll need to fix the out-of-tree media_build. It shouldn't be hard: a patch can just add a logic that uses a V4L2_VERSION version defined on v4l/v4l2-version.h, for example.

Quoted 3 lines

To simplify that and to accomodate the four ioctl-legacy drivers we can make a simple include/media/version.h header that defines a V4L2_API_VERSION define.

I would not care much about those. The current situation is:
- et61x251: only one USB ID is currently supported there: 102c:6251, using
the TAS5130D1B sensor. The gspca etoms driver supports the same USB ID with the same sensor. IMO, we can just move this driver to staging and remove it.
- sn9c102: I think that there are still a few USB ID's there that aren't yet
at the gspca/sonix* drivers, but Jean-François/Hans could give us a better status. Anyway, no new features or bug fixes are added there for a long time, and core changes should likely not affect this driver, as it doesn't use the subdev layer nor video_ioctl2. So, we can just keep its version there until its removal;
- pvrusb2: Mike Isely said on a reply to one of your patches that he's finally
migrating it to use video_ioctl2.
- uvcvideo: not sure about its current status about its migration to video_ioctl2.
If Laurent is not doing a migration to video_ioctl2 any time soon, a simple patch for it could make it act consistently. In any case, I don't think we should create a include/media/version.h just due to uvcvideo.

Quoted 7 lines

An alternative is to just add an api_version field to v4l2_querycap. That would work fine too.

One reason for doing that may be to help out-of-tree drivers: for those a driver version *does* make sense. I know, we shouldn't have to care about out-of-tree drivers, but on the other hand why make life hard for them without a good reason?

Adding anything at the V4L2 API in order to accommodate a need for an out-of-tree driver is out of the question. While we have some reserved space there, we should not waste it due to out-of-tree drivers.

Quoted 3 lines

The more I think about it, the more I like the idea of an api_version field. It would keep pwc happy, it wouldn't require many changes to drivers, and it will not affect out-of-tree drivers.

As I've explained before, pwc will work with 3.0.0, because there are no namespace conflicts in any predictable future. The _only_ version that it ever reported with V4L2 since April, 2006 is 10.0.12 (see commit 2b455db6d456ef2d44808a8377fd3bc832e08317). For sure, no application is currently checking for its version, as it reports the same version. So, even on the remote far-away case where we might have a conflict, it will be on just one specific stable Kernel release (Kernel 10.0.12).

Removing the driver-specific version reported via V4L2 API is a good thing, due to a series of reasons:
1) every time include/linux/version.h changes, all media drivers need to be recompiled;
2) eventually, this macro will be changed at 3.0 times;
3) developers are lazy on updating it at a per-driver basis; The information there is not consistent;
4) a check for LINUX_VERSION_CODE (and its equivalent media_build replacement) will be changed on a consistent way, being incremented when new features are added at the Kernel;
5) An userspace application could use it in order to check if unsupported ioctl's will return -ENOIOCTLCMD (see my patch adding this change to V4L2 API);
6) From time to time, people do the wrong thing, including version.h where it is not needed, and spending Kernel Janitor's time to cleanup the mess.

Anyway, the approach I'm taking is to:

1) apply a patch making optional for the drivers to fill it;

2) removing it were it is clearly an improvement. The drivers that
still keeps its own version control are basically:
- the 4 drivers that don't use video-ioctl2;
- the SoC drivers;
- 4 drivers that are currently using it at regular basis: gspca, s2255, cx18 and ivtv;
- pwc;
- radio drivers;

3) If you agree, I would also do the same for pwc, as it makes sense to me;

4) double-check with the SoC driver developers and with the other maintainers that use the version control, if using LINUX_VERSION_CODE (and its equivalent media_build replacement) would fit for them;

5) Do the same change for the radio drivers;

6) If a per-API version control fits to everybody, change v4l2-ioctl to enforce it via video_ioctl2, updating the V4L2 API accordingly.

Cheers,
Mauro.

--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

#16 lore raw

Re: [PATCH] [media] Stop using linux/version.h on most drivers

Hi Mauro,

Quoted 2 lines · On Saturday 25 June 2011 14:14:50 Mauro Carvalho Chehab wrote:

Em 25-06-2011 07:09, Hans Verkuil escreveu:

Quoted 1 line · On Friday, June 24, 2011 20:25:26 Mauro Carvalho Chehab wrote:

[snip]

Quoted 5 lines

- uvcvideo: not sure about its current status about its migration to
video_ioctl2. If Laurent is not doing a migration to video_ioctl2 any time soon, a simple patch for it could make it act consistently. In any case, I don't think we should create a include/media/version.h just due to uvcvideo.

That's not on my todo-list for now, -EBUSY :-)

I bump the uvcvideo driver version whenever the userspace API changes. Using the kernel version number applications could find out whether the API they need is implemented, but detecting API changes would become more difficult. That might not be a real issue though, as applications usually don't care.

Signature · 3 lines
Regards,

Laurent Pinchart
#17 lore raw

Re: [RFC] Don't use linux/version.h anymore to indicate a per-driver version - Was: Re: [PATCH 03/37] Remove unneeded version.h includes from include/

In reply to Mauro Carvalho Chehab
Quoted 29 lines · On Jun 24 Mauro Carvalho Chehab wrote:

Em 24-06-2011 10:54, Hans Verkuil escreveu:

Quoted 14 lines · On Friday, June 24, 2011 15:45:59 Devin Heitmueller wrote:
Quoted 7 lines

The versions are increased at the discretion of the driver maintainer, usually when there is some userland visible change in driver behavior.
I assure you the application developers don't *want* to rely on such
a mechanism, but there have definitely been cases in the past where there was no easy way to detect the behavior of the driver from userland.

Quoted 5 lines

It lets application developers work around things like violations of the V4L2 standard which get fixed in newer revisions of the driver. It provides them the ability to put a hack in their code that says "if (version < X) then this driver feature is broken and I shouldn't use it."

Quoted 4 lines

Indeed. Ideally we shouldn't need it. But reality is different.

What we have right now works and I see no compelling reason to change the behavior.

A per-driver version only works if the user is running a vanilla kernel without any stable patches applied.

I doubt that this covers the large amount of the users: they'll either use an stable patched kernel or a distribution-specific one. On both cases, the driver version is not associated with a bug fix, as the driver maintainers just take care of increasing the driver version once per each new kernel version (when they care enough).

Quoted 3 lines

Also, a git blame for the V4L2 drivers shows that only a few drivers have their version increased as changes are applied there. So, relying on cap->version has a minimal chance of working only with a few drivers, with vanilla *.0 kernels.

If the "driver version" is in fact an ABI version, then the driver author should really increase it only when ABI behavior is changed (and only if the behavior change can only be communicated by version number --- e.g. addition of an ioctl is not among such reasons). And the author should commit behavior changing implementation and version number change in a single changeset.

And anybody who backmerges such an ABI behavior change into another kernel branch (stable, longterm, distro...) must backmerge the associated version number change too.

Of course sometimes people realize this only after the fact. Or driver authors don't have a clear understanding of ABI versioning to begin with. I am saying so because I had to learn it too; I certainly wasn't born with an instinct knowledge how to do it properly.

(Disclaimer: I have no stake in drivers/media/ ABIs. But I am involved in maintaining a userspace ABI elsewhere in drivers/firewire/, and one of the userspace libraries that use this ABI.)

Signature · 3 lines
Stefan Richter
-=====-==-== -==- ==---
http://arcgraph.de/sr/
#18 lore raw

Re: [RFC] Don't use linux/version.h anymore to indicate a per-driver version - Was: Re: [PATCH 03/37] Remove unneeded version.h includes from include/

Quoted 11 lines · Stefan Richter

If the "driver version" is in fact an ABI version, then the driver author should really increase it only when ABI behavior is changed (and only if the behavior change can only be communicated by version number --- e.g. addition of an ioctl is not among such reasons).  And the author should commit behavior changing implementation and version number change in a single changeset.

And anybody who backmerges such an ABI behavior change into another kernel branch (stable, longterm, distro...) must backmerge the associated version number change too.

Quoted 8 lines

Of course sometimes people realize this only after the fact.  Or driver authors don't have a clear understanding of ABI versioning to begin with. I am saying so because I had to learn it too; I certainly wasn't born with an instinct knowledge how to do it properly.

(Disclaimer:  I have no stake in drivers/media/ ABIs.  But I am involved in maintaining a userspace ABI elsewhere in drivers/firewire/, and one of the userspace libraries that use this ABI.)

Hi Stefan,

To be clear, I don't think anyone is actually proposing that the driver version number really be used as any form of formal "ABI versioning" scheme. In almost all cases, it's so the application can know to *not* do something is the driver is older than X.

Given all the cases I've seen, it doesn't really hurt anything if the driver contains a fix from newer than X, aside from the fact that the application won't take advantage of whatever feature/functionality the fix made work. In other words, I think from a backport standpoint, it usually doesn't *hurt* anything if a fix is backported without the version being incremented, aside from applications not knowing that the feature/fix is present.

Really, this is all about applications being able to jam a hack into their code that translates to "don't call this ioctl() with some particular argument if it's driver W less than version X, because the driver had a bug that is likely to panic the guy's PC". Sure, it's a crummy solution, but at this point it's the best that we have got.

Devin

Signature · 6 lines
Devin J. Heitmueller - Kernel Labs
http://www.kernellabs.com
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
#19 lore raw

Re: [RFC] Don't use linux/version.h anymore to indicate a per-driver version - Was: Re: [PATCH 03/37] Remove unneeded version.h includes from include/

Quoted 22 lines · Devin Heitmueller
Quoted 11 lines · Stefan Richter

If the "driver version" is in fact an ABI version, then the driver author should really increase it only when ABI behavior is changed (and only if the behavior change can only be communicated by version number --- e.g. addition of an ioctl is not among such reasons). And the author should commit behavior changing implementation and version number change in a single changeset.

And anybody who backmerges such an ABI behavior change into another kernel branch (stable, longterm, distro...) must backmerge the associated version number change too.

Quoted 8 lines

Of course sometimes people realize this only after the fact. Or driver authors don't have a clear understanding of ABI versioning to begin with. I am saying so because I had to learn it too; I certainly wasn't born with an instinct knowledge how to do it properly.

(Disclaimer: I have no stake in drivers/media/ ABIs. But I am involved in maintaining a userspace ABI elsewhere in drivers/firewire/, and one of the userspace libraries that use this ABI.)

Quoted 6 lines

Hi Stefan,

To be clear, I don't think anyone is actually proposing that the driver version number really be used as any form of formal "ABI versioning" scheme. In almost all cases, it's so the application can know to *not* do something is the driver is older than X.

MythTV, for example, used to use the driver version to work around old VBI bugs and MPEG encoder quirks that the older version of the driver may not have known how to handle:

https://github.com/MythTV/mythtv/blob/b98d3a98e3187000ae652df5ffebe2beb5221ba7/mythtv/libs/libmythtv/mpegrecorder.cpp#L335

But for newer versions, MythTV could avoid using its own odd hacks. The bleeding edge MythTV now has most of these removed.

Quoted 7 lines

Given all the cases I've seen, it doesn't really hurt anything if the driver contains a fix from newer than X, aside from the fact that the application won't take advantage of whatever feature/functionality the fix made work. In other words, I think from a backport standpoint, it usually doesn't *hurt* anything if a fix is backported without the version being incremented, aside from applications not knowing that the feature/fix is present.

That seems to be the case to me.

Quoted 4 lines

Really, this is all about applications being able to jam a hack into their code that translates to "don't call this ioctl() with some particular argument if it's driver W less than version X, because the driver had a bug that is likely to panic the guy's PC".

Well, not even panics per se, but some thing like the VBI is broken, or the volume control doesn't work, IR blaster is works for this version, or something else stupid that is very visible to the end user.

I also use the driver version for troubleshooting problem with users. I roughly know what wasn't working in what version of the cx18 and ivtv drivers. If the end user can tell me the driver version (using v4l2-ctl --log-status) along with his symptoms, it makes my life easier. Being able to efficiently help the end user is a win for both me and the end user.

Quoted 2 lines

Sure, it's a
crummy solution, but at this point it's the best that we have got

Yup. We do have crummier solutions:

Telling the end user to read their kernel source code to figure out what bugs their driver release has, and to then adjust their application command line arguments accordingly. ;)

Regards,
Andy

#20 lore raw

Re: [RFC] Don't use linux/version.h anymore to indicate a per-driver version - Was: Re: [PATCH 03/37] Remove unneeded version.h includes from include/

Quoted 4 lines · On Jun 24 Andy Walls wrote:

I also use the driver version for troubleshooting problem with users. I roughly know what wasn't working in what version of the cx18 and ivtv drivers. If the end user can tell me the driver version (using v4l2-ctl --log-status) along with his symptoms, it makes my life easier.

Easier:
"I run Ubuntu 10.4".
"I run kernel 2.6.32."
One of these is usually already included in the first post or IRC message from the user.

Separate driver versions are only needed on platforms where drivers are not distributed by the operating system distributor, or driver source code is not released within kernel source code.

Signature · 3 lines
Stefan Richter
-=====-==-== -==- ==---
http://arcgraph.de/sr/
#21 lore raw

Re: [RFC] Don't use linux/version.h anymore to indicate a per-driver version - Was: Re: [PATCH 03/37] Remove unneeded version.h includes from include/

Quoted 9 lines · Stefan Richter

Easier:
 "I run Ubuntu 10.4".
 "I run kernel 2.6.32."
One of these is usually already included in the first post or IRC message from the user.

Separate driver versions are only needed on platforms where drivers are not distributed by the operating system distributor, or driver source code is not released within kernel source code.

Unfortunately, this doesn't work as all too often the user has "Ubuntu 10.1 but I installed the latest media_build tree a few months ago". Hence they are not necessarily on a particular binary release from a distro but rather have a mix of a distro's binary release and a v4l-dvb tree compiled from source.

Devin

Signature · 6 lines
Devin J. Heitmueller - Kernel Labs
http://www.kernellabs.com
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
#22 lore raw

Re: [RFC] Don't use linux/version.h anymore to indicate a per-driver version - Was: Re: [PATCH 03/37] Remove unneeded version.h includes from include/

Em 24-06-2011 18:22, Devin Heitmueller escreveu:

Quoted 12 lines
Quoted 9 lines · Stefan Richter

Easier:
"I run Ubuntu 10.4".
"I run kernel 2.6.32."
One of these is usually already included in the first post or IRC message from the user.

Separate driver versions are only needed on platforms where drivers are not distributed by the operating system distributor, or driver source code is not released within kernel source code.

Quoted 6 lines

Unfortunately, this doesn't work as all too often the user has "Ubuntu 10.1 but I installed the latest media_build tree a few months ago".

Hence they are not necessarily on a particular binary release from a distro but rather have a mix of a distro's binary release and a v4l-dvb tree compiled from source.

# modprobe vivi
# dmesg
WARNING: You are using an experimental version of the media stack.
	As the driver is backported to an older kernel, it doesn't offer
	enough quality for its usage in production.
	Use it with care.
Latest git patches (needed if you report a bug to [email protected]):
	d3302689d697a99d565ea37c8fb9a19a1a5d0f06 [media] rc-core: fix winbond-cir issues
	6337ae50f81c99efbf9fa924c9d1b8b51efbcef2 [media] rc/redrat3: dereferencing null pointer
	ad0fc4c9ac8bf871b7bf874b2cd34b6b65f099c7 [media] rc: double unlock in rc_register_device()
vivi-000: V4L2 device registered as video0
Video Technology Magazine Virtual Video Capture Board ver 0.8.0 successfully loaded.

The git changeset is a way better than a version number.

Mauro.

#23 lore raw

Re: [RFC] Don't use linux/version.h anymore to indicate a per-driver version - Was: Re: [PATCH 03/37] Remove unneeded version.h includes from include/

In reply to Devin Heitmueller
Quoted 12 lines · On Jun 24 Devin Heitmueller wrote:
Quoted 9 lines · Stefan Richter

Easier:
 "I run Ubuntu 10.4".
 "I run kernel 2.6.32."
One of these is usually already included in the first post or IRC message from the user.

Separate driver versions are only needed on platforms where drivers are not distributed by the operating system distributor, or driver source code is not released within kernel source code.

Quoted 5 lines

Unfortunately, this doesn't work as all too often the user has "Ubuntu 10.1 but I installed the latest media_build tree a few months ago". Hence they are not necessarily on a particular binary release from a distro but rather have a mix of a distro's binary release and a v4l-dvb tree compiled from source.

If you release out-of-kernel-source driver sources for compilation against binary kernels, and you have got users who go through this procedure, then the user can for sure tell you the SCM version of the driver.

Besides, isn't this outdated practice in times where Joe Enduser can get the very latest -rc kernel prepackaged on many distributions, including ones like Ubuntu?

[Sorry, I'm getting perhaps a bit off-topic.]

Signature · 7 lines
Stefan Richter
-=====-==-== -==- ==--=
http://arcgraph.de/sr/
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
#24 lore raw

Re: [RFC] Don't use linux/version.h anymore to indicate a per-driver version - Was: Re: [PATCH 03/37] Remove unneeded version.h includes from include/

Em 24-06-2011 19:39, Stefan Richter escreveu:

Quoted 19 lines · On Jun 24 Devin Heitmueller wrote:
Quoted 12 lines
Quoted 9 lines · Stefan Richter

Easier:
"I run Ubuntu 10.4".
"I run kernel 2.6.32."
One of these is usually already included in the first post or IRC message from the user.

Separate driver versions are only needed on platforms where drivers are not distributed by the operating system distributor, or driver source code is not released within kernel source code.

Quoted 5 lines

Unfortunately, this doesn't work as all too often the user has "Ubuntu 10.1 but I installed the latest media_build tree a few months ago". Hence they are not necessarily on a particular binary release from a distro but rather have a mix of a distro's binary release and a v4l-dvb tree compiled from source.

Quoted 3 lines

If you release out-of-kernel-source driver sources for compilation against binary kernels, and you have got users who go through this procedure, then the user can for sure tell you the SCM version of the driver.

Yes, and this is currently provided. The dmesg will show the last 3 git commits. A developer can just use git diff or git log to discover what changed since those commits.

Quoted 3 lines

Besides, isn't this outdated practice in times where Joe Enduser can get the very latest -rc kernel prepackaged on many distributions, including ones like Ubuntu?

Perhaps, but the cost to maintain the out-of-tree driver git tree is cheap. We provide just a small building system, with a script that downloads a daily tarball with just drivers/media and the corresponding includes (and a few drivers/staging). The building system has a couple patches to allow backport compilation since 2.6.32.

Mauro.

#25 lore raw

Re: [RFC] Don't use linux/version.h anymore to indicate a per-driver version - Was: Re: [PATCH 03/37] Remove unneeded version.h includes from include/

In reply to Andy Walls

Em 24-06-2011 18:04, Andy Walls escreveu:

Quoted 30 lines · Devin Heitmueller
Quoted 22 lines
Quoted 11 lines · Stefan Richter

If the "driver version" is in fact an ABI version, then the driver author should really increase it only when ABI behavior is changed (and only if the behavior change can only be communicated by version number --- e.g. addition of an ioctl is not among such reasons). And the author should commit behavior changing implementation and version number change in a single changeset.

And anybody who backmerges such an ABI behavior change into another kernel branch (stable, longterm, distro...) must backmerge the associated version number change too.

Quoted 8 lines

Of course sometimes people realize this only after the fact. Or driver authors don't have a clear understanding of ABI versioning to begin with. I am saying so because I had to learn it too; I certainly wasn't born with an instinct knowledge how to do it properly.

(Disclaimer: I have no stake in drivers/media/ ABIs. But I am involved in maintaining a userspace ABI elsewhere in drivers/firewire/, and one of the userspace libraries that use this ABI.)

Quoted 6 lines

Hi Stefan,

To be clear, I don't think anyone is actually proposing that the driver version number really be used as any form of formal "ABI versioning" scheme. In almost all cases, it's so the application can know to *not* do something is the driver is older than X.

Quoted 8 lines

MythTV, for example, used to use the driver version to work around old VBI bugs and MPEG encoder quirks that the older version of the driver may not have known how to handle:

https://github.com/MythTV/mythtv/blob/b98d3a98e3187000ae652df5ffebe2beb5221ba7/mythtv/libs/libmythtv/mpegrecorder.cpp#L335

But for newer versions, MythTV could avoid using its own odd hacks. The bleeding edge MythTV now has most of these removed.

Removing it is a good thing.

Quoted 9 lines
Quoted 4 lines

Really, this is all about applications being able to jam a hack into their code that translates to "don't call this ioctl() with some particular argument if it's driver W less than version X, because the driver had a bug that is likely to panic the guy's PC".

Well, not even panics per se, but some thing like the VBI is broken, or the volume control doesn't work, IR blaster is works for this version, or something else stupid that is very visible to the end user.

Quoted 6 lines

I also use the driver version for troubleshooting problem with users. I roughly know what wasn't working in what version of the cx18 and ivtv drivers. If the end user can tell me the driver version (using v4l2-ctl --log-status) along with his symptoms, it makes my life easier. Being able to efficiently help the end user is a win for both me and the end user.

If you add it to MODULE_VERSION, you can get the version with:

$ modinfo -F version vivi
0.8.1

Mauro.

#26 lore raw

Re: [RFC] Don't use linux/version.h anymore to indicate a per-driver version - Was: Re: [PATCH 03/37] Remove unneeded version.h includes from include/

Quoted 58 lines · Mauro Carvalho Chehab

Em 24-06-2011 18:04, Andy Walls escreveu:

Quoted 30 lines · Devin Heitmueller
Quoted 22 lines
Quoted 11 lines · Stefan Richter

If the "driver version" is in fact an ABI version, then the driver author should really increase it only when ABI behavior is changed (and only if the behavior change can only be communicated by version number --- e.g. addition of an ioctl is not among such reasons). And the author should commit behavior changing implementation and version number change in a single changeset.

And anybody who backmerges such an ABI behavior change into another kernel branch (stable, longterm, distro...) must backmerge the associated version number change too.

Quoted 8 lines

Of course sometimes people realize this only after the fact. Or driver authors don't have a clear understanding of ABI versioning to begin with. I am saying so because I had to learn it too; I certainly wasn't born with an instinct knowledge how to do it properly.

(Disclaimer: I have no stake in drivers/media/ ABIs. But I am involved in maintaining a userspace ABI elsewhere in drivers/firewire/, and one of the userspace libraries that use this ABI.)

Quoted 6 lines

Hi Stefan,

To be clear, I don't think anyone is actually proposing that the driver version number really be used as any form of formal "ABI versioning" scheme. In almost all cases, it's so the application can know to *not* do something is the driver is older than X.

Quoted 8 lines

MythTV, for example, used to use the driver version to work around old VBI bugs and MPEG encoder quirks that the older version of the driver may not have known how to handle:

https://github.com/MythTV/mythtv/blob/b98d3a98e3187000ae652df5ffebe2beb5221ba7/mythtv/libs/libmythtv/mpegrecorder.cpp#L335

But for newer versions, MythTV could avoid using its own odd hacks. The bleeding edge MythTV now has most of these removed.

Removing it is a good thing.

Quoted 9 lines
Quoted 4 lines

Really, this is all about applications being able to jam a hack into their code that translates to "don't call this ioctl() with some particular argument if it's driver W less than version X, because the driver had a bug that is likely to panic the guy's PC".

Well, not even panics per se, but some thing like the VBI is broken, or the volume control doesn't work, IR blaster is works for this version, or something else stupid that is very visible to the end user.

Quoted 6 lines

I also use the driver version for troubleshooting problem with users. I roughly know what wasn't working in what version of the cx18 and ivtv drivers. If the end user can tell me the driver version (using v4l2-ctl --log-status) along with his symptoms, it makes my life easier. Being able to efficiently help the end user is a win for both me and the end user.

Quoted 4 lines

If you add it to MODULE_VERSION, you can get the version with:

$ modinfo -F version vivi
0.8.1

Well, since you mention it....

http://git.linuxtv.org/media_tree.git?a=blob;f=drivers/media/video/cx18/cx18-driver.c;h=9e2f870f4258665ae6093c762f752d45147a8c98;hb=staging/for_v3.1#l252
http://git.linuxtv.org/media_tree.git?a=blob;f=drivers/media/video/ivtv/ivtv-driver.c;h=0fb75524484d909af4925c3c33c9f12cf6d6519e;hb=staging/for_v3.1#l280

However, since I often must ask for the output of v4l2-ctl --log-status, which already has the version number, I never need to ask the user to run /sbin/modinfo for the version.

Regards,
Andy

#27 lore raw

Re: [RFC] Don't use linux/version.h anymore to indicate a per-driver version - Was: Re: [PATCH 03/37] Remove unneeded version.h includes from include/

In reply to Devin Heitmueller
Quoted 5 lines · On Jun 24 Devin Heitmueller wrote:

Really, this is all about applications being able to jam a hack into their code that translates to "don't call this ioctl() with some particular argument if it's driver W less than version X, because the driver had a bug that is likely to panic the guy's PC". Sure, it's a crummy solution, but at this point it's the best that we have got.

The second best. The best that we have got is that the user runs a fixed kernel.

Anyway; if this is the only purpose that this interface version¹ serves, then Mauro's subsystem-centralized solution has the benefit that it eliminates mistakes due to oversight by individual driver authors. Especially because the kind of implementation behavior changes that are tracked by this type of version datum are sometimes just discovered or documented in hindsight. On the other hand, Mauro's solution is redundant to the uname(2) syscall.

¹) Yes, it is still an ABI version, nothing less. With all its backwards and forwards compatibility ramifications.

Signature · 7 lines
Stefan Richter
-=====-==-== -==- ==---
http://arcgraph.de/sr/
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
#28 lore raw

Re: [RFC] Don't use linux/version.h anymore to indicate a per-driver version - Was: Re: [PATCH 03/37] Remove unneeded version.h includes from include/

Em 24-06-2011 18:10, Stefan Richter escreveu:

Quoted 10 lines · On Jun 24 Devin Heitmueller wrote:
Quoted 5 lines

Really, this is all about applications being able to jam a hack into their code that translates to "don't call this ioctl() with some particular argument if it's driver W less than version X, because the driver had a bug that is likely to panic the guy's PC". Sure, it's a crummy solution, but at this point it's the best that we have got.

The second best. The best that we have got is that the user runs a fixed kernel.

Quoted 7 lines

Anyway; if this is the only purpose that this interface version¹ serves, then Mauro's subsystem-centralized solution has the benefit that it eliminates mistakes due to oversight by individual driver authors. Especially because the kind of implementation behavior changes that are tracked by this type of version datum are sometimes just discovered or documented in hindsight. On the other hand, Mauro's solution is redundant to the uname(2) syscall.

Yes. That's why my initial proposal were to add some value to it by not associating it with the kernel version, but with a number that will be incremented only if the V4L2 API changes.

Quoted 3 lines

¹) Yes, it is still an ABI version, nothing less. With all its backwards and forwards compatibility ramifications.

--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

#29 lore raw

Re: [RFC] Don't use linux/version.h anymore to indicate a per-driver version - Was: Re: [PATCH 03/37] Remove unneeded version.h includes from include/

In reply to Stefan Richter

Em 24-06-2011 15:34, Stefan Richter escreveu:

Quoted 34 lines · On Jun 24 Mauro Carvalho Chehab wrote:
Quoted 29 lines

Em 24-06-2011 10:54, Hans Verkuil escreveu:

Quoted 14 lines · On Friday, June 24, 2011 15:45:59 Devin Heitmueller wrote:
Quoted 7 lines

The versions are increased at the discretion of the driver maintainer, usually when there is some userland visible change in driver behavior.
I assure you the application developers don't *want* to rely on such
a mechanism, but there have definitely been cases in the past where there was no easy way to detect the behavior of the driver from userland.

Quoted 5 lines

It lets application developers work around things like violations of the V4L2 standard which get fixed in newer revisions of the driver. It provides them the ability to put a hack in their code that says "if (version < X) then this driver feature is broken and I shouldn't use it."

Quoted 4 lines

Indeed. Ideally we shouldn't need it. But reality is different.

What we have right now works and I see no compelling reason to change the behavior.

A per-driver version only works if the user is running a vanilla kernel without any stable patches applied.

I doubt that this covers the large amount of the users: they'll either use an stable patched kernel or a distribution-specific one. On both cases, the driver version is not associated with a bug fix, as the driver maintainers just take care of increasing the driver version once per each new kernel version (when they care enough).

Quoted 3 lines

Also, a git blame for the V4L2 drivers shows that only a few drivers have their version increased as changes are applied there. So, relying on cap->version has a minimal chance of working only with a few drivers, with vanilla *.0 kernels.

Quoted 6 lines

If the "driver version" is in fact an ABI version, then the driver author should really increase it only when ABI behavior is changed (and only if the behavior change can only be communicated by version number --- e.g. addition of an ioctl is not among such reasons). And the author should commit behavior changing implementation and version number change in a single changeset.

Yes, but "driver version" were never used as such. Several drivers got lots of updates, ABI change behavior (like the removal of V4L1 API), etc without having a single "driver version" increment. Other drivers increase it even on minor changes.

IMO, it makes no sense on keeping it, but removing this field would break userspace, as a few programs seem to use it.

Quoted 3 lines

And anybody who backmerges such an ABI behavior change into another kernel branch (stable, longterm, distro...) must backmerge the associated version number change too.

Yes, but, again, this doesn't happen. In general, the drivers that use it either increment the version number on a separate patch, or integrate it with one of the patches.

It is easy to take a look at ivtv, as it has a separate file with the version number:

$ git log --oneline drivers/media/video/ivtv/ivtv-version.h
4359e5b V4L/DVB: ivtv: Increment driver version due to firmware loading changes
c019f90 V4L/DVB (10965): ivtv: bump version
c58dc0b V4L/DVB (8633): ivtv: update ivtv version number
be303e1 V4L/DVB (7930): ivtv: bump version to 1.3.0.
fcbbf6f V4L/DVB (7759): ivtv: increase version number to 1.2.1
0170a48 V4L/DVB (6762): ivtv: update version number to 1.2
612570f V4L/DVB (6091): ivtv: header cleanup
f38a798 V4L/DVB (5909): ivtv: update version to 1.1 to mark ivtv-fb support
1a0adaf V4L/DVB (5345): ivtv driver for Conexant cx23416/cx23415 MPEG encoder/decoder

Looking at the details of the above commits, on several cases there's no explanation why the version was incremented, or why an userspace application should bother to have any special treatment for that version or for the previous one.

The date of the commits also don't help much:

Date:   Sat Jun 12 13:55:33 2010 -0300
Date:   Wed Mar 11 18:50:04 2009 -0300
Date:   Wed Sep 3 16:46:58 2008 -0300
Date:   Sat May 24 12:43:43 2008 -0300
Date:   Sat Apr 26 09:43:22 2008 -0300
Date:   Fri Dec 7 20:31:17 2007 -0300
Date:   Thu Aug 23 05:42:59 2007 -0300
Date:   Sun Jul 22 08:39:43 2007 -0300
Date:   Fri Apr 27 12:31:25 2007 -0300

Even when there seems to have a good reason for version bump, like on this example (from cx18 driver):

commit 9982be8

Author: Andy Walls <[email protected]>
Date:   Wed Apr 15 20:49:19 2009 -0300

V4L/DVB (11620): cx18: Increment version due to significant buffer handling changes

Version bump from 1.1.0 to 1.2.0

The commit message doesn't help to tell the application developer how version 1.1.0 is different than version 1.2.0.

Also, as this is on a separate commit, if the buffer changes were backported into a stable or distro kernel, the application will have no way to detect the differences.

On several cases, the version upgrade is simply due to the addition of a new type of support, like this one:

commit 437b775

Author: Andy Walls <[email protected]>
Date:   Sun Mar 27 00:43:30 2011 -0300

[media] cx18: Bump driver version, since a new class of HVR-1600 is properly supported

Make a user visible driver version change, for the inevitable user support questions about why newer model HVR-1600's do not work with (older versions of) the cx18 driver.

For things like that, it would be enough to simply increment MODULE_VERSION().

Quoted 8 lines

Of course sometimes people realize this only after the fact. Or driver authors don't have a clear understanding of ABI versioning to begin with. I am saying so because I had to learn it too; I certainly wasn't born with an instinct knowledge how to do it properly.

(Disclaimer: I have no stake in drivers/media/ ABIs. But I am involved in maintaining a userspace ABI elsewhere in drivers/firewire/, and one of the userspace libraries that use this ABI.)

Em 24-06-2011 15:48, Devin Heitmueller escreveu:

Quoted 4 lines

To be clear, I don't think anyone is actually proposing that the driver version number really be used as any form of formal "ABI versioning" scheme. In almost all cases, it's so the application can know to *not* do something is the driver is older than X.

As I've explained before, even that is wrong, as the version increment patch may not have been backported.

Quoted 7 lines

Given all the cases I've seen, it doesn't really hurt anything if the driver contains a fix from newer than X, aside from the fact that the application won't take advantage of whatever feature/functionality the fix made work. In other words, I think from a backport standpoint, it usually doesn't *hurt* anything if a fix is backported without the version being incremented, aside from applications not knowing that the feature/fix is present.

New features could also be backported without version increment. This happens from time to time at the enterprise distros, and on long duration stable releases.

Quoted 5 lines

Really, this is all about applications being able to jam a hack into their code that translates to "don't call this ioctl() with some particular argument if it's driver W less than version X, because the driver had a bug that is likely to panic the guy's PC". Sure, it's a crummy solution, but at this point it's the best that we have got.

Version number is not enough for that. When there are such panic/OOPS bugs, they are backported to -stable and to the distro kernels.

An application doing that will be removing a feature that is probably already fixed.

Mauro.

#30 lore raw

Re: [RFC] Don't use linux/version.h anymore to indicate a per-driver version - Was: Re: [PATCH 03/37] Remove unneeded version.h includes from include/

In reply to Devin Heitmueller

Em 24-06-2011 09:20, Devin Heitmueller escreveu:

Quoted 3 lines

Also, it screws up the ability for users to get fixes through the media_build tree (unless you are increasing the revision constantly with every merge you do).

Patches merged, and media_build modified in order to use the V4L2 stack version, instead of the kernel one.

So, while I'm using a 2.6.32 kernel:

$ uname -a
Linux pedra 2.6.32-131.0.15.el6.x86_64 #1 SMP Tue May 10 15:42:40 EDT 2011 x86_64 x86_64 x86_64 GNU/Linux

Driver reports version 3.0.0:

$ v4l2-ctl -D
Driver Info (not using libv4l2):
	Driver name   : vivi
	Card type     : vivi
	Bus info      : vivi-000
	Driver version: 3.0.0
	Capabilities  : 0x05000001
		Video Capture
		Read/Write
		Streaming

It may be a good idea to increment the extraver number to be, for example, 3.0.99 (or to just decrement 1 number), in order to reflect that this driver is not the vanilla 3.0.0, but, instead, a backported one, otherwise, it will report the version from the last git backport we merge at media_tree.git.

If we just subtract 1, we'll have (right now):

$ v4l2-ctl -D
Driver Info (not using libv4l2):
	Driver name   : vivi
	Card type     : vivi
	Bus info      : vivi-000
	Driver version: 2.255.255
	Capabilities  : 0x05000001
		Video Capture
		Read/Write
		Streaming

Which looks somewhat weird, but, after the 3.1 merge window, it will be 3.0.255, with would be nice. So, if we go this way, the better is to wait until 3.1-rc1 before applying it.

Comments?

PS.: The media_build is not optimized in the sense that a version increment will make it recompile everything. I'll likely fix it if it bothers me enough ;)

Thanks,
Mauro

#31 lore raw

PATCH 4/37 Remove unneeded version.h includes from fs/

In reply to Jesper Juhl

It was pointed out by 'make versioncheck' that some includes of linux/version.h were not needed in fs/ (fs/btrfs/ctree.h and fs/omfs/file.c).
This patch removes them.

---
 fs/btrfs/ctree.h |    1 -
 fs/omfs/file.c   |    1 -
 2 files changed, 0 insertions(+), 2 deletions(-)
fs/btrfs/ctree.h +0 -1
index 3006287..f30ac05 100644
@@ -19,7 +19,6 @@
 #ifndef __BTRFS_CTREE__
 #define __BTRFS_CTREE__
 
-#include <linux/version.h>
 #include <linux/mm.h>
 #include <linux/highmem.h>
 #include <linux/fs.h>
fs/omfs/file.c +0 -1
index d738a7e..2c6d952 100644
@@ -4,7 +4,6 @@
  * Released under GPL v2.
  */
 
-#include <linux/version.h>
 #include <linux/module.h>
 #include <linux/fs.h>
 #include <linux/buffer_head.h>
Signature · 15 lines
1.7.5.2


-- 
Jesper Juhl <[email protected]>       http://www.chaosbits.net/
Don't top-post http://www.catb.org/jargon/html/T/top-post.html
Plain text mails only, please.


------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure contains a 
definitive record of customers, application performance, security 
threats, fraudulent activity and more. Splunk takes this data and makes 
sense of it. Business sense. IT sense. Common sense.. 
http://p.sf.net/sfu/splunk-d2d-c1
maintainer Acked-by on v1 4/37
#32 lore raw

Re: [PATCH 04/37] Remove unneeded version.h includes from fs/

Quoted 6 lines · Jesper Juhl

It was pointed out by 'make versioncheck' that some includes of linux/version.h were not needed in fs/ (fs/btrfs/ctree.h and fs/omfs/file.c).
This patch removes them.

Thanks, omfs part was leftover cruft from its time out-of-tree.

FWIW,

Signature · 9 lines
Bob Copeland %% www.bobcopeland.com


------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure contains a 
definitive record of customers, application performance, security 
threats, fraudulent activity and more. Splunk takes this data and makes 
sense of it. Business sense. IT sense. Common sense.. 
http://p.sf.net/sfu/splunk-d2d-c1
#33 lore raw

PATCH 5/37 Remove unneeded version.h include from arch/x86/

In reply to Jesper Juhl

It was pointed out by 'make versioncheck' include of linux/version.h is not needed in arch/x86/mm/mmio-mod.c . This patch removes it.

---
 arch/x86/mm/mmio-mod.c |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)
arch/x86/mm/mmio-mod.c +0 -1
index 3adff7d..c83c3d0 100644
@@ -29,7 +29,6 @@
 #include <linux/slab.h>
 #include <linux/uaccess.h>
 #include <linux/io.h>
-#include <linux/version.h>
 #include <linux/kallsyms.h>
 #include <asm/pgtable.h>
 #include <linux/mmiotrace.h>
Signature · 7 lines
1.7.5.2


-- 
Jesper Juhl <[email protected]>       http://www.chaosbits.net/
Don't top-post http://www.catb.org/jargon/html/T/top-post.html
Plain text mails only, please.
#34 lore raw

PATCH 6/37 Remove unneeded version.h includes from arch/mips/

In reply to Jesper Juhl

It was pointed out by 'make versioncheck' that some includes of linux/version.h are not needed in arch/mips/.
This patch removes them.

---
 arch/mips/include/asm/mach-powertv/dma-coherence.h |    1 -
 arch/mips/lantiq/xway/ebu.c                        |    1 -
 arch/mips/lantiq/xway/pmu.c                        |    1 -
 3 files changed, 0 insertions(+), 3 deletions(-)
arch/mips/include/asm/mach-powertv/dma-coherence.h +0 -1
index a8e72cf..613baf1 100644
@@ -13,7 +13,6 @@
 #define __ASM_MACH_POWERTV_DMA_COHERENCE_H
 
 #include <linux/sched.h>
-#include <linux/version.h>
 #include <linux/device.h>
 #include <asm/mach-powertv/asic.h>
 
arch/mips/lantiq/xway/ebu.c +0 -1
index 66eb52f..033b318 100644
@@ -10,7 +10,6 @@
 
 #include <linux/kernel.h>
 #include <linux/module.h>
-#include <linux/version.h>
 #include <linux/ioport.h>
 
 #include <lantiq_soc.h>
arch/mips/lantiq/xway/pmu.c +0 -1
index 9d69f01e..39f0d26 100644
@@ -8,7 +8,6 @@
 
 #include <linux/kernel.h>
 #include <linux/module.h>
-#include <linux/version.h>
 #include <linux/ioport.h>
 
 #include <lantiq_soc.h>
Signature · 7 lines
1.7.5.2


-- 
Jesper Juhl <[email protected]>       http://www.chaosbits.net/
Don't top-post http://www.catb.org/jargon/html/T/top-post.html
Plain text mails only, please.
#35 lore raw

Re: [PATCH 06/37] Remove unneeded version.h includes from arch/mips/

Thanks, queued for 3.2.

Ralf

#36 lore raw

PATCH 7/37 Remove unneeded version.h includes from arch/arm/

In reply to Jesper Juhl

It was pointed out by 'make versioncheck' that some includes of linux/version.h are not needed in arch/arm/.
This patch removes them.

---
 arch/arm/mach-bcmring/irq.c   |    1 -
 arch/arm/mach-bcmring/timer.c |    1 -
 2 files changed, 0 insertions(+), 2 deletions(-)
arch/arm/mach-bcmring/irq.c +0 -1
index c48feaf..437fa68 100644
@@ -20,7 +20,6 @@
 #include <linux/stddef.h>
 #include <linux/list.h>
 #include <linux/timer.h>
-#include <linux/version.h>
 #include <linux/io.h>
 
 #include <mach/hardware.h>
arch/arm/mach-bcmring/timer.c +0 -1
index 2d415d2..af9c3d7 100644
@@ -12,7 +12,6 @@
 * consent.
 *****************************************************************************/
 
-#include <linux/version.h>
 #include <linux/types.h>
 #include <linux/module.h>
 #include <csp/tmrHw.h>
Signature · 7 lines
1.7.5.2


-- 
Jesper Juhl <[email protected]>       http://www.chaosbits.net/
Don't top-post http://www.catb.org/jargon/html/T/top-post.html
Plain text mails only, please.
Acked-by on v1 7/37
#37 lore raw

Re: [PATCH 07/37] Remove unneeded version.h includes from arch/arm/

Quoted 27 lines · Jesper Juhl

It was pointed out by 'make versioncheck' that some includes of linux/version.h are not needed in arch/arm/.
This patch removes them.

---
  arch/arm/mach-bcmring/irq.c   |    1 -
  arch/arm/mach-bcmring/timer.c |    1 -
  2 files changed, 0 insertions(+), 2 deletions(-)
arch/arm/mach-bcmring/irq.c +0 -1
index c48feaf..437fa68 100644
@@ -20,7 +20,6 @@
  #include<linux/stddef.h>
  #include<linux/list.h>
  #include<linux/timer.h>
-#include<linux/version.h>
  #include<linux/io.h>
 
  #include<mach/hardware.h>
arch/arm/mach-bcmring/timer.c +0 -0
index 2d415d2..af9c3d7 100644

arch/arm/mach-bcmring/timer.c line 17

Quoted 7 lines
arch/arm/mach-bcmring/timer.c +0 -1
@@ -12,7 +12,6 @@
  * consent.
  *****************************************************************************/
 
-#include<linux/version.h>
  #include<linux/types.h>
  #include<linux/module.h>
  #include<csp/tmrHw.h>
Acked-by on v1 7/37
#38 lore raw

RE: [PATCH 07/37] Remove unneeded version.h includes from arch/arm/

In reply to Jesper Juhl
Quoted 27 lines · Jesper Juhl

It was pointed out by 'make versioncheck' that some includes of linux/version.h are not needed in arch/arm/.
This patch removes them.

---
  arch/arm/mach-bcmring/irq.c   |    1 -
  arch/arm/mach-bcmring/timer.c |    1 -
  2 files changed, 0 insertions(+), 2 deletions(-)
arch/arm/mach-bcmring/irq.c +0 -1
index c48feaf..437fa68 100644
@@ -20,7 +20,6 @@
  #include<linux/stddef.h>
  #include<linux/list.h>
  #include<linux/timer.h>
-#include<linux/version.h>
  #include<linux/io.h>
 
  #include<mach/hardware.h>
arch/arm/mach-bcmring/timer.c +0 -0
index 2d415d2..af9c3d7 100644

arch/arm/mach-bcmring/timer.c line 17

Quoted 7 lines
arch/arm/mach-bcmring/timer.c +0 -1
@@ -12,7 +12,6 @@
  * consent.
  *****************************************************************************/
 
-#include<linux/version.h>
  #include<linux/types.h>
  #include<linux/module.h>
  #include<csp/tmrHw.h>
#39 lore raw

PATCH 8/37 Remove unneeded version.h includes from drivers/block/

In reply to Jesper Juhl

It was pointed out by 'make versioncheck' that some includes of linux/version.h are not needed in drivers/block/. This patch removes them.

---
 drivers/block/drbd/drbd_int.h      |    1 -
 drivers/block/xen-blkback/common.h |    1 -
 2 files changed, 0 insertions(+), 2 deletions(-)
drivers/block/drbd/drbd_int.h +0 -1
index ef2ceed..1c3194d 100644
@@ -28,7 +28,6 @@
 
 #include <linux/compiler.h>
 #include <linux/types.h>
-#include <linux/version.h>
 #include <linux/list.h>
 #include <linux/sched.h>
 #include <linux/bitops.h>
drivers/block/xen-blkback/common.h +0 -1
index 9e40b28..0d04c7f 100644
@@ -27,7 +27,6 @@
 #ifndef __XEN_BLKIF__BACKEND__COMMON_H__
 #define __XEN_BLKIF__BACKEND__COMMON_H__
 
-#include <linux/version.h>
 #include <linux/module.h>
 #include <linux/interrupt.h>
 #include <linux/slab.h>
Signature · 7 lines
1.7.5.2


-- 
Jesper Juhl <[email protected]>       http://www.chaosbits.net/
Don't top-post http://www.catb.org/jargon/html/T/top-post.html
Plain text mails only, please.
#40 lore raw

PATCH 9/37 Remove unneeded version.h includes from drivers/input/

In reply to Jesper Juhl

It was pointed out by 'make versioncheck' that some includes of linux/version.h are not needed in drivers/input/. This patch removes them.

---
 drivers/input/keyboard/adp5588-keys.c |    1 -
 drivers/input/keyboard/adp5589-keys.c |    1 -
 drivers/input/misc/bfin_rotary.c      |    1 -
 drivers/input/mouse/pxa930_trkball.c  |    1 -
 drivers/input/mouse/sentelic.c        |    1 -
 5 files changed, 0 insertions(+), 5 deletions(-)
drivers/input/keyboard/adp5588-keys.c +0 -1
index af45d27..7b404e5 100644
@@ -9,7 +9,6 @@
  */
 
 #include <linux/module.h>
-#include <linux/version.h>
 #include <linux/init.h>
 #include <linux/interrupt.h>
 #include <linux/irq.h>
drivers/input/keyboard/adp5589-keys.c +0 -1
index 6315986..c770826 100644
@@ -8,7 +8,6 @@
  */
 
 #include <linux/module.h>
-#include <linux/version.h>
 #include <linux/init.h>
 #include <linux/interrupt.h>
 #include <linux/irq.h>
drivers/input/misc/bfin_rotary.c +0 -1
index 4f72bdd..d00edc9 100644
@@ -6,7 +6,6 @@
  */
 
 #include <linux/module.h>
-#include <linux/version.h>
 #include <linux/init.h>
 #include <linux/interrupt.h>
 #include <linux/irq.h>
drivers/input/mouse/pxa930_trkball.c +0 -1
index 943cfec..6c5d84f 100644
@@ -12,7 +12,6 @@
 
 #include <linux/init.h>
 #include <linux/input.h>
-#include <linux/version.h>
 #include <linux/interrupt.h>
 #include <linux/module.h>
 #include <linux/platform_device.h>
drivers/input/mouse/sentelic.c +0 -1
index 1242775..2fc887a 100644
@@ -20,7 +20,6 @@
  */
 
 #include <linux/module.h>
-#include <linux/version.h>
 #include <linux/input.h>
 #include <linux/ctype.h>
 #include <linux/libps2.h>
Signature · 7 lines
1.7.5.2


-- 
Jesper Juhl <[email protected]>       http://www.chaosbits.net/
Don't top-post http://www.catb.org/jargon/html/T/top-post.html
Plain text mails only, please.
Acked-by on v1 9/37
#41 lore raw

Re: [PATCH 09/37] Remove unneeded version.h includes from drivers/input/

Quoted 3 lines · Jesper Juhl

 drivers/input/keyboard/adp5588-keys.c |    1 -
 drivers/input/keyboard/adp5589-keys.c |    1 -
 drivers/input/misc/bfin_rotary.c      |    1 -

-mike
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

maintainer Acked-by on v1 9/37
#42 lore raw

RE: [PATCH 09/37] Remove unneeded version.h includes from drivers/input/

In reply to Jesper Juhl

Jesper Juhl wrote on 2011-06-24:

Quoted 8 lines

It was pointed out by 'make versioncheck' that some includes of linux/version.h are not needed in drivers/input/. This patch removes them.

---
 drivers/input/keyboard/adp5588-keys.c |    1 -
 drivers/input/keyboard/adp5589-keys.c |    1 -

Greetings,
Michael

--
Analog Devices GmbH Wilhelm-Wagenfeld-Str. 6 80807 Muenchen
Sitz der Gesellschaft: Muenchen; Registergericht: Muenchen HRB 40368; Geschaeftsfuehrer:Dr.Carsten Suckrow, Thomas Wessel, William A. Martin, Margaret Seif

maintainer Applied
#43 lore raw

Re: [PATCH 09/37] Remove unneeded version.h includes from drivers/input/

In reply to Jesper Juhl
Quoted 5 lines · Jesper Juhl

It was pointed out by 'make versioncheck' that some includes of linux/version.h are not needed in drivers/input/. This patch removes them.

Applied, thanks Jesper.

Signature · 1 line
Dmitry
#44 lore raw

PATCH 10/37 Remove unneeded version.h includes from drivers/media/dvb/

In reply to Jesper Juhl

It was pointed out by 'make versioncheck' that some includes of linux/version.h are not needed in drivers/media/dvb/. This patch removes them.

---
 drivers/media/dvb/frontends/drxd_hard.c |    1 -
 drivers/media/dvb/siano/smscoreapi.h    |    1 -
 2 files changed, 0 insertions(+), 2 deletions(-)
drivers/media/dvb/frontends/drxd_hard.c +0 -1
index ea4c1c3..f132e49 100644
@@ -28,7 +28,6 @@
 #include <linux/delay.h>
 #include <linux/firmware.h>
 #include <linux/i2c.h>
-#include <linux/version.h>
 #include <asm/div64.h>
 
 #include "dvb_frontend.h"
drivers/media/dvb/siano/smscoreapi.h +0 -1
index 8ecadec..c592ae0 100644
@@ -22,7 +22,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #ifndef __SMS_CORE_API_H__
 #define __SMS_CORE_API_H__
 
-#include <linux/version.h>
 #include <linux/device.h>
 #include <linux/list.h>
 #include <linux/mm.h>
Signature · 7 lines
1.7.5.2


-- 
Jesper Juhl <[email protected]>       http://www.chaosbits.net/
Don't top-post http://www.catb.org/jargon/html/T/top-post.html
Plain text mails only, please.
#45 lore raw

PATCH 11/37 Remove unneeded version.h includes (and add where needed) for drivers/media/radio/

In reply to Jesper Juhl

It was pointed out by 'make versioncheck' that linux/version.h was not always being included where needed and sometimes included needlessly in drivers/media/radio/.
This patch fixes up the includes.

---
 drivers/media/radio/si470x/radio-si470x-i2c.c |    1 +
 drivers/media/radio/si470x/radio-si470x-usb.c |    1 +
 drivers/media/radio/si470x/radio-si470x.h     |    1 -
 3 files changed, 2 insertions(+), 1 deletions(-)
drivers/media/radio/si470x/radio-si470x-i2c.c +1 -0
index a2a6777..2c7700f 100644
@@ -23,6 +23,7 @@
 
 
 /* driver definitions */
+#include <linux/version.h>
 #define DRIVER_AUTHOR "Joonyoung Shim <[email protected]>";
 #define DRIVER_KERNEL_VERSION KERNEL_VERSION(1, 0, 1)
 #define DRIVER_CARD "Silicon Labs Si470x FM Radio Receiver"
drivers/media/radio/si470x/radio-si470x-usb.c +1 -0
index 392e84f..653384d 100644
@@ -28,6 +28,7 @@
 
 
 /* driver definitions */
+#include <linux/version.h>
 #define DRIVER_AUTHOR "Tobias Lorenz <[email protected]>"
 #define DRIVER_KERNEL_VERSION KERNEL_VERSION(1, 0, 10)
 #define DRIVER_CARD "Silicon Labs Si470x FM Radio Receiver"
drivers/media/radio/si470x/radio-si470x.h +0 -1
index 68da001..f300a55 100644
@@ -32,7 +32,6 @@
 #include <linux/sched.h>
 #include <linux/slab.h>
 #include <linux/input.h>
-#include <linux/version.h>
 #include <linux/videodev2.h>
 #include <linux/mutex.h>
 #include <media/v4l2-common.h>
Signature · 7 lines
1.7.5.2


-- 
Jesper Juhl <[email protected]>       http://www.chaosbits.net/
Don't top-post http://www.catb.org/jargon/html/T/top-post.html
Plain text mails only, please.
#46 lore raw

PATCH 12/37 Remove unneeded version.h includes (and add where needed) for drivers/media/video/

In reply to Jesper Juhl

It was pointed out by 'make versioncheck' that linux/version.h was not always being included where needed and sometimes included needlessly in drivers/media/video/.
This patch fixes up the includes.

---
 drivers/media/video/cpia2/cpia2.h            |    1 -
 drivers/media/video/cx18/cx18-driver.h       |    1 -
 drivers/media/video/cx18/cx18-version.h      |    2 ++
 drivers/media/video/cx231xx/cx231xx.h        |    1 +
 drivers/media/video/cx23885/altera-ci.c      |    1 -
 drivers/media/video/davinci/vpif_capture.c   |    1 -
 drivers/media/video/davinci/vpif_capture.h   |    1 -
 drivers/media/video/davinci/vpif_display.c   |    1 -
 drivers/media/video/davinci/vpif_display.h   |    1 -
 drivers/media/video/et61x251/et61x251.h      |    1 -
 drivers/media/video/et61x251/et61x251_core.c |    1 +
 drivers/media/video/gspca/gl860/gl860.h      |    1 -
 drivers/media/video/hdpvr/hdpvr-video.c      |    2 --
 drivers/media/video/hdpvr/hdpvr.h            |    2 +-
 drivers/media/video/ivtv/ivtv-driver.h       |    1 -
 drivers/media/video/ivtv/ivtv-version.h      |    2 ++
 drivers/media/video/m5mols/m5mols_capture.c  |    2 --
 drivers/media/video/m5mols/m5mols_core.c     |    1 -
 drivers/media/video/pwc/pwc-ioctl.h          |    1 -
 drivers/media/video/saa7164/saa7164.h        |    1 -
 drivers/media/video/sn9c102/sn9c102.h        |    1 -
 drivers/media/video/sn9c102/sn9c102_core.c   |    1 +
 drivers/media/video/timblogiw.c              |    1 -
 drivers/media/video/tlg2300/pd-common.h      |    1 -
 drivers/media/video/tlg2300/pd-video.c       |    2 +-
 drivers/media/video/uvc/uvc_v4l2.c           |    1 -
 drivers/media/video/uvc/uvcvideo.h           |    1 +
 27 files changed, 10 insertions(+), 23 deletions(-)
drivers/media/video/cpia2/cpia2.h +0 -1
index 6d6d184..5e1faa2 100644
@@ -31,7 +31,6 @@
 #ifndef __CPIA2_H__
 #define __CPIA2_H__
 
-#include <linux/version.h>
 #include <linux/videodev2.h>
 #include <media/v4l2-common.h>
 #include <linux/usb.h>
drivers/media/video/cx18/cx18-driver.h +0 -1
index 0864272..1834207 100644
@@ -25,7 +25,6 @@
 #ifndef CX18_DRIVER_H
 #define CX18_DRIVER_H
 
-#include <linux/version.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/init.h>
drivers/media/video/cx18/cx18-version.h +2 -0
index cd189b6..bbbd503 100644
@@ -22,6 +22,8 @@
 #ifndef CX18_VERSION_H
 #define CX18_VERSION_H
 
+#include <linux/version.h>
+
 #define CX18_DRIVER_NAME "cx18"
 #define CX18_DRIVER_VERSION_MAJOR 1
 #define CX18_DRIVER_VERSION_MINOR 5
drivers/media/video/cx231xx/cx231xx.h +1 -0
index 46dd840..c42b7ff 100644
@@ -22,6 +22,7 @@
 #ifndef _CX231XX_H
 #define _CX231XX_H
 
+#include <linux/version.h>
 #include <linux/videodev2.h>
 #include <linux/types.h>
 #include <linux/ioctl.h>
drivers/media/video/cx23885/altera-ci.c +0 -1
index 678539b..1fa8927 100644
@@ -52,7 +52,6 @@
  * |  DATA7|  DATA6|  DATA5|  DATA4|  DATA3|  DATA2|  DATA1|  DATA0|
  * +-------+-------+-------+-------+-------+-------+-------+-------+
  */
-#include <linux/version.h>
 #include <media/videobuf-dma-sg.h>
 #include <media/videobuf-dvb.h>
 #include "altera-ci.h"
drivers/media/video/davinci/vpif_capture.c +0 -1
index d93ad74..dbdd1eb 100644
@@ -33,7 +33,6 @@
 #include <linux/i2c.h>
 #include <linux/platform_device.h>
 #include <linux/io.h>
-#include <linux/version.h>
 #include <linux/slab.h>
 #include <media/v4l2-device.h>
 #include <media/v4l2-ioctl.h>
drivers/media/video/davinci/vpif_capture.h +0 -1
index 7a4196d..97e7fd5 100644
@@ -23,7 +23,6 @@
 
 /* Header files */
 #include <linux/videodev2.h>
-#include <linux/version.h>
 #include <media/v4l2-common.h>
 #include <media/v4l2-device.h>
 #include <media/videobuf-core.h>
drivers/media/video/davinci/vpif_display.c +0 -1
index cdf659a..66b1631 100644
@@ -29,7 +29,6 @@
 #include <linux/i2c.h>
 #include <linux/platform_device.h>
 #include <linux/io.h>
-#include <linux/version.h>
 #include <linux/slab.h>
 
 #include <asm/irq.h>
drivers/media/video/davinci/vpif_display.h +0 -1
index b53aaa8..049a42c 100644
@@ -18,7 +18,6 @@
 
 /* Header files */
 #include <linux/videodev2.h>
-#include <linux/version.h>
 #include <media/v4l2-common.h>
 #include <media/v4l2-device.h>
 #include <media/videobuf-core.h>
drivers/media/video/et61x251/et61x251.h +0 -1
index bf66189..14bb907 100644
@@ -21,7 +21,6 @@
 #ifndef _ET61X251_H_
 #define _ET61X251_H_
 
-#include <linux/version.h>
 #include <linux/usb.h>
 #include <linux/videodev2.h>
 #include <media/v4l2-common.h>
drivers/media/video/et61x251/et61x251_core.c +1 -0
index a982750..3722711 100644
@@ -34,6 +34,7 @@
 #include <linux/mm.h>
 #include <linux/vmalloc.h>
 #include <linux/page-flags.h>
+#include <linux/version.h>
 #include <media/v4l2-ioctl.h>
 #include <asm/byteorder.h>
 #include <asm/page.h>
drivers/media/video/gspca/gl860/gl860.h +0 -1
index 49ad4ac..0330a02 100644
@@ -18,7 +18,6 @@
  */
 #ifndef GL860_DEV_H
 #define GL860_DEV_H
-#include <linux/version.h>
 
 #include "gspca.h"
 
drivers/media/video/hdpvr/hdpvr-video.c +0 -2
index 514aea7..79b89a1 100644
@@ -17,9 +17,7 @@
 #include <linux/uaccess.h>
 #include <linux/usb.h>
 #include <linux/mutex.h>
-#include <linux/version.h>
 #include <linux/workqueue.h>
-
 #include <linux/videodev2.h>
 #include <media/v4l2-dev.h>
 #include <media/v4l2-common.h>
drivers/media/video/hdpvr/hdpvr.h +1 -1
index 072f23c..e74ba50 100644
@@ -14,7 +14,7 @@
 #include <linux/mutex.h>
 #include <linux/workqueue.h>
 #include <linux/videodev2.h>
-
+#include <linux/version.h>
 #include <media/v4l2-device.h>
 #include <media/ir-kbd-i2c.h>
 
drivers/media/video/ivtv/ivtv-driver.h +0 -1
index 84bdf0f..8f9cc17 100644
@@ -36,7 +36,6 @@
  *                using information provided by Jiun-Kuei Jung @ AVerMedia.
  */
 
-#include <linux/version.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/delay.h>
drivers/media/video/ivtv/ivtv-version.h +2 -0
index b67a404..3767237 100644
@@ -20,6 +20,8 @@
 #ifndef IVTV_VERSION_H
 #define IVTV_VERSION_H
 
+#include <linux/version.h>
+
 #define IVTV_DRIVER_NAME "ivtv"
 #define IVTV_DRIVER_VERSION_MAJOR 1
 #define IVTV_DRIVER_VERSION_MINOR 4
drivers/media/video/m5mols/m5mols_capture.c +0 -2
index d71a390..bf704cb 100644
@@ -18,11 +18,9 @@
 #include <linux/irq.h>
 #include <linux/interrupt.h>
 #include <linux/delay.h>
-#include <linux/version.h>
 #include <linux/gpio.h>
 #include <linux/regulator/consumer.h>
 #include <linux/videodev2.h>
-#include <linux/version.h>
 #include <media/v4l2-ctrls.h>
 #include <media/v4l2-device.h>
 #include <media/v4l2-subdev.h>
drivers/media/video/m5mols/m5mols_core.c +0 -1
index 76eac26..05d086e 100644
@@ -18,7 +18,6 @@
 #include <linux/irq.h>
 #include <linux/interrupt.h>
 #include <linux/delay.h>
-#include <linux/version.h>
 #include <linux/gpio.h>
 #include <linux/regulator/consumer.h>
 #include <linux/videodev2.h>
drivers/media/video/pwc/pwc-ioctl.h +0 -1
index 8c0cae7..b74fea0 100644
@@ -52,7 +52,6 @@
  */
 
 #include <linux/types.h>
-#include <linux/version.h>
 
  /* Enumeration of image sizes */
 #define PSZ_SQCIF	0x00
drivers/media/video/saa7164/saa7164.h +0 -1
index 16745d2..6678bf1 100644
@@ -48,7 +48,6 @@
 #include <linux/i2c.h>
 #include <linux/i2c-algo-bit.h>
 #include <linux/kdev_t.h>
-#include <linux/version.h>
 #include <linux/mutex.h>
 #include <linux/crc32.h>
 #include <linux/kthread.h>
drivers/media/video/sn9c102/sn9c102.h +0 -1
index cbfc444..22ea211 100644
@@ -21,7 +21,6 @@
 #ifndef _SN9C102_H_
 #define _SN9C102_H_
 
-#include <linux/version.h>
 #include <linux/usb.h>
 #include <linux/videodev2.h>
 #include <media/v4l2-common.h>
drivers/media/video/sn9c102/sn9c102_core.c +1 -0
index 0e07c49..8908501 100644
@@ -18,6 +18,7 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.               *
  ***************************************************************************/
 
+#include <linux/version.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
drivers/media/video/timblogiw.c +0 -1
index fc611eb..84cd1b6 100644
@@ -20,7 +20,6 @@
  * Timberdale FPGA LogiWin Video In
  */
 
-#include <linux/version.h>
 #include <linux/platform_device.h>
 #include <linux/slab.h>
 #include <linux/dmaengine.h>
drivers/media/video/tlg2300/pd-common.h +0 -1
index 46066bd..56564e6 100644
@@ -1,7 +1,6 @@
 #ifndef PD_COMMON_H
 #define PD_COMMON_H
 
-#include <linux/version.h>
 #include <linux/fs.h>
 #include <linux/wait.h>
 #include <linux/list.h>
drivers/media/video/tlg2300/pd-video.c +1 -1
index a794ae6..f243ec0 100644
@@ -5,7 +5,7 @@
 #include <linux/mm.h>
 #include <linux/sched.h>
 #include <linux/slab.h>
-
+#include <linux/version.h>
 #include <media/v4l2-ioctl.h>
 #include <media/v4l2-dev.h>
 
drivers/media/video/uvc/uvc_v4l2.c +0 -1
index 543a803..7fbd389 100644
@@ -12,7 +12,6 @@
  */
 
 #include <linux/kernel.h>
-#include <linux/version.h>
 #include <linux/list.h>
 #include <linux/module.h>
 #include <linux/slab.h>
drivers/media/video/uvc/uvcvideo.h +1 -0
index 20107fd..1c0fe5e 100644
@@ -101,6 +101,7 @@ struct uvc_xu_control {
 #include <linux/usb.h>
 #include <linux/usb/video.h>
 #include <linux/uvcvideo.h>
+#include <linux/version.h>
 #include <media/media-device.h>
 #include <media/v4l2-device.h>
 
Signature · 7 lines
1.7.5.2


-- 
Jesper Juhl <[email protected]>       http://www.chaosbits.net/
Don't top-post http://www.catb.org/jargon/html/T/top-post.html
Plain text mails only, please.
#47 lore raw

Re: [PATCH 12/37] Remove unneeded version.h includes (and add where needed) for drivers/media/video/

Hi Jesper,

Quoted 6 lines · On Friday 24 June 2011 00:17:01 Jesper Juhl wrote:

It was pointed out by 'make versioncheck' that linux/version.h was not always being included where needed and sometimes included needlessly in drivers/media/video/.
This patch fixes up the includes.

[snip]

drivers/media/video/uvc/uvc_v4l2.c line 17

Quoted 12 lines
(quoted diff) +0 -0

b/drivers/media/video/uvc/uvc_v4l2.c index 543a803..7fbd389 100644

drivers/media/video/uvc/uvc_v4l2.c +0 -1
@@ -12,7 +12,6 @@
  */
 
 #include <linux/kernel.h>
-#include <linux/version.h>
 #include <linux/list.h>
 #include <linux/module.h>
 #include <linux/slab.h>

uvc_v4l2.c uses KERNEL_VERSION explicitly. It includes linux/version.h through linux/media.h, but I'd rather keep the explicit include.

drivers/media/video/uvc/uvcvideo.h struct uvc_xu_control { · line 106

Quoted 11 lines
(quoted diff) +0 -0

b/drivers/media/video/uvc/uvcvideo.h index 20107fd..1c0fe5e 100644

drivers/media/video/uvc/uvcvideo.h +1 -0
@@ -101,6 +101,7 @@ struct uvc_xu_control {
 #include <linux/usb.h>
 #include <linux/usb/video.h>
 #include <linux/uvcvideo.h>
+#include <linux/version.h>
 #include <media/media-device.h>
 #include <media/v4l2-device.h>

This file doesn't include linux/version.h anymore in 3.0-rc4.

Signature · 3 lines
Regards,

Laurent Pinchart
#48 lore raw

PATCH 13/37 Remove unneeded version.h includes from drivers/net/

In reply to Jesper Juhl

It was pointed out by 'make versioncheck' that some includes of linux/version.h are not needed in drivers/net/.
This patch removes them.

---
 drivers/net/atl1c/atl1c.h              |    1 -
 drivers/net/atl1e/atl1e.h              |    1 -
 drivers/net/benet/be.h                 |    1 -
 drivers/net/bna/cna.h                  |    1 -
 drivers/net/caif/caif_serial.c         |    1 -
 drivers/net/caif/caif_shm_u5500.c      |    1 -
 drivers/net/caif/caif_spi.c            |    1 -
 drivers/net/caif/caif_spi_slave.c      |    1 -
 drivers/net/can/c_can/c_can.c          |    1 -
 drivers/net/can/c_can/c_can_platform.c |    1 -
 drivers/net/can/softing/softing_main.c |    1 -
 drivers/net/cxgb4vf/cxgb4vf_main.c     |    1 -
 drivers/net/cxgb4vf/t4vf_hw.c          |    1 -
 drivers/net/davinci_emac.c             |    1 -
 drivers/net/pptp.c                     |    1 -
 drivers/net/sfc/net_driver.h           |    1 -
 drivers/net/usb/cdc_ncm.c              |    1 -
 drivers/net/wireless/rtlwifi/wifi.h    |    1 -
 18 files changed, 0 insertions(+), 18 deletions(-)
drivers/net/atl1c/atl1c.h +0 -1
index 925929d..695398c 100644
@@ -22,7 +22,6 @@
 #ifndef _ATL1C_H_
 #define _ATL1C_H_
 
-#include <linux/version.h>
 #include <linux/init.h>
 #include <linux/types.h>
 #include <linux/errno.h>
drivers/net/atl1e/atl1e.h +0 -1
index 490d3b3..3861949 100644
@@ -23,7 +23,6 @@
 #ifndef _ATL1E_H_
 #define _ATL1E_H_
 
-#include <linux/version.h>
 #include <linux/init.h>
 #include <linux/types.h>
 #include <linux/errno.h>
drivers/net/benet/be.h +0 -1
index a7db870..66ae5b5 100644
@@ -20,7 +20,6 @@
 
 #include <linux/pci.h>
 #include <linux/etherdevice.h>
-#include <linux/version.h>
 #include <linux/delay.h>
 #include <net/tcp.h>
 #include <net/ip.h>
drivers/net/bna/cna.h +0 -1
index bbd39dc..8ee9e38 100644
@@ -19,7 +19,6 @@
 #ifndef __CNA_H__
 #define __CNA_H__
 
-#include <linux/version.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
 #include <linux/pci.h>
drivers/net/caif/caif_serial.c +0 -1
index 3df0c0f..175e134 100644
@@ -5,7 +5,6 @@
  */
 
 #include <linux/init.h>
-#include <linux/version.h>
 #include <linux/module.h>
 #include <linux/device.h>
 #include <linux/types.h>
drivers/net/caif/caif_shm_u5500.c +0 -1
index 5f771ab..89d76b7 100644
@@ -7,7 +7,6 @@
 
 #define pr_fmt(fmt) KBUILD_MODNAME ":" fmt
 
-#include <linux/version.h>
 #include <linux/init.h>
 #include <linux/module.h>
 #include <linux/netdevice.h>
drivers/net/caif/caif_spi.c +0 -1
index 57e6393..0f8defc 100644
@@ -5,7 +5,6 @@
  * License terms: GNU General Public License (GPL) version 2.
  */
 
-#include <linux/version.h>
 #include <linux/init.h>
 #include <linux/module.h>
 #include <linux/device.h>
drivers/net/caif/caif_spi_slave.c +0 -1
index b009e03..e139e13 100644
@@ -4,7 +4,6 @@
  * Author:  Daniel Martensson / [email protected]
  * License terms: GNU General Public License (GPL) version 2.
  */
-#include <linux/version.h>
 #include <linux/init.h>
 #include <linux/module.h>
 #include <linux/device.h>
drivers/net/can/c_can/c_can.c +0 -1
index 7e5cc0b..80adc83 100644
@@ -26,7 +26,6 @@
  */
 
 #include <linux/kernel.h>
-#include <linux/version.h>
 #include <linux/module.h>
 #include <linux/interrupt.h>
 #include <linux/delay.h>
drivers/net/can/c_can/c_can_platform.c +0 -1
index cc90824..0e300cf 100644
@@ -20,7 +20,6 @@
  */
 
 #include <linux/kernel.h>
-#include <linux/version.h>
 #include <linux/module.h>
 #include <linux/interrupt.h>
 #include <linux/delay.h>
drivers/net/can/softing/softing_main.c +0 -1
index 60a49e5..849e4a0 100644
@@ -17,7 +17,6 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  */
 
-#include <linux/version.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/interrupt.h>
drivers/net/cxgb4vf/cxgb4vf_main.c +0 -1
index e71c08e..8a6f891 100644
@@ -33,7 +33,6 @@
  * SOFTWARE.
  */
 
-#include <linux/version.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/init.h>
drivers/net/cxgb4vf/t4vf_hw.c +0 -1
index 192db22..fe3fd3d 100644
@@ -33,7 +33,6 @@
  * SOFTWARE.
  */
 
-#include <linux/version.h>
 #include <linux/pci.h>
 
 #include "t4vf_common.h"
drivers/net/davinci_emac.c +0 -1
index dcc4a17..a8adf0c 100644
@@ -48,7 +48,6 @@
 #include <linux/highmem.h>
 #include <linux/proc_fs.h>
 #include <linux/ctype.h>
-#include <linux/version.h>
 #include <linux/spinlock.h>
 #include <linux/dma-mapping.h>
 #include <linux/clk.h>
drivers/net/pptp.c +0 -1
index 1286fe2..eae542a 100644
@@ -30,7 +30,6 @@
 #include <linux/ip.h>
 #include <linux/netfilter.h>
 #include <linux/netfilter_ipv4.h>
-#include <linux/version.h>
 #include <linux/rcupdate.h>
 #include <linux/spinlock.h>
 
drivers/net/sfc/net_driver.h +0 -1
index e8d5f03..1affbf4 100644
@@ -17,7 +17,6 @@
 #define DEBUG
 #endif
 
-#include <linux/version.h>
 #include <linux/netdevice.h>
 #include <linux/etherdevice.h>
 #include <linux/ethtool.h>
drivers/net/usb/cdc_ncm.c +0 -1
index f33ca6a..fd622a6 100644
@@ -47,7 +47,6 @@
 #include <linux/mii.h>
 #include <linux/crc32.h>
 #include <linux/usb.h>
-#include <linux/version.h>
 #include <linux/timer.h>
 #include <linux/spinlock.h>
 #include <linux/atomic.h>
drivers/net/wireless/rtlwifi/wifi.h +0 -1
index 693395e..dd85110 100644
@@ -32,7 +32,6 @@
 
 #include <linux/sched.h>
 #include <linux/firmware.h>
-#include <linux/version.h>
 #include <linux/etherdevice.h>
 #include <linux/vmalloc.h>
 #include <linux/usb.h>
Signature · 7 lines
1.7.5.2


-- 
Jesper Juhl <[email protected]>       http://www.chaosbits.net/
Don't top-post http://www.catb.org/jargon/html/T/top-post.html
Plain text mails only, please.
maintainer Applied
#49 lore raw

Re: [PATCH 13/37] Remove unneeded version.h includes from drivers/net/

From: Jesper Juhl <[email protected]>
Date: Fri, 24 Jun 2011 00:21:10 +0200 (CEST)

Quoted 5 lines

It was pointed out by 'make versioncheck' that some includes of linux/version.h are not needed in drivers/net/.
This patch removes them.

Applied, thanks.

#50 lore raw

PATCH 14/37 Remove unneeded version.h includes from drivers/scsi/

In reply to Jesper Juhl

It was pointed out by 'make versioncheck' that some includes of linux/version.h are not needed in drivers/scsi/.
This patch removes them.

---
 drivers/scsi/aacraid/src.c            |    1 -
 drivers/scsi/bfa/bfad_drv.h           |    1 -
 drivers/scsi/cxgbi/cxgb3i/cxgb3i.c    |    1 -
 drivers/scsi/cxgbi/cxgb4i/cxgb4i.c    |    1 -
 drivers/scsi/fcoe/fcoe.c              |    1 -
 drivers/scsi/mpt2sas/mpt2sas_base.c   |    1 -
 drivers/scsi/mpt2sas/mpt2sas_config.c |    1 -
 drivers/scsi/mpt2sas/mpt2sas_ctl.c    |    1 -
 drivers/scsi/mpt2sas/mpt2sas_scsih.c  |    1 -
 drivers/scsi/mvsas/mv_sas.h           |    1 -
 drivers/scsi/pmcraid.c                |    1 -
 drivers/scsi/pmcraid.h                |    1 -
 12 files changed, 0 insertions(+), 12 deletions(-)
drivers/scsi/aacraid/src.c +0 -1
index c204946..957595a 100644
@@ -37,7 +37,6 @@
 #include <linux/slab.h>
 #include <linux/blkdev.h>
 #include <linux/delay.h>
-#include <linux/version.h>
 #include <linux/completion.h>
 #include <linux/time.h>
 #include <linux/interrupt.h>
drivers/scsi/bfa/bfad_drv.h +0 -1
index 7f9ea90..bcba182 100644
@@ -27,7 +27,6 @@
 #define __BFAD_DRV_H__
 
 #include <linux/types.h>
-#include <linux/version.h>
 #include <linux/pci.h>
 #include <linux/dma-mapping.h>
 #include <linux/idr.h>
drivers/scsi/cxgbi/cxgb3i/cxgb3i.c +0 -1
index fc2cdb6..93f9bb09 100644
@@ -14,7 +14,6 @@
 
 #define pr_fmt(fmt) KBUILD_MODNAME ":%s: " fmt, __func__
 
-#include <linux/version.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <scsi/scsi_host.h>
drivers/scsi/cxgbi/cxgb4i/cxgb4i.c +0 -1
index f3a4cd7..8323c7b 100644
@@ -13,7 +13,6 @@
 
 #define pr_fmt(fmt) KBUILD_MODNAME ":%s: " fmt, __func__
 
-#include <linux/version.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <scsi/scsi_host.h>
drivers/scsi/fcoe/fcoe.c +0 -1
index 155d7b9..73e5457 100644
@@ -18,7 +18,6 @@
  */
 
 #include <linux/module.h>
-#include <linux/version.h>
 #include <linux/spinlock.h>
 #include <linux/netdevice.h>
 #include <linux/etherdevice.h>
drivers/scsi/mpt2sas/mpt2sas_base.c +0 -1
index efa0255..f89d389 100644
@@ -42,7 +42,6 @@
  * USA.
  */
 
-#include <linux/version.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/errno.h>
drivers/scsi/mpt2sas/mpt2sas_config.c +0 -1
index 6861244..2b11010 100644
@@ -41,7 +41,6 @@
  * USA.
  */
 
-#include <linux/version.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
drivers/scsi/mpt2sas/mpt2sas_ctl.c +0 -1
index 437c2d9..c98dbc6 100644
@@ -42,7 +42,6 @@
  * USA.
  */
 
-#include <linux/version.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/errno.h>
drivers/scsi/mpt2sas/mpt2sas_scsih.c +0 -1
index a7dbc68..28e3f56 100644
@@ -41,7 +41,6 @@
  * USA.
  */
 
-#include <linux/version.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
drivers/scsi/mvsas/mv_sas.h +0 -1
index 1367d8b..d6fd740 100644
@@ -43,7 +43,6 @@
 #include <scsi/scsi.h>
 #include <scsi/scsi_tcq.h>
 #include <scsi/sas_ata.h>
-#include <linux/version.h>
 #include "mv_defs.h"
 
 #define DRV_NAME		"mvsas"
drivers/scsi/pmcraid.c +0 -1
index fca6a89..ee161c6 100644
@@ -39,7 +39,6 @@
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/hdreg.h>
-#include <linux/version.h>
 #include <linux/io.h>
 #include <linux/slab.h>
 #include <asm/irq.h>
drivers/scsi/pmcraid.h +0 -1
index f920baf..ca496c7 100644
@@ -24,7 +24,6 @@
 #ifndef _PMCRAID_H
 #define _PMCRAID_H
 
-#include <linux/version.h>
 #include <linux/types.h>
 #include <linux/completion.h>
 #include <linux/list.h>
Signature · 7 lines
1.7.5.2


-- 
Jesper Juhl <[email protected]>       http://www.chaosbits.net/
Don't top-post http://www.catb.org/jargon/html/T/top-post.html
Plain text mails only, please.
#51 lore raw

PATCH 15/37 Remove unneeded version.h includes from drivers/target/

In reply to Jesper Juhl

It was pointed out by 'make versioncheck' that some includes of linux/version.h are not needed in drivers/target/. This patch removes them.

---
 drivers/target/target_core_alua.c            |    1 -
 drivers/target/target_core_configfs.c        |    1 -
 drivers/target/target_core_fabric_configfs.c |    1 -
 drivers/target/target_core_file.c            |    1 -
 drivers/target/target_core_iblock.c          |    1 -
 drivers/target/target_core_pr.c              |    1 -
 drivers/target/target_core_pscsi.c           |    1 -
 drivers/target/target_core_rd.c              |    1 -
 drivers/target/target_core_stat.c            |    1 -
 drivers/target/target_core_tmr.c             |    1 -
 drivers/target/target_core_transport.c       |    1 -
 drivers/target/target_core_ua.c              |    1 -
 drivers/target/tcm_fc/tfc_cmd.c              |    1 -
 drivers/target/tcm_fc/tfc_conf.c             |    1 -
 drivers/target/tcm_fc/tfc_io.c               |    1 -
 drivers/target/tcm_fc/tfc_sess.c             |    1 -
 16 files changed, 0 insertions(+), 16 deletions(-)
drivers/target/target_core_alua.c +0 -1
index 47abb42..5c5b85a 100644
@@ -24,7 +24,6 @@
  *
  ******************************************************************************/
 
-#include <linux/version.h>
 #include <linux/slab.h>
 #include <linux/spinlock.h>
 #include <linux/configfs.h>
drivers/target/target_core_configfs.c +0 -1
index ee6fad9..c02d4ec 100644
@@ -23,7 +23,6 @@
 
 #include <linux/module.h>
 #include <linux/moduleparam.h>
-#include <linux/version.h>
 #include <generated/utsrelease.h>
 #include <linux/utsname.h>
 #include <linux/init.h>
drivers/target/target_core_fabric_configfs.c +0 -1
index 07ab5a3..2f6b7f9 100644
@@ -22,7 +22,6 @@
 
 #include <linux/module.h>
 #include <linux/moduleparam.h>
-#include <linux/version.h>
 #include <generated/utsrelease.h>
 #include <linux/utsname.h>
 #include <linux/init.h>
drivers/target/target_core_file.c +0 -1
index 150c430..dd6b96e 100644
@@ -26,7 +26,6 @@
  *
  ******************************************************************************/
 
-#include <linux/version.h>
 #include <linux/string.h>
 #include <linux/parser.h>
 #include <linux/timer.h>
drivers/target/target_core_iblock.c +0 -1
index 8663900..32c372b 100644
@@ -27,7 +27,6 @@
  *
  ******************************************************************************/
 
-#include <linux/version.h>
 #include <linux/string.h>
 #include <linux/parser.h>
 #include <linux/timer.h>
drivers/target/target_core_pr.c +0 -1
index a79f518..98cf0e1 100644
@@ -25,7 +25,6 @@
  *
  ******************************************************************************/
 
-#include <linux/version.h>
 #include <linux/slab.h>
 #include <linux/spinlock.h>
 #include <linux/list.h>
drivers/target/target_core_pscsi.c +0 -1
index 331d423..79f35e4 100644
@@ -26,7 +26,6 @@
  *
  ******************************************************************************/
 
-#include <linux/version.h>
 #include <linux/string.h>
 #include <linux/parser.h>
 #include <linux/timer.h>
drivers/target/target_core_rd.c +0 -1
index 7837dd3..adbda89 100644
@@ -27,7 +27,6 @@
  *
  ******************************************************************************/
 
-#include <linux/version.h>
 #include <linux/string.h>
 #include <linux/parser.h>
 #include <linux/timer.h>
drivers/target/target_core_stat.c +0 -1
index 5e3a067..889c64e 100644
@@ -32,7 +32,6 @@
 #include <linux/delay.h>
 #include <linux/timer.h>
 #include <linux/string.h>
-#include <linux/version.h>
 #include <generated/utsrelease.h>
 #include <linux/utsname.h>
 #include <linux/proc_fs.h>
drivers/target/target_core_tmr.c +0 -1
index 59b8b9c..c1ab4e0 100644
@@ -24,7 +24,6 @@
  *
  ******************************************************************************/
 
-#include <linux/version.h>
 #include <linux/slab.h>
 #include <linux/spinlock.h>
 #include <linux/list.h>
drivers/target/target_core_transport.c +0 -1
index 4dafeb8..d947309 100644
@@ -26,7 +26,6 @@
  *
  ******************************************************************************/
 
-#include <linux/version.h>
 #include <linux/net.h>
 #include <linux/delay.h>
 #include <linux/string.h>
drivers/target/target_core_ua.c +0 -1
index df35517..d8434b4 100644
@@ -24,7 +24,6 @@
  *
  ******************************************************************************/
 
-#include <linux/version.h>
 #include <linux/slab.h>
 #include <linux/spinlock.h>
 #include <scsi/scsi.h>
drivers/target/tcm_fc/tfc_cmd.c +0 -1
index c056a11..580976b 100644
@@ -19,7 +19,6 @@
 
 #include <linux/module.h>
 #include <linux/moduleparam.h>
-#include <linux/version.h>
 #include <generated/utsrelease.h>
 #include <linux/utsname.h>
 #include <linux/init.h>
drivers/target/tcm_fc/tfc_conf.c +0 -1
index 84e868c..fa3c86a 100644
@@ -23,7 +23,6 @@
 
 #include <linux/module.h>
 #include <linux/moduleparam.h>
-#include <linux/version.h>
 #include <generated/utsrelease.h>
 #include <linux/utsname.h>
 #include <linux/init.h>
drivers/target/tcm_fc/tfc_io.c +0 -1
index 4c3c0ef..739f9fc 100644
@@ -28,7 +28,6 @@
 
 #include <linux/module.h>
 #include <linux/moduleparam.h>
-#include <linux/version.h>
 #include <generated/utsrelease.h>
 #include <linux/utsname.h>
 #include <linux/init.h>
drivers/target/tcm_fc/tfc_sess.c +0 -1
index a3bd57f..f09a6a4 100644
@@ -19,7 +19,6 @@
 
 #include <linux/module.h>
 #include <linux/moduleparam.h>
-#include <linux/version.h>
 #include <generated/utsrelease.h>
 #include <linux/utsname.h>
 #include <linux/init.h>
Signature · 7 lines
1.7.5.2


-- 
Jesper Juhl <[email protected]>       http://www.chaosbits.net/
Don't top-post http://www.catb.org/jargon/html/T/top-post.html
Plain text mails only, please.
#52 lore raw

PATCH 16/37 Remove unneeded version.h includes (and add where needed) for drivers/usb/

In reply to Jesper Juhl

It was pointed out by 'make versioncheck' that linux/version.h was not always being included where needed and sometimes included needlessly in drivers/usb/.
This patch fixes up the includes.

---
 drivers/usb/gadget/uvc.h         |    1 +
 drivers/usb/gadget/uvc_v4l2.c    |    1 -
 drivers/usb/storage/realtek_cr.c |    1 -
 3 files changed, 1 insertions(+), 2 deletions(-)
drivers/usb/gadget/uvc.h +1 -0
index 5b79194..81971fb 100644
@@ -56,6 +56,7 @@ struct uvc_event
 #include <linux/usb.h>	/* For usb_endpoint_* */
 #include <linux/usb/gadget.h>
 #include <linux/videodev2.h>
+#include <linux/version.h>
 #include <media/v4l2-fh.h>
 
 #include "uvc_queue.h"
drivers/usb/gadget/uvc_v4l2.c +0 -1
index 5e807f0..a715805 100644
@@ -16,7 +16,6 @@
 #include <linux/errno.h>
 #include <linux/list.h>
 #include <linux/mutex.h>
-#include <linux/version.h>
 #include <linux/videodev2.h>
 #include <linux/vmalloc.h>
 #include <linux/wait.h>
drivers/usb/storage/realtek_cr.c +0 -1
index d509a4a..fe21104 100644
@@ -26,7 +26,6 @@
 #include <linux/sched.h>
 #include <linux/workqueue.h>
 #include <linux/kernel.h>
-#include <linux/version.h>
 
 #include <scsi/scsi.h>
 #include <scsi/scsi_cmnd.h>
Signature · 7 lines
1.7.5.2


-- 
Jesper Juhl <[email protected]>       http://www.chaosbits.net/
Don't top-post http://www.catb.org/jargon/html/T/top-post.html
Plain text mails only, please.
#53 lore raw

Re: [PATCH 16/37] Remove unneeded version.h includes (and add where needed) for drivers/usb/

Hi,

Quoted 6 lines · Jesper Juhl

It was pointed out by 'make versioncheck' that linux/version.h was not always being included where needed and sometimes included needlessly in drivers/usb/.
This patch fixes up the includes.

Laurent, I guess Jesper needs your Ack for the uvc part. It looks good to me, but I'll leave it to you.

Quoted 51 lines
---
 drivers/usb/gadget/uvc.h         |    1 +
 drivers/usb/gadget/uvc_v4l2.c    |    1 -
 drivers/usb/storage/realtek_cr.c |    1 -
 3 files changed, 1 insertions(+), 2 deletions(-)
drivers/usb/gadget/uvc.h +1 -0
index 5b79194..81971fb 100644
@@ -56,6 +56,7 @@ struct uvc_event
 #include <linux/usb.h>	/* For usb_endpoint_* */
 #include <linux/usb/gadget.h>
 #include <linux/videodev2.h>
+#include <linux/version.h>
 #include <media/v4l2-fh.h>
 
 #include "uvc_queue.h"
drivers/usb/gadget/uvc_v4l2.c +0 -1
index 5e807f0..a715805 100644
@@ -16,7 +16,6 @@
 #include <linux/errno.h>
 #include <linux/list.h>
 #include <linux/mutex.h>
-#include <linux/version.h>
 #include <linux/videodev2.h>
 #include <linux/vmalloc.h>
 #include <linux/wait.h>
drivers/usb/storage/realtek_cr.c +0 -1
index d509a4a..fe21104 100644
@@ -26,7 +26,6 @@
 #include <linux/sched.h>
 #include <linux/workqueue.h>
 #include <linux/kernel.h>
-#include <linux/version.h>
 
 #include <scsi/scsi.h>
 #include <scsi/scsi_cmnd.h>
Signature · 7 lines
1.7.5.2


-- 
Jesper Juhl <[email protected]>       http://www.chaosbits.net/
Don't top-post http://www.catb.org/jargon/html/T/top-post.html
Plain text mails only, please.
Signature · 1 line
balbi
#54 lore raw

Re: [PATCH 16/37] Remove unneeded version.h includes (and add where needed) for drivers/usb/

Hi Felipe,

Quoted 10 lines · On Monday 27 June 2011 10:20:37 Felipe Balbi wrote:
Quoted 6 lines · Jesper Juhl

It was pointed out by 'make versioncheck' that linux/version.h was not always being included where needed and sometimes included needlessly in drivers/usb/.
This patch fixes up the includes.

Laurent, I guess Jesper needs your Ack for the uvc part. It looks good to me, but I'll leave it to you.

For the UVC gadget driver,

Sorry for the delay.

Quoted 53 lines
Quoted 53 lines

---

 drivers/usb/gadget/uvc.h         |    1 +
 drivers/usb/gadget/uvc_v4l2.c    |    1 -
 drivers/usb/storage/realtek_cr.c |    1 -
 3 files changed, 1 insertions(+), 2 deletions(-)
drivers/usb/gadget/uvc.h +1 -0
index 5b79194..81971fb 100644
@@ -56,6 +56,7 @@ struct uvc_event
 
 #include <linux/usb.h>	/* For usb_endpoint_* */
 #include <linux/usb/gadget.h>
 #include <linux/videodev2.h>
 
+#include <linux/version.h>
 

#include <media/v4l2-fh.h>

#include "uvc_queue.h"

(quoted diff) +0 -0

b/drivers/usb/gadget/uvc_v4l2.c index 5e807f0..a715805 100644

drivers/usb/gadget/uvc_v4l2.c +0 -1
@@ -16,7 +16,6 @@
 
 #include <linux/errno.h>
 #include <linux/list.h>
 #include <linux/mutex.h>
 
-#include <linux/version.h>
 

#include <linux/videodev2.h>
#include <linux/vmalloc.h>
#include <linux/wait.h>

(quoted diff) +0 -0

b/drivers/usb/storage/realtek_cr.c index d509a4a..fe21104 100644

drivers/usb/storage/realtek_cr.c +0 -1
@@ -26,7 +26,6 @@
 
 #include <linux/sched.h>
 #include <linux/workqueue.h>
 #include <linux/kernel.h>
 
-#include <linux/version.h>
 

#include <scsi/scsi.h>
#include <scsi/scsi_cmnd.h>

Signature · 3 lines
Regards,

Laurent Pinchart
#55 lore raw

PATCH 17/37 Remove unneeded version.h include from drivers/uwb/

In reply to Jesper Juhl

It was pointed out by 'make versioncheck' that a include of linux/version.h is not needed in drivers/uwb/uwb-internal.h . This patch removes it.

---
 drivers/uwb/uwb-internal.h |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)
drivers/uwb/uwb-internal.h +0 -1
index 157485c..a7494bf 100644
@@ -28,7 +28,6 @@
 #ifndef __UWB_INTERNAL_H__
 #define __UWB_INTERNAL_H__
 
-#include <linux/version.h>
 #include <linux/kernel.h>
 #include <linux/device.h>
 #include <linux/uwb.h>
Signature · 7 lines
1.7.5.2


-- 
Jesper Juhl <[email protected]>       http://www.chaosbits.net/
Don't top-post http://www.catb.org/jargon/html/T/top-post.html
Plain text mails only, please.
#56 lore raw

PATCH 18/37 Remove unneeded version.h includes from drivers/video/

In reply to Jesper Juhl

It was pointed out by 'make versioncheck' that some includes of linux/version.h are not needed in drivers/video/. This patch removes them.

---
 drivers/video/backlight/adp8860_bl.c |    1 -
 drivers/video/backlight/adp8870_bl.c |    1 -
 drivers/video/pxa3xx-gcu.c           |    2 --
 drivers/video/xilinxfb.c             |    1 -
 4 files changed, 0 insertions(+), 5 deletions(-)
drivers/video/backlight/adp8860_bl.c +0 -1
index d2a96a4..24a6dfd 100644
@@ -7,7 +7,6 @@
  */
 
 #include <linux/module.h>
-#include <linux/version.h>
 #include <linux/init.h>
 #include <linux/errno.h>
 #include <linux/pm.h>
drivers/video/backlight/adp8870_bl.c +0 -1
index 05a8832..383c4c3 100644
@@ -7,7 +7,6 @@
  */
 
 #include <linux/module.h>
-#include <linux/version.h>
 #include <linux/init.h>
 #include <linux/errno.h>
 #include <linux/pm.h>
drivers/video/pxa3xx-gcu.c +0 -2
index 0283c70..d8de557 100644
@@ -31,8 +31,6 @@
  */
 
 #include <linux/module.h>
-#include <linux/version.h>
-
 #include <linux/platform_device.h>
 #include <linux/dma-mapping.h>
 #include <linux/miscdevice.h>
drivers/video/xilinxfb.c +0 -1
index 77dea01..fcb6cd9 100644
@@ -23,7 +23,6 @@
 #include <linux/device.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
-#include <linux/version.h>
 #include <linux/errno.h>
 #include <linux/string.h>
 #include <linux/mm.h>
Signature · 7 lines
1.7.5.2


-- 
Jesper Juhl <[email protected]>       http://www.chaosbits.net/
Don't top-post http://www.catb.org/jargon/html/T/top-post.html
Plain text mails only, please.
Acked-by on v1 18/37
#57 lore raw

Re: [PATCH 18/37] Remove unneeded version.h includes from drivers/video/

Quoted 2 lines · Jesper Juhl

 drivers/video/backlight/adp8860_bl.c |    1 -
 drivers/video/backlight/adp8870_bl.c |    1 -

-mike

Applied
#58 lore raw

Re: [PATCH 18/37] Remove unneeded version.h includes from drivers/video/

In reply to Jesper Juhl
Quoted 4 lines · Jesper Juhl

It was pointed out by 'make versioncheck' that some includes of linux/version.h are not needed in drivers/video/. This patch removes them.

Quoted 8 lines
---
 drivers/video/backlight/adp8860_bl.c |    1 -
 drivers/video/backlight/adp8870_bl.c |    1 -
 drivers/video/pxa3xx-gcu.c           |    2 --
 drivers/video/xilinxfb.c             |    1 -
 4 files changed, 0 insertions(+), 5 deletions(-)

Applied, thanks.

#59 lore raw

PATCH 19/37 Remove unneeded version.h includes from drivers/staging/rtl*/

In reply to Jesper Juhl

It was pointed out by 'make versioncheck' that some includes of linux/version.h are not needed in drivers/staging/rtl8187se/, drivers/staging/rtl8192e/, drivers/staging/rtl8192u/ & drivers/staging/rtl8712/.
This patch removes them.

---
 drivers/staging/rtl8187se/ieee80211/ieee80211.h    |    1 -
 .../staging/rtl8187se/ieee80211/ieee80211_crypt.c  |    1 -
 .../rtl8187se/ieee80211/ieee80211_crypt_ccmp.c     |    1 -
 .../rtl8187se/ieee80211/ieee80211_crypt_tkip.c     |    1 -
 .../rtl8187se/ieee80211/ieee80211_crypt_wep.c      |    1 -
 .../staging/rtl8187se/ieee80211/ieee80211_module.c |    1 -
 .../rtl8187se/ieee80211/ieee80211_softmac.c        |    1 -
 drivers/staging/rtl8192e/ieee80211/ieee80211.h     |    1 -
 .../staging/rtl8192e/ieee80211/ieee80211_crypt.c   |    1 -
 .../rtl8192e/ieee80211/ieee80211_crypt_ccmp.c      |    1 -
 .../rtl8192e/ieee80211/ieee80211_crypt_tkip.c      |    1 -
 .../rtl8192e/ieee80211/ieee80211_crypt_wep.c       |    1 -
 .../staging/rtl8192e/ieee80211/ieee80211_module.c  |    1 -
 drivers/staging/rtl8192e/ieee80211/ieee80211_rx.c  |    1 -
 .../staging/rtl8192e/ieee80211/ieee80211_softmac.c |    1 -
 drivers/staging/rtl8192e/ieee80211/ieee80211_tx.c  |    1 -
 drivers/staging/rtl8192e/r8192E.h                  |    1 -
 drivers/staging/rtl8192u/ieee80211/ieee80211.h     |    1 -
 .../staging/rtl8192u/ieee80211/ieee80211_crypt.c   |    1 -
 .../rtl8192u/ieee80211/ieee80211_crypt_ccmp.c      |    1 -
 .../rtl8192u/ieee80211/ieee80211_crypt_tkip.c      |    1 -
 .../rtl8192u/ieee80211/ieee80211_crypt_wep.c       |    1 -
 .../staging/rtl8192u/ieee80211/ieee80211_module.c  |    1 -
 drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c  |    1 -
 .../staging/rtl8192u/ieee80211/ieee80211_softmac.c |    1 -
 drivers/staging/rtl8192u/r8192U.h                  |    1 -
 drivers/staging/rtl8712/osdep_service.h            |    2 --
 27 files changed, 0 insertions(+), 28 deletions(-)
drivers/staging/rtl8187se/ieee80211/ieee80211.h +0 -1
index 16aa6a8..705c6cc 100644
@@ -25,7 +25,6 @@
 #define IEEE80211_H
 #include <linux/if_ether.h> /* ETH_ALEN */
 #include <linux/kernel.h>   /* ARRAY_SIZE */
-#include <linux/version.h>
 #include <linux/jiffies.h>
 #include <linux/timer.h>
 #include <linux/sched.h>
drivers/staging/rtl8187se/ieee80211/ieee80211_crypt.c +0 -1
index c8dbcb9..b3882ae 100644
@@ -12,7 +12,6 @@
  */
 
 //#include <linux/config.h>
-#include <linux/version.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/slab.h>
drivers/staging/rtl8187se/ieee80211/ieee80211_crypt_ccmp.c +0 -1
index 731d268..6aaaa2f 100644
@@ -10,7 +10,6 @@
  */
 
 //#include <linux/config.h>
-#include <linux/version.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/slab.h>
drivers/staging/rtl8187se/ieee80211/ieee80211_crypt_tkip.c +0 -1
index ee71ee9..da24e43 100644
@@ -10,7 +10,6 @@
  */
 
 //#include <linux/config.h>
-#include <linux/version.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/slab.h>
drivers/staging/rtl8187se/ieee80211/ieee80211_crypt_wep.c +0 -1
index f790cd6..58f3eeb 100644
@@ -10,7 +10,6 @@
  */
 
 //#include <linux/config.h>
-#include <linux/version.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/slab.h>
drivers/staging/rtl8187se/ieee80211/ieee80211_module.c +0 -1
index 9d58a42..9422573 100644
@@ -46,7 +46,6 @@
 #include <linux/slab.h>
 #include <linux/tcp.h>
 #include <linux/types.h>
-#include <linux/version.h>
 #include <linux/wireless.h>
 #include <linux/etherdevice.h>
 #include <asm/uaccess.h>
drivers/staging/rtl8187se/ieee80211/ieee80211_softmac.c +0 -1
index 736a140..f292478 100644
@@ -19,7 +19,6 @@
 #include <linux/random.h>
 #include <linux/delay.h>
 #include <linux/slab.h>
-#include <linux/version.h>
 #include <asm/uaccess.h>
 
 #include "dot11d.h"
drivers/staging/rtl8192e/ieee80211/ieee80211.h +0 -1
index dbe21ab..a58519e 100644
@@ -25,7 +25,6 @@
 #define IEEE80211_H
 #include <linux/if_ether.h> /* ETH_ALEN */
 #include <linux/kernel.h>   /* ARRAY_SIZE */
-#include <linux/version.h>
 #include <linux/module.h>
 #include <linux/jiffies.h>
 #include <linux/timer.h>
drivers/staging/rtl8192e/ieee80211/ieee80211_crypt.c +0 -1
index ae50379..61fd4ce 100644
@@ -12,7 +12,6 @@
  */
 
 //#include <linux/config.h>
-#include <linux/version.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/slab.h>
drivers/staging/rtl8192e/ieee80211/ieee80211_crypt_ccmp.c +0 -1
index 9b8533f..48267a0 100644
@@ -10,7 +10,6 @@
  */
 
 //#include <linux/config.h>
-#include <linux/version.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/slab.h>
drivers/staging/rtl8192e/ieee80211/ieee80211_crypt_tkip.c +0 -1
index b32b7e6..ed623a9 100644
@@ -10,7 +10,6 @@
  */
 
 //#include <linux/config.h>
-#include <linux/version.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/slab.h>
drivers/staging/rtl8192e/ieee80211/ieee80211_crypt_wep.c +0 -1
index e626472..5504391 100644
@@ -9,7 +9,6 @@
  * more details.
  */
 
-#include <linux/version.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/slab.h>
drivers/staging/rtl8192e/ieee80211/ieee80211_module.c +0 -1
index 663b0b8..c1c294e 100644
@@ -45,7 +45,6 @@
 #include <linux/slab.h>
 #include <linux/tcp.h>
 #include <linux/types.h>
-#include <linux/version.h>
 #include <linux/wireless.h>
 #include <linux/etherdevice.h>
 #include <asm/uaccess.h>
drivers/staging/rtl8192e/ieee80211/ieee80211_rx.c +0 -1
index ed5a380..022086d 100644
@@ -36,7 +36,6 @@
 #include <linux/slab.h>
 #include <linux/tcp.h>
 #include <linux/types.h>
-#include <linux/version.h>
 #include <linux/wireless.h>
 #include <linux/etherdevice.h>
 #include <asm/uaccess.h>
drivers/staging/rtl8192e/ieee80211/ieee80211_softmac.c +0 -1
index 7d4cba3..45e3cc1 100644
@@ -19,7 +19,6 @@
 #include <linux/random.h>
 #include <linux/delay.h>
 #include <linux/slab.h>
-#include <linux/version.h>
 #include <asm/uaccess.h>
 #ifdef ENABLE_DOT11D
 #include "dot11d.h"
drivers/staging/rtl8192e/ieee80211/ieee80211_tx.c +0 -1
index 995346d..de2ed72 100644
@@ -46,7 +46,6 @@
 #include <linux/slab.h>
 #include <linux/tcp.h>
 #include <linux/types.h>
-#include <linux/version.h>
 #include <linux/wireless.h>
 #include <linux/etherdevice.h>
 #include <asm/uaccess.h>
drivers/staging/rtl8192e/r8192E.h +0 -1
index 0229031..0faa637 100644
@@ -35,7 +35,6 @@
 #include <linux/proc_fs.h>	// Necessary because we use the proc fs
 #include <linux/if_arp.h>
 #include <linux/random.h>
-#include <linux/version.h>
 #include <asm/io.h>
 #include "ieee80211/rtl819x_HT.h"
 #include "ieee80211/ieee80211.h"
drivers/staging/rtl8192u/ieee80211/ieee80211.h +0 -1
index e716f7b..6f08e51 100644
@@ -25,7 +25,6 @@
 #define IEEE80211_H
 #include <linux/if_ether.h> /* ETH_ALEN */
 #include <linux/kernel.h>   /* ARRAY_SIZE */
-#include <linux/version.h>
 #include <linux/module.h>
 #include <linux/jiffies.h>
 #include <linux/timer.h>
drivers/staging/rtl8192u/ieee80211/ieee80211_crypt.c +0 -1
index 8707eba..a464d11 100644
@@ -12,7 +12,6 @@
  */
 
 //#include <linux/config.h>
-#include <linux/version.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/slab.h>
drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_ccmp.c +0 -1
index 4b078e5..fec0176 100644
@@ -10,7 +10,6 @@
  */
 
 //#include <linux/config.h>
-#include <linux/version.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/slab.h>
drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_tkip.c +0 -1
index a98584c..555eb80 100644
@@ -10,7 +10,6 @@
  */
 
 //#include <linux/config.h>
-#include <linux/version.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/slab.h>
drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_wep.c +0 -1
index 96c2c9d..3801f12 100644
@@ -10,7 +10,6 @@
  */
 
 //#include <linux/config.h>
-#include <linux/version.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/slab.h>
drivers/staging/rtl8192u/ieee80211/ieee80211_module.c +0 -1
index fe978f3..50167b7 100644
@@ -46,7 +46,6 @@
 #include <linux/slab.h>
 #include <linux/tcp.h>
 #include <linux/types.h>
-#include <linux/version.h>
 #include <linux/wireless.h>
 #include <linux/etherdevice.h>
 #include <asm/uaccess.h>
drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c +0 -1
index a414303..c9bdc7f 100644
@@ -37,7 +37,6 @@
 #include <linux/slab.h>
 #include <linux/tcp.h>
 #include <linux/types.h>
-#include <linux/version.h>
 #include <linux/wireless.h>
 #include <linux/etherdevice.h>
 #include <asm/uaccess.h>
drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c +0 -1
index 4ec0a65..e9582bd 100644
@@ -19,7 +19,6 @@
 #include <linux/random.h>
 #include <linux/delay.h>
 #include <linux/slab.h>
-#include <linux/version.h>
 #include <asm/uaccess.h>
 #include "dot11d.h"
 
drivers/staging/rtl8192u/r8192U.h +0 -1
index 0205079..9b81f26 100644
@@ -37,7 +37,6 @@
 #include <linux/proc_fs.h>	// Necessary because we use the proc fs
 #include <linux/if_arp.h>
 #include <linux/random.h>
-#include <linux/version.h>
 #include <asm/io.h>
 #include "ieee80211/ieee80211.h"
 
drivers/staging/rtl8712/osdep_service.h +0 -2
index 3d3f73c..c2410bd 100644
@@ -5,9 +5,7 @@
 #define _FAIL		0
 
 #include "basic_types.h"
-#include <linux/version.h>
 #include <linux/spinlock.h>
-
 #include <linux/semaphore.h>
 #include <linux/sem.h>
 #include <linux/netdevice.h>
Signature · 7 lines
1.7.5.2


-- 
Jesper Juhl <[email protected]>       http://www.chaosbits.net/
Don't top-post http://www.catb.org/jargon/html/T/top-post.html
Plain text mails only, please.
#60 lore raw

Re: [PATCH 19/37] Remove unneeded version.h includes from drivers/staging/rtl*/

Quoted 28 lines · Jesper Juhl

It was pointed out by 'make versioncheck' that some includes of linux/version.h are not needed in drivers/staging/rtl8187se/, drivers/staging/rtl8192e/, drivers/staging/rtl8192u/& drivers/staging/rtl8712/.
This patch removes them.

---
  drivers/staging/rtl8187se/ieee80211/ieee80211.h    |    1 -
  .../staging/rtl8187se/ieee80211/ieee80211_crypt.c  |    1 -
  .../rtl8187se/ieee80211/ieee80211_crypt_ccmp.c     |    1 -
  .../rtl8187se/ieee80211/ieee80211_crypt_tkip.c     |    1 -
  .../rtl8187se/ieee80211/ieee80211_crypt_wep.c      |    1 -
  .../staging/rtl8187se/ieee80211/ieee80211_module.c |    1 -
  .../rtl8187se/ieee80211/ieee80211_softmac.c        |    1 -
  drivers/staging/rtl8192e/ieee80211/ieee80211.h     |    1 -
  .../staging/rtl8192e/ieee80211/ieee80211_crypt.c   |    1 -
  .../rtl8192e/ieee80211/ieee80211_crypt_ccmp.c      |    1 -
  .../rtl8192e/ieee80211/ieee80211_crypt_tkip.c      |    1 -
  .../rtl8192e/ieee80211/ieee80211_crypt_wep.c       |    1 -
  .../staging/rtl8192e/ieee80211/ieee80211_module.c  |    1 -
  drivers/staging/rtl8192e/ieee80211/ieee80211_rx.c  |    1 -
  .../staging/rtl8192e/ieee80211/ieee80211_softmac.c |    1 -
  drivers/staging/rtl8192e/ieee80211/ieee80211_tx.c  |    1 -
  drivers/staging/rtl8192e/r8192E.h                  |    1 -
  drivers/staging/rtl8192u/ieee80211/ieee80211.h     |    1 -
  .../staging/rtl8192u/ieee80211/ieee80211_crypt.c   |    1 -
  .../rtl8192u/ieee80211/ieee80211_crypt_ccmp.c      |    1 -
Quoted 8 lines
  .../rtl8192u/ieee80211/ieee80211_crypt_tkip.c      |    1 -
  .../rtl8192u/ieee80211/ieee80211_crypt_wep.c       |    1 -
  .../staging/rtl8192u/ieee80211/ieee80211_module.c  |    1 -
  drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c  |    1 -
  .../staging/rtl8192u/ieee80211/ieee80211_softmac.c |    1 -
  drivers/staging/rtl8192u/r8192U.h                  |    1 -
  drivers/staging/rtl8712/osdep_service.h            |    2 --
  27 files changed, 0 insertions(+), 28 deletions(-)

ACK for rtl8187se and rtl8712 (r8712u).

Larry Finger

#61 lore raw

PATCH 20/37 Remove unneeded version.h includes from drivers/staging/gma500/

In reply to Jesper Juhl

It was pointed out by 'make versioncheck' that some includes of linux/version.h are not needed in drivers/staging/gma500/. This patch removes them.

---
 drivers/staging/gma500/psb_bl.c  |    1 -
 drivers/staging/gma500/psb_drv.h |    1 -
 drivers/staging/gma500/psb_fb.h  |    1 -
 3 files changed, 0 insertions(+), 3 deletions(-)
drivers/staging/gma500/psb_bl.c +0 -1
index 5dffc71..57423f5 100644
@@ -21,7 +21,6 @@
  */
 
 #include <linux/backlight.h>
-#include <linux/version.h>
 #include "psb_drv.h"
 #include "psb_intel_reg.h"
 #include "psb_intel_drv.h"
drivers/staging/gma500/psb_drv.h +0 -1
index e19a454..8e10c1c 100644
@@ -20,7 +20,6 @@
 #ifndef _PSB_DRV_H_
 #define _PSB_DRV_H_
 
-#include <linux/version.h>
 #include <linux/kref.h>
 
 #include <drm/drmP.h>
drivers/staging/gma500/psb_fb.h +0 -1
index c8ec0d6..9499d60 100644
@@ -22,7 +22,6 @@
 #ifndef _PSB_FB_H_
 #define _PSB_FB_H_
 
-#include <linux/version.h>
 #include <drm/drmP.h>
 #include <drm/drm_fb_helper.h>
 
Signature · 7 lines
1.7.5.2


-- 
Jesper Juhl <[email protected]>       http://www.chaosbits.net/
Don't top-post http://www.catb.org/jargon/html/T/top-post.html
Plain text mails only, please.
#62 lore raw

Re: [PATCH 20/37] Remove unneeded version.h includes from drivers/staging/gma500/

Quoted 3 lines · On Fri, 24 Jun 2011 00:41:01 +0200 (CEST) Jesper Juhl <[email protected]> wrote:

It was pointed out by 'make versioncheck' that some includes of linux/version.h are not needed in drivers/staging/gma500/. This patch removes them.

Thanks will rebase onto the end of the current patch set and tweak it to apply.

#63 lore raw

Re: [PATCH 20/37] Remove unneeded version.h includes from drivers/staging/gma500/

In reply to Jesper Juhl
Quoted 1 line · On Fri, 24 Jun 2011 00:41:01 +0200 (CEST) Jesper Juhl <[email protected]> wrote:

Remove unneeded version.h includes from drivers/staging/gma500/

Applied and updated now the file juggling has all calmed down

#64 lore raw

PATCH 21/37 Remove unneeded version.h includes from drivers/staging/ath6kl/

In reply to Jesper Juhl

It was pointed out by 'make versioncheck' that some includes of linux/version.h are not needed in drivers/staging/ath6kl/. This patch removes them.

---
 .../staging/ath6kl/os/linux/include/config_linux.h |    2 --
 .../ath6kl/os/linux/include/ieee80211_ioctl.h      |    2 --
 .../staging/ath6kl/os/linux/include/osapi_linux.h  |    1 -
 3 files changed, 0 insertions(+), 5 deletions(-)
drivers/staging/ath6kl/os/linux/include/config_linux.h +0 -2
index d4030e2..dbbe1a0 100644
@@ -28,8 +28,6 @@
 extern "C" {
 #endif
 
-#include <linux/version.h>
-
 /*
  * Host side Test Command support
  */
drivers/staging/ath6kl/os/linux/include/ieee80211_ioctl.h +0 -2
index 769a480..e6e96de 100644
@@ -24,8 +24,6 @@
 #ifndef _IEEE80211_IOCTL_H_
 #define _IEEE80211_IOCTL_H_
 
-#include <linux/version.h>
-
 #ifdef __cplusplus
 extern "C" {
 #endif
drivers/staging/ath6kl/os/linux/include/osapi_linux.h +0 -1
index 07078b4..41f4373 100644
@@ -29,7 +29,6 @@
 
 #ifdef __KERNEL__
 
-#include <linux/version.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/string.h>
Signature · 7 lines
1.7.5.2


-- 
Jesper Juhl <[email protected]>       http://www.chaosbits.net/
Don't top-post http://www.catb.org/jargon/html/T/top-post.html
Plain text mails only, please.
#65 lore raw

PATCH 22/37 Remove unneeded version.h include from drivers/staging/bcm/headers.h

In reply to Jesper Juhl

It was pointed out by 'make versioncheck' that a include of linux/version.h is not needed in drivers/staging/bcm/headers.h . This patch removes it.

---
 drivers/staging/bcm/headers.h |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)
drivers/staging/bcm/headers.h +0 -1
index 1148e5e..ab0a1db 100644
@@ -25,7 +25,6 @@
 #include <linux/proc_fs.h>
 #include <linux/interrupt.h>
 
-#include <linux/version.h>
 #include <linux/stddef.h>
 #include <linux/kernel.h>
 #include <linux/stat.h>
Signature · 7 lines
1.7.5.2


-- 
Jesper Juhl <[email protected]>       http://www.chaosbits.net/
Don't top-post http://www.catb.org/jargon/html/T/top-post.html
Plain text mails only, please.
#66 lore raw

PATCH 23/37 Remove unneeded version.h include from drivers/staging/cxd2099/cxd2099.c

In reply to Jesper Juhl

It was pointed out by 'make versioncheck' that include of linux/version.h is not needed in drivers/staging/cxd2099/cxd2099.c . This patch removes it.

---
 drivers/staging/cxd2099/cxd2099.c |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)
drivers/staging/cxd2099/cxd2099.c +0 -1
index b49186c..55b1c4a 100644
@@ -22,7 +22,6 @@
  * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
  */
 
-#include <linux/version.h>
 #include <linux/slab.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
Signature · 7 lines
1.7.5.2


-- 
Jesper Juhl <[email protected]>       http://www.chaosbits.net/
Don't top-post http://www.catb.org/jargon/html/T/top-post.html
Plain text mails only, please.
#67 lore raw

PATCH 24/37 Remove unneeded version.h include from drivers/staging/cxt1e1/sbecom_inline_linux.h

In reply to Jesper Juhl

It was pointed out by 'make versioncheck' that include of linux/version.h is not needed in drivers/staging/cxt1e1/sbecom_inline_linux.h This patch removes it.

---
 drivers/staging/cxt1e1/sbecom_inline_linux.h |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)
drivers/staging/cxt1e1/sbecom_inline_linux.h +0 -1
index 501a331..c0563e6 100644
@@ -47,7 +47,6 @@
 #include <sys/types.h>
 #else
 #include <linux/types.h>
-#include <linux/version.h>
 #if defined(CONFIG_SMP) && ! defined(__SMP__)
 #define __SMP__
 #endif
Signature · 7 lines
1.7.5.2


-- 
Jesper Juhl <[email protected]>       http://www.chaosbits.net/
Don't top-post http://www.catb.org/jargon/html/T/top-post.html
Plain text mails only, please.
#68 lore raw

PATCH 25/37 Remove unneeded version.h includes (and add where needed) for drivers/staging/easycap/

In reply to Jesper Juhl

It was pointed out by 'make versioncheck' that linux/version.h was not always being included where needed and sometimes included needlessly in drivers/staging/easycap/.
This patch fixes up the includes.

---
 drivers/staging/easycap/easycap.h       |    1 -
 drivers/staging/easycap/easycap_ioctl.c |    1 +
 2 files changed, 1 insertions(+), 1 deletions(-)
drivers/staging/easycap/easycap.h +0 -1
index 1f94e23..efbd61b 100644
@@ -62,7 +62,6 @@
 #include <linux/uaccess.h>
 
 #include <linux/i2c.h>
-#include <linux/version.h>
 #include <linux/workqueue.h>
 #include <linux/poll.h>
 #include <linux/mm.h>
drivers/staging/easycap/easycap_ioctl.c +1 -0
index b3bd11d..f767f2e 100644
@@ -25,6 +25,7 @@
 */
 /*****************************************************************************/
 
+#include <linux/version.h>
 #include "easycap.h"
 
 /*--------------------------------------------------------------------------*/
Signature · 7 lines
1.7.5.2


-- 
Jesper Juhl <[email protected]>       http://www.chaosbits.net/
Don't top-post http://www.catb.org/jargon/html/T/top-post.html
Plain text mails only, please.
#69 lore raw

PATCH 26/37 Remove unneeded version.h include from drivers/staging/hv/hv_timesource.c

In reply to Jesper Juhl

It was pointed out by 'make versioncheck' that include of linux/version.h is not needed in drivers/staging/hv/hv_timesource.c . This patch removes it.

---
 drivers/staging/hv/hv_timesource.c |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)
drivers/staging/hv/hv_timesource.c +0 -1
index 0efb049..2b0f9aa 100644
@@ -22,7 +22,6 @@
  */
 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
 
-#include <linux/version.h>
 #include <linux/clocksource.h>
 #include <linux/init.h>
 #include <linux/module.h>
Signature · 7 lines
1.7.5.2


-- 
Jesper Juhl <[email protected]>       http://www.chaosbits.net/
Don't top-post http://www.catb.org/jargon/html/T/top-post.html
Plain text mails only, please.
#70 lore raw

PATCH 27/37 Remove unneeded version.h includes from drivers/staging/lirc/

In reply to Jesper Juhl

It was pointed out by 'make versioncheck' that some includes of linux/version.h are not needed in drivers/staging/lirc/. This patch removes them.

---
 drivers/staging/lirc/lirc_ttusbir.c |    1 -
 drivers/staging/lirc/lirc_zilog.c   |    2 --
 2 files changed, 0 insertions(+), 3 deletions(-)
drivers/staging/lirc/lirc_ttusbir.c +0 -1
index e345ab9..e4b329b 100644
@@ -30,7 +30,6 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
-#include <linux/version.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/module.h>
drivers/staging/lirc/lirc_zilog.c +0 -2
index dd6a57c..a8efe41 100644
@@ -39,8 +39,6 @@
  *
  */
 
-
-#include <linux/version.h>
 #include <linux/module.h>
 #include <linux/kmod.h>
 #include <linux/kernel.h>
Signature · 7 lines
1.7.5.2


-- 
Jesper Juhl <[email protected]>       http://www.chaosbits.net/
Don't top-post http://www.catb.org/jargon/html/T/top-post.html
Plain text mails only, please.
#71 lore raw

PATCH 28/37 Remove unneeded version.h include from drivers/staging/mei/main.c

In reply to Jesper Juhl

It was pointed out by 'make versioncheck' that include of linux/version.h is not needed in drivers/staging/mei/main.c . This patch removes it.

---
 drivers/staging/mei/main.c |    3 ---
 1 files changed, 0 insertions(+), 3 deletions(-)
drivers/staging/mei/main.c +0 -3
index bfd1b46..fb918ae 100644
@@ -14,8 +14,6 @@
  *
  */
 
-
-
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/kernel.h>
@@ -30,7 +28,6 @@
 #include <linux/init.h>
 #include <linux/ioctl.h>
 #include <linux/cdev.h>
-#include <linux/version.h>
 #include <linux/sched.h>
 #include <linux/uuid.h>
 #include <linux/compat.h>
Signature · 7 lines
1.7.5.2


-- 
Jesper Juhl <[email protected]>       http://www.chaosbits.net/
Don't top-post http://www.catb.org/jargon/html/T/top-post.html
Plain text mails only, please.
#72 lore raw

PATCH 29/37 Remove unneeded version.h includes from drivers/staging/msm/

In reply to Jesper Juhl

It was pointed out by 'make versioncheck' that some includes of linux/version.h are not needed in drivers/staging/msm/. This patch removes them.

---
 drivers/staging/msm/ebi2_lcd.c     |    3 +--
 drivers/staging/msm/msm_fb.c       |    1 -
 drivers/staging/msm/msm_fb_bl.c    |    1 -
 drivers/staging/msm/msm_fb_def.h   |    1 -
 drivers/staging/msm/msm_fb_panel.c |    1 -
 5 files changed, 1 insertions(+), 6 deletions(-)
drivers/staging/msm/ebi2_lcd.c +1 -2
index b41e123..4834b7b 100644
@@ -29,7 +29,6 @@
 #include <linux/uaccess.h>
 #include <linux/workqueue.h>
 #include <linux/string.h>
-#include <linux/version.h>
 #include <linux/proc_fs.h>
 #include <linux/vmalloc.h>
 #include <linux/debugfs.h>
@@ -247,4 +246,4 @@ static int __init ebi2_lcd_driver_init(void)
 	return ebi2_lcd_register_driver();
 }
 
-module_init(ebi2_lcd_driver_init);
\ No newline at end of file
+module_init(ebi2_lcd_driver_init);
drivers/staging/msm/msm_fb.c +0 -1
index e7ef836..e60f8f9 100644
@@ -32,7 +32,6 @@
 
 #include <linux/workqueue.h>
 #include <linux/string.h>
-#include <linux/version.h>
 #include <linux/proc_fs.h>
 #include <linux/vmalloc.h>
 #include <linux/debugfs.h>
drivers/staging/msm/msm_fb_bl.c +0 -1
index 2a80775..9c8cb88 100644
@@ -21,7 +21,6 @@
 #include <linux/slab.h>
 #include <linux/fb.h>
 #include <linux/string.h>
-#include <linux/version.h>
 #include <linux/backlight.h>
 
 #include "msm_fb.h"
drivers/staging/msm/msm_fb_def.h +0 -1
index bc7f256..8b4626f 100644
@@ -28,7 +28,6 @@
 #include <linux/uaccess.h>
 #include <linux/workqueue.h>
 #include <linux/string.h>
-#include <linux/version.h>
 #include <linux/proc_fs.h>
 #include <linux/vmalloc.h>
 #include <linux/debugfs.h>
drivers/staging/msm/msm_fb_panel.c +0 -1
index b17a239..651de16 100644
@@ -29,7 +29,6 @@
 #include <linux/uaccess.h>
 #include <linux/workqueue.h>
 #include <linux/string.h>
-#include <linux/version.h>
 #include <linux/proc_fs.h>
 #include <linux/vmalloc.h>
 #include <linux/debugfs.h>
Signature · 7 lines
1.7.5.2


-- 
Jesper Juhl <[email protected]>       http://www.chaosbits.net/
Don't top-post http://www.catb.org/jargon/html/T/top-post.html
Plain text mails only, please.
Acked-by on v1 29/37
#73 lore raw

Re: [PATCH 29/37] Remove unneeded version.h includes from drivers/staging/msm/

Quoted 10 lines · Jesper Juhl

It was pointed out by 'make versioncheck' that some includes of linux/version.h are not needed in drivers/staging/msm/. This patch removes them.

drivers/staging/msm/msm_fb.c +0 -0
index e7ef836..e60f8f9 100644

drivers/staging/msm/msm_fb.c line 37

Quoted 7 lines
drivers/staging/msm/msm_fb.c +0 -1
@@ -32,7 +32,6 @@
 
 #include <linux/workqueue.h>
 #include <linux/string.h>
-#include <linux/version.h>
 #include <linux/proc_fs.h>
 #include <linux/vmalloc.h>
 #include <linux/debugfs.h>
Signature · 2 lines
Sent by an employee of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.
#74 lore raw

PATCH 30/37 Remove unneeded version.h include from drivers/staging/panel/panel.c

In reply to Jesper Juhl

It was pointed out by 'make versioncheck' that include of linux/version.h is not needed in drivers/staging/panel/panel.c This patch removes it.

---
 drivers/staging/panel/panel.c |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)
drivers/staging/panel/panel.c +0 -1
index 6885f9a..b303b7e 100644
@@ -51,7 +51,6 @@
 #include <linux/kernel.h>
 #include <linux/ctype.h>
 #include <linux/parport.h>
-#include <linux/version.h>
 #include <linux/list.h>
 #include <linux/notifier.h>
 #include <linux/reboot.h>
Signature · 7 lines
1.7.5.2


-- 
Jesper Juhl <[email protected]>       http://www.chaosbits.net/
Don't top-post http://www.catb.org/jargon/html/T/top-post.html
Plain text mails only, please.
#75 lore raw

PATCH 31/37 Remove unneeded version.h include from drivers/staging/rts_pstor/rtsx.h

In reply to Jesper Juhl

It was pointed out by 'make versioncheck' that include of linux/version.h is not needed in drivers/staging/rts_pstor/rtsx.h This patch removes it.

---
 drivers/staging/rts_pstor/rtsx.h |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)
drivers/staging/rts_pstor/rtsx.h +0 -1
index 6afb635..247615b 100644
@@ -29,7 +29,6 @@
 #include <linux/delay.h>
 #include <linux/interrupt.h>
 #include <linux/kernel.h>
-#include <linux/version.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/init.h>
Signature · 7 lines
1.7.5.2


-- 
Jesper Juhl <[email protected]>       http://www.chaosbits.net/
Don't top-post http://www.catb.org/jargon/html/T/top-post.html
Plain text mails only, please.
#76 lore raw

PATCH 32/37 Remove unneeded version.h includes from drivers/staging/speakup/

In reply to Jesper Juhl

It was pointed out by 'make versioncheck' that some includes of linux/version.h are not needed in drivers/staging/speakup/. This patch removes them.

---
 drivers/staging/speakup/main.c    |    1 -
 drivers/staging/speakup/speakup.h |    1 -
 2 files changed, 0 insertions(+), 2 deletions(-)
drivers/staging/speakup/main.c +0 -1
index 42fcf7e..8be5604 100644
@@ -23,7 +23,6 @@
 */
 
 #include <linux/kernel.h>
-#include <linux/version.h>
 #include <linux/vt.h>
 #include <linux/tty.h>
 #include <linux/mm.h>		/* __get_free_page() and friends */
drivers/staging/speakup/speakup.h +0 -1
index 46edabe..412b879 100644
@@ -1,6 +1,5 @@
 #ifndef _SPEAKUP_H
 #define _SPEAKUP_H
-#include <linux/version.h>
 
 #include "spk_types.h"
 #include "i18n.h"
Signature · 7 lines
1.7.5.2


-- 
Jesper Juhl <[email protected]>       http://www.chaosbits.net/
Don't top-post http://www.catb.org/jargon/html/T/top-post.html
Plain text mails only, please.
#77 lore raw

PATCH 33/37 Remove unneeded version.h include from drivers/staging/tidspbridge/include/dspbridge/host_os.h

In reply to Jesper Juhl

It was pointed out by 'make versioncheck' that include of linux/version.h is not needed in drivers/staging/tidspbridge/include/dspbridge/host_os.h This patch removes it.

---
 .../tidspbridge/include/dspbridge/host_os.h        |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)
drivers/staging/tidspbridge/include/dspbridge/host_os.h +0 -1
index b1b8acb..1a38896 100644
@@ -24,7 +24,6 @@
 #include <linux/irq.h>
 #include <linux/io.h>
 #include <linux/syscalls.h>
-#include <linux/version.h>
 #include <linux/kernel.h>
 #include <linux/string.h>
 #include <linux/stddef.h>
Signature · 7 lines
1.7.5.2


-- 
Jesper Juhl <[email protected]>       http://www.chaosbits.net/
Don't top-post http://www.catb.org/jargon/html/T/top-post.html
Plain text mails only, please.
#78 lore raw

PATCH 34/37 Remove unneeded version.h includes (and add where needed) for drivers/tm6000/

In reply to Jesper Juhl

It was pointed out by 'make versioncheck' that linux/version.h was not always being included where needed and sometimes included needlessly in drivers/staging/tm6000/.
This patch fixes up the includes.

---
 drivers/staging/tm6000/tm6000-cards.c |    1 -
 drivers/staging/tm6000/tm6000-video.c |    1 -
 drivers/staging/tm6000/tm6000.h       |    3 +--
 3 files changed, 1 insertions(+), 4 deletions(-)
drivers/staging/tm6000/tm6000-cards.c +0 -1
index a69c82e..be4b0e3 100644
@@ -23,7 +23,6 @@
 #include <linux/delay.h>
 #include <linux/i2c.h>
 #include <linux/usb.h>
-#include <linux/version.h>
 #include <linux/slab.h>
 #include <media/v4l2-common.h>
 #include <media/tuner.h>
drivers/staging/tm6000/tm6000-video.c +0 -1
index 4264064..576f136 100644
@@ -30,7 +30,6 @@
 #include <linux/init.h>
 #include <linux/sched.h>
 #include <linux/random.h>
-#include <linux/version.h>
 #include <linux/usb.h>
 #include <linux/videodev2.h>
 #include <media/v4l2-ioctl.h>
drivers/staging/tm6000/tm6000.h +1 -2
index ae6369b..c56da62 100644
@@ -30,8 +30,7 @@
 #include <linux/i2c.h>
 #include <linux/mutex.h>
 #include <media/v4l2-device.h>
-
-
+#include <linux/version.h>
 #include <linux/dvb/frontend.h>
 #include "dvb_demux.h"
 #include "dvb_frontend.h"
Signature · 7 lines
1.7.5.2


-- 
Jesper Juhl <[email protected]>       http://www.chaosbits.net/
Don't top-post http://www.catb.org/jargon/html/T/top-post.html
Plain text mails only, please.
#79 lore raw

PATCH 35/37 Remove unneeded version.h includes from drivers/staging/wlags49_h2/

In reply to Jesper Juhl

It was pointed out by 'make versioncheck' that some includes of linux/version.h are not needed in drivers/staging/wlags49_h2/. This patch removes them.

---
 drivers/staging/wlags49_h2/wl_internal.h |    1 -
 drivers/staging/wlags49_h2/wl_version.h  |    1 -
 2 files changed, 0 insertions(+), 2 deletions(-)
drivers/staging/wlags49_h2/wl_internal.h +0 -1
index cd129b3..a90c728 100644
@@ -67,7 +67,6 @@
 /*******************************************************************************
  *  include files
  ******************************************************************************/
-#include <linux/version.h>
 #ifdef BUS_PCMCIA
 #include <pcmcia/cistpl.h>
 #include <pcmcia/cisreg.h>
drivers/staging/wlags49_h2/wl_version.h +0 -1
index a5e604c..a5faada 100644
@@ -66,7 +66,6 @@
  *  include files
  ******************************************************************************/
 //#include <linux/config.h>
-#include <linux/version.h>
 
 #ifndef CONFIG_MODVERSIONS
 #define __NO_VERSION__
Signature · 7 lines
1.7.5.2


-- 
Jesper Juhl <[email protected]>       http://www.chaosbits.net/
Don't top-post http://www.catb.org/jargon/html/T/top-post.html
Plain text mails only, please.
#80 lore raw

PATCH 36/37 Remove unneeded version.h include from drivers/staging/wlan-ng/prism2sta.c

In reply to Jesper Juhl

It was pointed out by 'make versioncheck' that include of linux/version.h is not needed in drivers/staging/wlan-ng/prism2sta.c . This patch removes it.

---
 drivers/staging/wlan-ng/prism2sta.c |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)
drivers/staging/wlan-ng/prism2sta.c +0 -1
index 21f25a2..417aea5 100644
@@ -50,7 +50,6 @@
 * --------------------------------------------------------------------
 */
 
-#include <linux/version.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/kernel.h>
Signature · 7 lines
1.7.5.2


-- 
Jesper Juhl <[email protected]>       http://www.chaosbits.net/
Don't top-post http://www.catb.org/jargon/html/T/top-post.html
Plain text mails only, please.
#81 lore raw

PATCH 37/37 Remove unneeded version.h includes from drivers/staging/xgifb/

In reply to Jesper Juhl

It was pointed out by 'make versioncheck' that some includes of linux/version.h are not needed in drivers/staging/xgifb/. This patch removes them.

---
 drivers/staging/xgifb/XGI_main_26.c |    1 -
 drivers/staging/xgifb/vb_ext.c      |    1 -
 drivers/staging/xgifb/vb_init.c     |    1 -
 drivers/staging/xgifb/vb_setmode.c  |    1 -
 4 files changed, 0 insertions(+), 4 deletions(-)
drivers/staging/xgifb/XGI_main_26.c +0 -1
index cadec2a..4403e5f 100644
@@ -5,7 +5,6 @@
  */
 
 /* #include <linux/config.h> */
-#include <linux/version.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/kernel.h>
drivers/staging/xgifb/vb_ext.c +0 -1
index 7e1f76a..b1a2573 100644
@@ -1,4 +1,3 @@
-#include <linux/version.h>
 #include <linux/io.h>
 #include <linux/types.h>
 #include "XGIfb.h"
drivers/staging/xgifb/vb_init.c +0 -1
index 33c6876..493b532 100644
@@ -1,6 +1,5 @@
 #include "vgatypes.h"
 
-#include <linux/version.h>
 #include <linux/types.h>
 #include <linux/delay.h> /* udelay */
 #include "XGIfb.h"
drivers/staging/xgifb/vb_setmode.c +0 -1
index 2669b1b..dc4d6e6 100644
@@ -2,7 +2,6 @@
 #include <linux/io.h>
 #include <linux/delay.h>
 #include <linux/types.h>
-#include <linux/version.h>
 #include "XGIfb.h"
 
 
Signature · 7 lines
1.7.5.2


-- 
Jesper Juhl <[email protected]>       http://www.chaosbits.net/
Don't top-post http://www.catb.org/jargon/html/T/top-post.html
Plain text mails only, please.
#82 lore raw
In reply to Jesper Juhl
Quoted 7 lines · Jesper Juhl

This patch series fixes up all reports of unneeded or missing linux/version.h includes reported by 'make versioncheck'.

I've manually inspected each file changed and also done build tests of 'allnoconfig', 'allmodconfig' and 'allyesconfig' on x86-64 with these patches and have encountered no problems.

Quoted 7 lines

All patches are against Linus' tree as of a few hours ago and I've tried to split the series sensibly by subdirectory and/or maintainer.

Please consider applying them and let me know if there are any issues that need to be worked out.
All patches will be submitted as replies to this mail with additional relevant people Cc'ed on each specific patch.

Hi Jesper,

I see that individual maintainers have started picking up the bits for their subsystems.

Could you please give it a week or two and then check which ones are missing in linux-next, and resend those to me?

Thanks,

Signature · 2 lines
Jiri Kosina
SUSE Labs
#83 lore raw
Quoted 17 lines · Jiri Kosina
Quoted 7 lines · Jesper Juhl

This patch series fixes up all reports of unneeded or missing linux/version.h includes reported by 'make versioncheck'.

I've manually inspected each file changed and also done build tests of 'allnoconfig', 'allmodconfig' and 'allyesconfig' on x86-64 with these patches and have encountered no problems.

Quoted 7 lines

All patches are against Linus' tree as of a few hours ago and I've tried to split the series sensibly by subdirectory and/or maintainer.

Please consider applying them and let me know if there are any issues that need to be worked out.
All patches will be submitted as replies to this mail with additional relevant people Cc'ed on each specific patch.

Quoted 8 lines

Hi Jesper,

I see that individual maintainers have started picking up the bits for their subsystems.

Could you please give it a week or two and then check which ones are missing in linux-next, and resend those to me?

Sure thing.

Signature · 3 lines
Jesper Juhl <[email protected]>       http://www.chaosbits.net/
Don't top-post http://www.catb.org/jargon/html/T/top-post.html
Plain text mails only, please.