* [patch] video: build fix for drivers/media/video/mt9v022.c
@ 2008-05-03 16:30 Ingo Molnar
2008-05-03 17:02 ` Guennadi Liakhovetski
2008-05-05 14:17 ` Guennadi Liakhovetski
0 siblings, 2 replies; 6+ messages in thread
From: Ingo Molnar @ 2008-05-03 16:30 UTC (permalink / raw)
To: linux-kernel, Mauro Carvalho Chehab; +Cc: Guennadi Liakhovetski, Jean Delvare
x86.git testing found the following build bug on latest -git:
CC [M] drivers/media/video/mt9v022.o
drivers/media/video/mt9v022.c: In function 'bus_switch_request':
drivers/media/video/mt9v022.c:199: error: implicit declaration of function 'gpio_is_valid'
drivers/media/video/mt9v022.c:201: error: implicit declaration of function 'gpio_request'
drivers/media/video/mt9v022.c:207: error: implicit declaration of function 'gpio_direction_output'
drivers/media/video/mt9v022.c:211: error: implicit declaration of function 'gpio_free'
drivers/media/video/mt9v022.c: In function 'bus_switch_act':
drivers/media/video/mt9v022.c:237: error: implicit declaration of function 'gpio_set_value_cansleep'
make[2]: *** [drivers/media/video] Error 2
make[1]: *** [drivers/media] Error 2
make[1]: *** Waiting for unfinished jobs....
make: *** [drivers] Error 2
with this config:
http://redhat.com/~mingo/misc/config-Sat_May__3_16_08_39_CEST_2008.bad
the bug was that the driver uses GPIO functionality but only includes
the GPIO interface definitions for the CONFIG_MT9M001_PCA9536_SWITCH
case, which was not set in this config.
The quick fix seems to be to include linux/gpio.h unconditionally. (this
seems like a small cleanup as well as it removes and #ifdef is more
robust than an inclusion of asm/gpio.h) Not tested too much yet, so
please have another look in any case.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
---
drivers/media/video/mt9v022.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
Index: linux/drivers/media/video/mt9v022.c
===================================================================
--- linux.orig/drivers/media/video/mt9v022.c
+++ linux/drivers/media/video/mt9v022.c
@@ -13,15 +13,12 @@
#include <linux/i2c.h>
#include <linux/delay.h>
#include <linux/log2.h>
+#include <linux/gpio.h>
#include <media/v4l2-common.h>
#include <media/v4l2-chip-ident.h>
#include <media/soc_camera.h>
-#ifdef CONFIG_MT9M001_PCA9536_SWITCH
-#include <asm/gpio.h>
-#endif
-
/* mt9v022 i2c address 0x48, 0x4c, 0x58, 0x5c
* The platform has to define i2c_board_info
* and call i2c_register_board_info() */
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [patch] video: build fix for drivers/media/video/mt9v022.c
2008-05-03 16:30 [patch] video: build fix for drivers/media/video/mt9v022.c Ingo Molnar
@ 2008-05-03 17:02 ` Guennadi Liakhovetski
2008-05-03 17:58 ` Ingo Molnar
2008-05-05 14:17 ` Guennadi Liakhovetski
1 sibling, 1 reply; 6+ messages in thread
From: Guennadi Liakhovetski @ 2008-05-03 17:02 UTC (permalink / raw)
To: Ingo Molnar; +Cc: linux-kernel, Mauro Carvalho Chehab, Jean Delvare
On Sat, 3 May 2008, Ingo Molnar wrote:
>
> x86.git testing found the following build bug on latest -git:
>
> CC [M] drivers/media/video/mt9v022.o
> drivers/media/video/mt9v022.c: In function 'bus_switch_request':
> drivers/media/video/mt9v022.c:199: error: implicit declaration of function 'gpio_is_valid'
> drivers/media/video/mt9v022.c:201: error: implicit declaration of function 'gpio_request'
> drivers/media/video/mt9v022.c:207: error: implicit declaration of function 'gpio_direction_output'
> drivers/media/video/mt9v022.c:211: error: implicit declaration of function 'gpio_free'
> drivers/media/video/mt9v022.c: In function 'bus_switch_act':
> drivers/media/video/mt9v022.c:237: error: implicit declaration of function 'gpio_set_value_cansleep'
> make[2]: *** [drivers/media/video] Error 2
> make[1]: *** [drivers/media] Error 2
> make[1]: *** Waiting for unfinished jobs....
> make: *** [drivers] Error 2
>
> with this config:
>
> http://redhat.com/~mingo/misc/config-Sat_May__3_16_08_39_CEST_2008.bad
>
> the bug was that the driver uses GPIO functionality but only includes
> the GPIO interface definitions for the CONFIG_MT9M001_PCA9536_SWITCH
> case, which was not set in this config.
Ok, once again a good catch and a wrong fix, sorry:-) The bug is that not
CONFIG_MT9M001_PCA9536_SWITCH but CONFIG_MT9V022_PCA9536_SWITCH shall be
checked for, of course. Copy-paste:-( I'll prepare a correct patch and
submit it. As for the "cleanup" side - don't know. Would it be better to
unconditionally include it? It won't hurt of course, looks better, but is
unneeded when the GPIO is not used. And, although grep reports most
drivers including asm/gpio.h, including linux/gpio.h seems indeed better.
Thanks
Guennadi
---
Guennadi Liakhovetski
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [patch] video: build fix for drivers/media/video/mt9v022.c
2008-05-03 17:02 ` Guennadi Liakhovetski
@ 2008-05-03 17:58 ` Ingo Molnar
2008-05-03 18:15 ` Guennadi Liakhovetski
0 siblings, 1 reply; 6+ messages in thread
From: Ingo Molnar @ 2008-05-03 17:58 UTC (permalink / raw)
To: Guennadi Liakhovetski; +Cc: linux-kernel, Mauro Carvalho Chehab, Jean Delvare
* Guennadi Liakhovetski <g.liakhovetski@gmx.de> wrote:
> > with this config:
> >
> > http://redhat.com/~mingo/misc/config-Sat_May__3_16_08_39_CEST_2008.bad
> >
> > the bug was that the driver uses GPIO functionality but only
> > includes the GPIO interface definitions for the
> > CONFIG_MT9M001_PCA9536_SWITCH case, which was not set in this
> > config.
>
> Ok, once again a good catch and a wrong fix, sorry :-) The bug is that
> not CONFIG_MT9M001_PCA9536_SWITCH but CONFIG_MT9V022_PCA9536_SWITCH
> shall be checked for, of course. Copy-paste:-( I'll prepare a correct
> patch and submit it. As for the "cleanup" side - don't know. Would it
> be better to unconditionally include it? It won't hurt of course,
> looks better, but is unneeded when the GPIO is not used. And, although
> grep reports most drivers including asm/gpio.h, including linux/gpio.h
> seems indeed better.
No. If you look at the core kernel you wont see it sprinkled with things
like:
#ifdef CONFIG_LOCKDEP
#include <linux/lockdep.h>
#endif
why? Because we have put all such things into the include file
themselves and do not want to sprinkle .c files with ugly #ifdefs. This
is a basic cleanliness issue.
Furthermore, if anyone _else_ copy & pastes your driver, this bug wont
hit him anymore.
so please keep that #include <linux/gpio.h>.
Ingo
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [patch] video: build fix for drivers/media/video/mt9v022.c
2008-05-03 17:58 ` Ingo Molnar
@ 2008-05-03 18:15 ` Guennadi Liakhovetski
2008-05-03 19:50 ` Ingo Molnar
0 siblings, 1 reply; 6+ messages in thread
From: Guennadi Liakhovetski @ 2008-05-03 18:15 UTC (permalink / raw)
To: Ingo Molnar; +Cc: linux-kernel, Mauro Carvalho Chehab, Jean Delvare
On Sat, 3 May 2008, Ingo Molnar wrote:
> * Guennadi Liakhovetski <g.liakhovetski@gmx.de> wrote:
>
> > > with this config:
> > >
> > > http://redhat.com/~mingo/misc/config-Sat_May__3_16_08_39_CEST_2008.bad
> > >
> > > the bug was that the driver uses GPIO functionality but only
> > > includes the GPIO interface definitions for the
> > > CONFIG_MT9M001_PCA9536_SWITCH case, which was not set in this
> > > config.
> >
> > Ok, once again a good catch and a wrong fix, sorry :-) The bug is that
> > not CONFIG_MT9M001_PCA9536_SWITCH but CONFIG_MT9V022_PCA9536_SWITCH
> > shall be checked for, of course. Copy-paste:-( I'll prepare a correct
> > patch and submit it. As for the "cleanup" side - don't know. Would it
> > be better to unconditionally include it? It won't hurt of course,
> > looks better, but is unneeded when the GPIO is not used. And, although
> > grep reports most drivers including asm/gpio.h, including linux/gpio.h
> > seems indeed better.
>
> No. If you look at the core kernel you wont see it sprinkled with things
> like:
>
> #ifdef CONFIG_LOCKDEP
> #include <linux/lockdep.h>
> #endif
>
> why? Because we have put all such things into the include file
> themselves and do not want to sprinkle .c files with ugly #ifdefs. This
> is a basic cleanliness issue.
Ok, right, sorry, the patch was indeed correct, just the reason for the
compilation breakage was not quite what you suggested. So, I'll apply your
putch, but please fix mt9m001.c in the same patch too - it also includes
gpio.h conditionally. Although, it does test the correct macro.
Actually, this CONFIG option might disappear completely in the future, if
we decide to switch to a module parameter instead. So that one kernel can
be used on systems with and without the GPIO.
Thanks
Guennadi
---
Guennadi Liakhovetski
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [patch] video: build fix for drivers/media/video/mt9v022.c
2008-05-03 18:15 ` Guennadi Liakhovetski
@ 2008-05-03 19:50 ` Ingo Molnar
0 siblings, 0 replies; 6+ messages in thread
From: Ingo Molnar @ 2008-05-03 19:50 UTC (permalink / raw)
To: Guennadi Liakhovetski; +Cc: linux-kernel, Mauro Carvalho Chehab, Jean Delvare
* Guennadi Liakhovetski <g.liakhovetski@gmx.de> wrote:
> Ok, right, sorry, the patch was indeed correct, just the reason for
> the compilation breakage was not quite what you suggested. So, I'll
> apply your putch, but please fix mt9m001.c in the same patch too - it
> also includes gpio.h conditionally. Although, it does test the correct
> macro.
>
> Actually, this CONFIG option might disappear completely in the future,
> if we decide to switch to a module parameter instead. So that one
> kernel can be used on systems with and without the GPIO.
ok - untested patch for mt9m001.c attached.
Ingo
Index: linux/drivers/media/video/mt9m001.c
===================================================================
--- linux.orig/drivers/media/video/mt9m001.c
+++ linux/drivers/media/video/mt9m001.c
@@ -12,15 +12,12 @@
#include <linux/slab.h>
#include <linux/i2c.h>
#include <linux/log2.h>
+#include <linux/gpio.h>
#include <media/v4l2-common.h>
#include <media/v4l2-chip-ident.h>
#include <media/soc_camera.h>
-#ifdef CONFIG_MT9M001_PCA9536_SWITCH
-#include <asm/gpio.h>
-#endif
-
/* mt9m001 i2c address 0x5d
* The platform has to define i2c_board_info
* and call i2c_register_board_info() */
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [patch] video: build fix for drivers/media/video/mt9v022.c
2008-05-03 16:30 [patch] video: build fix for drivers/media/video/mt9v022.c Ingo Molnar
2008-05-03 17:02 ` Guennadi Liakhovetski
@ 2008-05-05 14:17 ` Guennadi Liakhovetski
1 sibling, 0 replies; 6+ messages in thread
From: Guennadi Liakhovetski @ 2008-05-05 14:17 UTC (permalink / raw)
To: Ingo Molnar; +Cc: linux-kernel, Mauro Carvalho Chehab, Jean Delvare
On Sat, 3 May 2008, Ingo Molnar wrote:
>
> x86.git testing found the following build bug on latest -git:
>
> CC [M] drivers/media/video/mt9v022.o
> drivers/media/video/mt9v022.c: In function 'bus_switch_request':
> drivers/media/video/mt9v022.c:199: error: implicit declaration of function 'gpio_is_valid'
> drivers/media/video/mt9v022.c:201: error: implicit declaration of function 'gpio_request'
> drivers/media/video/mt9v022.c:207: error: implicit declaration of function 'gpio_direction_output'
> drivers/media/video/mt9v022.c:211: error: implicit declaration of function 'gpio_free'
> drivers/media/video/mt9v022.c: In function 'bus_switch_act':
> drivers/media/video/mt9v022.c:237: error: implicit declaration of function 'gpio_set_value_cansleep'
> make[2]: *** [drivers/media/video] Error 2
> make[1]: *** [drivers/media] Error 2
> make[1]: *** Waiting for unfinished jobs....
> make: *** [drivers] Error 2
>
> with this config:
>
> http://redhat.com/~mingo/misc/config-Sat_May__3_16_08_39_CEST_2008.bad
>
> the bug was that the driver uses GPIO functionality but only includes
> the GPIO interface definitions for the CONFIG_MT9M001_PCA9536_SWITCH
> case, which was not set in this config.
>
> The quick fix seems to be to include linux/gpio.h unconditionally. (this
> seems like a small cleanup as well as it removes and #ifdef is more
> robust than an inclusion of asm/gpio.h) Not tested too much yet, so
> please have another look in any case.
>
> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Mauro, please pull this fix, extended with a similar fix for mt9m001 from
another email from Ingo, along with a copy-paste error in a comment in
mt9v022, from
http://linuxtv.org/hg/~gliakhovetski/v4l-dvb
Thanks
Guennadi
---
Guennadi Liakhovetski
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2008-05-05 14:17 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-05-03 16:30 [patch] video: build fix for drivers/media/video/mt9v022.c Ingo Molnar
2008-05-03 17:02 ` Guennadi Liakhovetski
2008-05-03 17:58 ` Ingo Molnar
2008-05-03 18:15 ` Guennadi Liakhovetski
2008-05-03 19:50 ` Ingo Molnar
2008-05-05 14:17 ` Guennadi Liakhovetski
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox