[PATCH v5 04/10] V4L: Add driver for s5k6a3 image sensor

Baruch Siach baruch at tkos.co.il
Tue Feb 25 04:55:15 EST 2014


Hi Sylwester,

On Tue, Feb 25, 2014 at 10:46:58AM +0100, Sylwester Nawrocki wrote:
> On 24/02/14 20:38, Baruch Siach wrote:
> > On Mon, Feb 24, 2014 at 06:35:16PM +0100, Sylwester Nawrocki wrote:
> >> > This patch adds subdev driver for Samsung S5K6A3 raw image sensor.
> >> > As it is intended at the moment to be used only with the Exynos
> >> > FIMC-IS (camera ISP) subsystem it is pretty minimal subdev driver.
> >> > It doesn't do any I2C communication since the sensor is controlled
> >> > by the ISP and its own firmware.
> >> > This driver, if needed, can be updated in future into a regular
> >> > subdev driver where the main CPU communicates with the sensor
> >> > directly.
> >> > 
> >> > Signed-off-by: Sylwester Nawrocki <s.nawrocki at samsung.com>
> >> > Acked-by: Kyungmin Park <kyungmin.park at samsung.com>
> >
> > [...]
> > 
> >> > +static int s5k6a3_open(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh)
> >> > +{
> >> > +	struct v4l2_mbus_framefmt *format = v4l2_subdev_get_try_format(fh, 0);
> >> > +
> >> > +	*format		= s5k6a3_formats[0];
> >> > +	format->width	= S5K6A3_DEFAULT_WIDTH;
> >> > +	format->height	= S5K6A3_DEFAULT_HEIGHT;
> >> > +
> >> > +	return 0;
> >> > +}
> >> > +
> >> > +static const struct v4l2_subdev_internal_ops s5k6a3_sd_internal_ops = {
> >> > +	.open = s5k6a3_open,
> >> > +};
> >
> > Where is this used?
> 
> This will be called when user process opens the corresponding /dev/v4l-subdev*
> device node. More details on the v4l2 sub-device interface can be found at [1],
> [2]. The device node is created by an aggregate media device driver, once all
> required sub-devices are registered to it.
> The above v4l2_subdev_internal_ops::open() implementation is pretty simple,
> it just sets V4L2_SUBDEV_FORMAT_TRY format to some initial default value.
> That's a per file handle value, so each process opening a set of sub-devices
> can try pipeline configuration independently. 
> 
> [1] http://linuxtv.org/downloads/v4l-dvb-apis/subdev.html
> [2] http://linuxtv.org/downloads/v4l-dvb-apis/vidioc-subdev-g-fmt.html

Thanks for the explanation. However, I've found no reference to the 
s5k6a3_sd_internal_ops struct in the driver code. There surly has to be at 
least one reference for the upper layer to access these ops.

baruch

-- 
     http://baruch.siach.name/blog/                  ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -



More information about the linux-arm-kernel mailing list