On Sat, 6 Jun 2009, Hans Verkuil wrote: > On Saturday 06 June 2009 13:59:19 Hans Verkuil wrote: > > I propose to change the API as follows: > > > > #define V4L2_I2C_ADDRS(addr, addrs...) \ > > ((const unsigned short []){ addr, ## addrs, I2C_CLIENT_END }) > > > > struct v4l2_subdev *v4l2_i2c_new_subdev(struct v4l2_device *v4l2_dev, > > struct i2c_adapter *adapter, > > const char *module_name, const char *client_type, > > u8 addr, const unsigned short *addrs); > > > > struct v4l2_subdev *v4l2_i2c_new_subdev_cfg(struct v4l2_device *v4l2_dev, > > struct i2c_adapter *adapter, > > const char *module_name, const char *client_type, > > int irq, void *platform_data, > > u8 addr, const unsigned short *addrs); > > > > /* Only available for kernels >= 2.6.26 */ > > struct v4l2_subdev *v4l2_i2c_new_subdev_board(struct v4l2_device > > *v4l2_dev, struct i2c_adapter *adapter, const char *module_name, struct > > i2c_board_info *info, const unsigned short *addrs); Maybe "addrs" could be changed to something like "probed_addrs" so it's easier to tell that the two address fields are used differently? Is v4l2_i2c_new_subdev() in effect just a wrapper around v4l2_i2c_new_subdev_cfg() that calls it with NO_IRQ and NULL for irq and platform_data? And could v4l2_i2c_new_subdev_cfg() be done like this? struct v4l2_subdev *v4l2_i2c_new_subdev_cfg(struct v4l2_device *v4l2_dev, struct i2c_adapter *adapter, const char *module_name, const char *client_type, int irq, void *platform_data, u8 addr, const unsigned short *addrs) { struct i2c_board_info info = { .addr = addr, .platform_data = platform_data, .irq = irq, }; strlcpy(info.type, client_type, sizeof(info.type)); return v4l2_i2c_new_subdev_board(v4l2_dev, adapter, module_name, &info, addrs); } -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html