Re: [PATCH 6/9] V4L: soc-camera: prepare hooks for Media Controller wrapper

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Guennadi,

Thanks for the patch. It's very nice to see you working on that :-)

I'm not a soc-camera expert, so my review is by no means extensive.

On Thursday 29 September 2011 18:18:54 Guennadi Liakhovetski wrote:

[snip]

> diff --git a/drivers/media/video/soc_camera.c
> b/drivers/media/video/soc_camera.c index 2905a88..790c14c 100644
> --- a/drivers/media/video/soc_camera.c
> +++ b/drivers/media/video/soc_camera.c

[snip]

> @@ -1361,9 +1402,11 @@ void soc_camera_host_unregister(struct
> soc_camera_host *ici) if (icd->iface == ici->nr &&
> to_soc_camera_control(icd))
>  			soc_camera_remove(icd);
> 
> -	mutex_unlock(&list_lock);
> +	soc_camera_mc_unregister(ici);
> 
>  	v4l2_device_unregister(&ici->v4l2_dev);
> +
> +	mutex_unlock(&list_lock);
>  }
>  EXPORT_SYMBOL(soc_camera_host_unregister);

Do soc_camera_mc_unregister() and v4l2_device_unregister() need to be 
protected by the mutex ?

> @@ -1443,7 +1486,6 @@ static int video_dev_create(struct soc_camera_device
> *icd)
> 
>  	strlcpy(vdev->name, ici->drv_name, sizeof(vdev->name));
> 
> -	vdev->parent		= icd->pdev;
>  	vdev->current_norm	= V4L2_STD_UNKNOWN;
>  	vdev->fops		= &soc_camera_fops;
>  	vdev->ioctl_ops		= &soc_camera_ioctl_ops;
> @@ -1451,6 +1493,8 @@ static int video_dev_create(struct soc_camera_device
> *icd) vdev->tvnorms		= V4L2_STD_UNKNOWN;
>  	vdev->ctrl_handler	= &icd->ctrl_handler;
>  	vdev->lock		= &icd->video_lock;
> +	vdev->v4l2_dev		= &ici->v4l2_dev;
> +	video_set_drvdata(vdev, icd);
> 
>  	icd->vdev = vdev;

This is an important change, maybe you can move it to a patch of its own.

> diff --git a/include/media/soc_camera.h b/include/media/soc_camera.h
> index d60bad4..0a21ff1 100644
> --- a/include/media/soc_camera.h
> +++ b/include/media/soc_camera.h

[snip]

> @@ -63,6 +65,18 @@ struct soc_camera_host {
>  	void *priv;
>  	const char *drv_name;
>  	struct soc_camera_host_ops *ops;
> +#if defined(CONFIG_MEDIA_CONTROLLER)
> +	struct media_device mdev;
> +	struct v4l2_subdev bus_sd;
> +	struct media_pad bus_pads[2];
> +	struct media_pad vdev_pads[1];
> +#endif

Those fields are not used in this patch. Don't they belong to the next one ?

> +};
> +
> +enum soc_camera_target {
> +	SOCAM_TARGET_PIPELINE,
> +	SOCAM_TARGET_HOST_IN,
> +	SOCAM_TARGET_HOST_OUT,
>  };
> 
>  struct soc_camera_host_ops {

[snip]

> diff --git a/include/media/soc_entity.h b/include/media/soc_entity.h
> new file mode 100644
> index 0000000..e461f5e
> --- /dev/null
> +++ b/include/media/soc_entity.h
> @@ -0,0 +1,19 @@
> +/*
> + * soc-camera Media Controller wrapper
> + *
> + * Copyright (C) 2011, Guennadi Liakhovetski <g.liakhovetski@xxxxxx>
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License version 2 as
> + * published by the Free Software Foundation.
> + */
> +
> +#ifndef SOC_ENTITY_H
> +#define SOC_ENTITY_H
> +
> +#define soc_camera_mc_install(x) 0
> +#define soc_camera_mc_free(x) do {} while (0)
> +#define soc_camera_mc_register(x) do {} while (0)
> +#define soc_camera_mc_unregister(x) do {} while (0)

Doesn't this (and the corresponding changes to 
drivers/media/video/soc_camera.c) belong to the next patch ?

> +
> +#endif

-- 
Regards,

Laurent Pinchart
--
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


[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux