From patchwork Thu Jul 29 16:06:48 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 115238 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter.kernel.org (8.14.4/8.14.3) with ESMTP id o6TG8lQE005669 for ; Thu, 29 Jul 2010 16:08:48 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757980Ab0G2QHp (ORCPT ); Thu, 29 Jul 2010 12:07:45 -0400 Received: from perceval.irobotique.be ([92.243.18.41]:36476 "EHLO perceval.irobotique.be" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757962Ab0G2QHM (ORCPT ); Thu, 29 Jul 2010 12:07:12 -0400 Received: from localhost.localdomain (unknown [91.178.154.203]) by perceval.irobotique.be (Postfix) with ESMTPSA id 38B3B36002; Thu, 29 Jul 2010 16:07:06 +0000 (UTC) From: Laurent Pinchart To: linux-media@vger.kernel.org Cc: sakari.ailus@maxwell.research.nokia.com Subject: [SAMPLE v3 04/12] v4l-subdev: Add pads operations Date: Thu, 29 Jul 2010 18:06:48 +0200 Message-Id: <1280419616-7658-16-git-send-email-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1280419616-7658-1-git-send-email-laurent.pinchart@ideasonboard.com> References: <1280419616-7658-1-git-send-email-laurent.pinchart@ideasonboard.com> Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.3 (demeter.kernel.org [140.211.167.41]); Thu, 29 Jul 2010 16:08:48 +0000 (UTC) diff --git a/include/media/v4l2-subdev.h b/include/media/v4l2-subdev.h index 01b4135..684ab60 100644 --- a/include/media/v4l2-subdev.h +++ b/include/media/v4l2-subdev.h @@ -41,6 +41,7 @@ struct v4l2_device; struct v4l2_event_subscription; struct v4l2_fh; struct v4l2_subdev; +struct v4l2_subdev_fh; struct tuner_setup; /* decode_vbi_line */ @@ -398,6 +399,25 @@ struct v4l2_subdev_ir_ops { struct v4l2_subdev_ir_parameters *params); }; +enum v4l2_subdev_format { + V4L2_SUBDEV_FORMAT_PROBE = 0, + V4L2_SUBDEV_FORMAT_ACTIVE = 1, +}; + +struct v4l2_subdev_pad_ops { + int (*enum_mbus_code)(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh, + struct v4l2_subdev_pad_mbus_code_enum *code); + int (*enum_frame_size)(struct v4l2_subdev *sd, + struct v4l2_subdev_fh *fh, + struct v4l2_subdev_frame_size_enum *fse); + int (*get_fmt)(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh, + unsigned int pad, struct v4l2_mbus_framefmt *fmt, + enum v4l2_subdev_format which); + int (*set_fmt)(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh, + unsigned int pad, struct v4l2_mbus_framefmt *fmt, + enum v4l2_subdev_format which); +}; + struct v4l2_subdev_ops { const struct v4l2_subdev_core_ops *core; const struct v4l2_subdev_tuner_ops *tuner; @@ -406,6 +426,7 @@ struct v4l2_subdev_ops { const struct v4l2_subdev_vbi_ops *vbi; const struct v4l2_subdev_ir_ops *ir; const struct v4l2_subdev_sensor_ops *sensor; + const struct v4l2_subdev_pad_ops *pad; }; #define V4L2_SUBDEV_NAME_SIZE 32