From: Gjorgji Rosikopulos Date: Wed, 13 Jan 2016 19:52:37 +0000 (+0200) Subject: greybus: camera: HACK: Export GB camera interface X-Git-Tag: v4.14-rc1~2366^2~378^2~21^2~836 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=fc0ddf5adbc2636365b1f8c3c21cd3adf0a8c252;p=platform%2Fkernel%2Flinux-rpi.git greybus: camera: HACK: Export GB camera interface Gb camera need to communicate with HOST driver. as temporary solution there will be shared header between gb camera HOST camera. Both need to be in sync since gb drivers are compiled out of the kernel tree. Gb camera register camera operation functions when is created. Currently unregister is not supported. Signed-off-by: Gjorgji Rosikopulos Acked-by: Laurent Pinchart Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/greybus/gb-camera.h b/drivers/staging/greybus/gb-camera.h new file mode 100644 index 0000000..a182474 --- /dev/null +++ b/drivers/staging/greybus/gb-camera.h @@ -0,0 +1,37 @@ +/* + * Greybus Camera protocol driver. + * + * Copyright 2015 Google Inc. + * + * Released under the GPLv2 only. + */ +#ifndef __GB_CAMERA_H +#define __GB_CAMERA_H + +#include + +struct gb_camera_stream { + unsigned int width; + unsigned int height; + enum v4l2_mbus_pixelcode pixel_code; + unsigned int vc; + unsigned int dt[2]; + unsigned int max_size; +}; + +struct gb_camera_ops { + ssize_t (*capabilities)(void *priv, char *buf, size_t len); + int (*configure_streams)(void *priv, unsigned int nstreams, + struct gb_camera_stream *streams); + int (*capture)(void *priv, u32 request_id, + unsigned int streams, unsigned int num_frames, + size_t settings_size, const void *settings); + int (*flush)(void *priv, u32 *request_id); +}; + +#define gb_camera_call(f, p, op, args...) \ + (((f)->op) ? (f)->op(p, ##args) : -ENOIOCTLCMD) + +int gb_camera_register(struct gb_camera_ops *ops, void *priv); + +#endif /* __GB_CAMERA_H */