[PATCH 10/14] media: soc-camera: support OF cameras

Sylwester Nawrocki sylvester.nawrocki at gmail.com
Sat Oct 6 05:11:36 EST 2012


On 09/27/2012 04:07 PM, Guennadi Liakhovetski wrote:
> With OF we aren't getting platform data any more. To minimise changes we
> create all the missing data ourselves, including compulsory struct
> soc_camera_link objects. Host-client linking is now done, based on the OF
> data. Media bus numbers also have to be assigned dynamically.
>
> Signed-off-by: Guennadi Liakhovetski<g.liakhovetski at gmx.de>
> ---
...
>   static int soc_camera_i2c_notify(struct notifier_block *nb,
>   				 unsigned long action, void *data)
>   {
> @@ -1203,13 +1434,20 @@ static int soc_camera_i2c_notify(struct notifier_block *nb,
>   	struct v4l2_subdev *subdev;
>   	int ret;
>
> -	if (client->addr != icl->board_info->addr ||
> -	    client->adapter->nr != icl->i2c_adapter_id)
> +	dev_dbg(dev, "%s(%lu): %x on %u\n", __func__, action,
> +		client->addr, client->adapter->nr);
> +
> +	if (!soc_camera_i2c_client_match(icl, client))
>   		return NOTIFY_DONE;
>
>   	switch (action) {
>   	case BUS_NOTIFY_BIND_DRIVER:
>   		client->dev.platform_data = icl;
> +		if (icl->of_link) {
> +			struct soc_camera_of_client *sofc = container_of(icl->of_link,
> +						struct soc_camera_of_client, of_link);
> +			soc_camera_of_i2c_ifill(sofc, client);
> +		}
>
>   		return NOTIFY_OK;
>   	case BUS_NOTIFY_BOUND_DRIVER:

There is no need for different handling of this event as well ?
Further, there is code like:

	adap = i2c_get_adapter(icl->i2c_adapter_id);

which is clearly not going to work in OF case. Could you clarify how
it is supposed to work ?

--

Thanks,
Sylwester


More information about the devicetree-discuss mailing list