On Tue, 30 Mar 2010, Rodolfo Giometti wrote: > On Tue, Feb 23, 2010 at 12:19:13AM +0100, Richard Röjfors wrote: > > > > We use it as a subdev to a driver not yet committed from us. So I think > > you should extend it, not move it. > > Finally I got something functional... but I'm puzzled to know how I > can add platform data configuration struct by using the I2C's > platform_data pointer if it is already used to hold struct > soc_camera_device... O_o As usual, looking at existing examples helps, e.g., in ov772x: priv->info = icl->priv; i.e., icl->priv is where you pass subdevice-driver specific data with the soc-camera API. > In fact my probe function looks like: > > static __devinit int adv7180_probe(struct i2c_client *client, > const struct i2c_device_id *id) > { > struct adv7180_state *state; > struct soc_camera_device *icd = client->dev.platform_data; > struct soc_camera_link *icl; > struct v4l2_subdev *sd; > int ret; > > /* Check if the adapter supports the needed features */ > if (!i2c_check_functionality(client->adapter, > I2C_FUNC_SMBUS_BYTE_DATA)) > return -EIO; > > v4l_info(client, "chip found @ 0x%02x (%s)\n", > client->addr << 1, client->adapter->name); > > if (icd) { > icl = to_soc_camera_link(icd); > if (!icl) > return -EINVAL; > > icd->ops = &adv7180_soc_ops; > v4l_info(client, "soc-camera support enabled\n"); > } else > pdata = client->dev.platform_data; This is a complicated way to say pdata = NULL; Thanks Guennadi > > state = kzalloc(sizeof(struct adv7180_state), GFP_KERNEL); > if (state == NULL) { > ret = -ENOMEM; > goto err; > } > > state->irq = client->irq; > INIT_WORK(&state->work, adv7180_work); > mutex_init(&state->mutex); > state->autodetect = true; > sd = &state->sd; > v4l2_i2c_subdev_init(sd, client, &adv7180_ops); > ... > > Thanks in advance, > > Rodolfo > > -- > > GNU/Linux Solutions e-mail: giometti@xxxxxxxxxxxx > Linux Device Driver giometti@xxxxxxxx > Embedded Systems phone: +39 349 2432127 > UNIX programming skype: rodolfo.giometti > Freelance ICT Italia - Consulente ICT Italia - www.consulenti-ict.it > --- Guennadi Liakhovetski -- 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