[-next] v4l2: handle unregister for non-I2C builds

Message ID 4A085455.5040108@oracle.com (mailing list archive)
State Superseded, archived
Headers

Commit Message

Randy Dunlap May 11, 2009, 4:37 p.m. UTC
  From: Randy Dunlap <randy.dunlap@oracle.com>

Build fails when CONFIG_I2C=n, so handle that case in the if block:

drivers/built-in.o: In function `v4l2_device_unregister':
(.text+0x157821): undefined reference to `i2c_unregister_device'

Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
---
 drivers/media/video/v4l2-device.c |    2 ++
 1 file changed, 2 insertions(+)
  

Comments

Paul Mundt May 22, 2009, 5:48 a.m. UTC | #1
On Mon, May 11, 2009 at 09:37:41AM -0700, Randy Dunlap wrote:
> From: Randy Dunlap <randy.dunlap@oracle.com>
> 
> Build fails when CONFIG_I2C=n, so handle that case in the if block:
> 
> drivers/built-in.o: In function `v4l2_device_unregister':
> (.text+0x157821): undefined reference to `i2c_unregister_device'
> 
> Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>

This patch still has not been applied as far as I can tell, and builds
are still broken as a result, almost 2 weeks after the fact.

> ---
>  drivers/media/video/v4l2-device.c |    2 ++
>  1 file changed, 2 insertions(+)
> 
> --- linux-next-20090511.orig/drivers/media/video/v4l2-device.c
> +++ linux-next-20090511/drivers/media/video/v4l2-device.c
> @@ -85,6 +85,7 @@ void v4l2_device_unregister(struct v4l2_
>  	/* Unregister subdevs */
>  	list_for_each_entry_safe(sd, next, &v4l2_dev->subdevs, list) {
>  		v4l2_device_unregister_subdev(sd);
> +#if defined(CONFIG_I2C) || defined(CONFIG_I2C_MODULE)
>  		if (sd->flags & V4L2_SUBDEV_FL_IS_I2C) {
>  			struct i2c_client *client = v4l2_get_subdevdata(sd);
>  
> @@ -95,6 +96,7 @@ void v4l2_device_unregister(struct v4l2_
>  			if (client)
>  				i2c_unregister_device(client);
>  		}
> +#endif
>  	}
>  }
>  EXPORT_SYMBOL_GPL(v4l2_device_unregister);
> 
> 
> -- 
> ~Randy
> LPC 2009, Sept. 23-25, Portland, Oregon
> http://linuxplumbersconf.org/2009/
> --
> To unsubscribe from this list: send the line "unsubscribe linux-next" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
  
Stephen Rothwell May 22, 2009, 7:55 a.m. UTC | #2
On Fri, 22 May 2009 14:48:47 +0900 Paul Mundt <lethal@linux-sh.org> wrote:
>
> On Mon, May 11, 2009 at 09:37:41AM -0700, Randy Dunlap wrote:
> > From: Randy Dunlap <randy.dunlap@oracle.com>
> > 
> > Build fails when CONFIG_I2C=n, so handle that case in the if block:
> > 
> > drivers/built-in.o: In function `v4l2_device_unregister':
> > (.text+0x157821): undefined reference to `i2c_unregister_device'
> > 
> > Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
> 
> This patch still has not been applied as far as I can tell, and builds
> are still broken as a result, almost 2 weeks after the fact.

In fact there has been no updates to the v4l-dvb tree at all since
May 11.  Mauro?

I have reverted the patch that caused the build breakage ... (commit
d5bc7940d39649210f1affac1fa32f253cc45a81 "V4L/DVB (11673): v4l2-device:
unregister i2c_clients when unregistering the v4l2_device").

[By the way, an alternative fix might be to just define
V4L2_SUBDEV_FL_IS_I2C to be zero if CONFIG_I2C and CONFIG_I2C_MODULE are
not defined (gcc should then just elide the offending code).]
  
Randy Dunlap May 22, 2009, 3:57 p.m. UTC | #3
Stephen Rothwell wrote:
> On Fri, 22 May 2009 14:48:47 +0900 Paul Mundt <lethal@linux-sh.org> wrote:
>> On Mon, May 11, 2009 at 09:37:41AM -0700, Randy Dunlap wrote:
>>> From: Randy Dunlap <randy.dunlap@oracle.com>
>>>
>>> Build fails when CONFIG_I2C=n, so handle that case in the if block:
>>>
>>> drivers/built-in.o: In function `v4l2_device_unregister':
>>> (.text+0x157821): undefined reference to `i2c_unregister_device'
>>>
>>> Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
>> This patch still has not been applied as far as I can tell, and builds
>> are still broken as a result, almost 2 weeks after the fact.
> 
> In fact there has been no updates to the v4l-dvb tree at all since
> May 11.  Mauro?

I got an 'hg' autocommit message for the patch on May-11, but that's
all I've seen/heard about it.

I'm really concerned about how slowly patches are merged for
linux-next trees... and not just for drivers/media/


> I have reverted the patch that caused the build breakage ... (commit
> d5bc7940d39649210f1affac1fa32f253cc45a81 "V4L/DVB (11673): v4l2-device:
> unregister i2c_clients when unregistering the v4l2_device").
> 
> [By the way, an alternative fix might be to just define
> V4L2_SUBDEV_FL_IS_I2C to be zero if CONFIG_I2C and CONFIG_I2C_MODULE are
> not defined (gcc should then just elide the offending code).]
  
Mauro Carvalho Chehab May 26, 2009, 5:31 p.m. UTC | #4
Em Fri, 22 May 2009 17:55:54 +1000
Stephen Rothwell <sfr@canb.auug.org.au> escreveu:

> On Fri, 22 May 2009 14:48:47 +0900 Paul Mundt <lethal@linux-sh.org> wrote:
> >
> > On Mon, May 11, 2009 at 09:37:41AM -0700, Randy Dunlap wrote:
> > > From: Randy Dunlap <randy.dunlap@oracle.com>
> > > 
> > > Build fails when CONFIG_I2C=n, so handle that case in the if block:
> > > 
> > > drivers/built-in.o: In function `v4l2_device_unregister':
> > > (.text+0x157821): undefined reference to `i2c_unregister_device'
> > > 
> > > Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
> > 
> > This patch still has not been applied as far as I can tell, and builds
> > are still broken as a result, almost 2 weeks after the fact.
> 
> In fact there has been no updates to the v4l-dvb tree at all since
> May 11.  Mauro?

Sorry, this email were got by a wrong filtering rule here. Only today I
noticed it.

Anyway, the tree were updated yesterday, with Randy's patch. Sorry for the mess.
> 
> I have reverted the patch that caused the build breakage ... (commit
> d5bc7940d39649210f1affac1fa32f253cc45a81 "V4L/DVB (11673): v4l2-device:
> unregister i2c_clients when unregistering the v4l2_device").
> 
> [By the way, an alternative fix might be to just define
> V4L2_SUBDEV_FL_IS_I2C to be zero if CONFIG_I2C and CONFIG_I2C_MODULE are
> not defined (gcc should then just elide the offending code).]




Cheers,
Mauro
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
  

Patch

--- linux-next-20090511.orig/drivers/media/video/v4l2-device.c
+++ linux-next-20090511/drivers/media/video/v4l2-device.c
@@ -85,6 +85,7 @@  void v4l2_device_unregister(struct v4l2_
 	/* Unregister subdevs */
 	list_for_each_entry_safe(sd, next, &v4l2_dev->subdevs, list) {
 		v4l2_device_unregister_subdev(sd);
+#if defined(CONFIG_I2C) || defined(CONFIG_I2C_MODULE)
 		if (sd->flags & V4L2_SUBDEV_FL_IS_I2C) {
 			struct i2c_client *client = v4l2_get_subdevdata(sd);
 
@@ -95,6 +96,7 @@  void v4l2_device_unregister(struct v4l2_
 			if (client)
 				i2c_unregister_device(client);
 		}
+#endif
 	}
 }
 EXPORT_SYMBOL_GPL(v4l2_device_unregister);