From patchwork Mon Dec 5 19:56:46 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sylwester Nawrocki X-Patchwork-Id: 8722 Received: from mail.tu-berlin.de ([130.149.7.33]) by www.linuxtv.org with esmtp (Exim 4.72) (envelope-from ) id 1RXef1-0000j2-R3; Mon, 05 Dec 2011 20:57:12 +0100 X-tubIT-Incoming-IP: 209.132.180.67 Received: from vger.kernel.org ([209.132.180.67]) by mail.tu-berlin.de (exim-4.75/mailfrontend-4) with esmtp id 1RXef1-0004Gn-9u; Mon, 05 Dec 2011 20:57:11 +0100 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932452Ab1LET5I (ORCPT + 4 others); Mon, 5 Dec 2011 14:57:08 -0500 Received: from mail-bw0-f46.google.com ([209.85.214.46]:44839 "EHLO mail-bw0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932269Ab1LET5H (ORCPT ); Mon, 5 Dec 2011 14:57:07 -0500 Received: by bkbzv3 with SMTP id zv3so2288326bkb.19 for ; Mon, 05 Dec 2011 11:57:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=from:to:cc:subject:date:message-id:x-mailer; bh=bfB1OcLs07TIIQYx4+uAhTIf8GylERy9gfLabkWsoYc=; b=Ff2cKdxXcxfoK91cQ2J/MasV8qf7bqI5Tv22k6Jox3IAqbrGVD+UXFytNkAUWEMqKF YG8AMkKDzgjck5YjqM2l65bi5PMuo1aEFImqmkH5qoC53gZgC6anzTw8mIpcepd2GMDd 39OLzMsVGaTxfLkx889yzbpe8YfaMVvLHq6+U= Received: by 10.180.7.161 with SMTP id k1mr14516521wia.23.1323115025325; Mon, 05 Dec 2011 11:57:05 -0800 (PST) Received: from localhost.localdomain (84-dzi-26.acn.waw.pl. [85.222.29.84]) by mx.google.com with ESMTPS id w8sm11307593wiz.4.2011.12.05.11.57.00 (version=TLSv1/SSLv3 cipher=OTHER); Mon, 05 Dec 2011 11:57:03 -0800 (PST) From: Sylwester Nawrocki To: linux-media@vger.kernel.org Cc: laurent.pinchart@ideasonboard.com, sakari.ailus@iki.fi, hverkuil@xs3all.nl, riverful.kim@samsung.com, s.nawrocki@samsung.com, Sylwester Nawrocki Subject: [RFC/PATCH] v4l: Add V4L2_CID_FLASH_HW_STROBE_MODE control Date: Mon, 5 Dec 2011 20:56:46 +0100 Message-Id: <1323115006-4385-1-git-send-email-snjw23@gmail.com> X-Mailer: git-send-email 1.7.4.1 Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org X-PMX-Version: 5.6.1.2065439, Antispam-Engine: 2.7.2.376379, Antispam-Data: 2011.12.5.194814 X-PMX-Spam: Gauge=IIIIIIII, Probability=8%, Report=' FORGED_FROM_GMAIL 0.1, MULTIPLE_RCPTS 0.1, BODY_SIZE_4000_4999 0, BODY_SIZE_5000_LESS 0, BODY_SIZE_7000_LESS 0, __ANY_URI 0, __CP_MEDIA_BODY 0, __CP_URI_IN_BODY 0, __FRAUD_BODY_WEBMAIL 0, __FRAUD_WEBMAIL 0, __FRAUD_WEBMAIL_FROM 0, __FROM_GMAIL 0, __HAS_MSGID 0, __HAS_X_MAILER 0, __HAS_X_MAILING_LIST 0, __MIME_TEXT_ONLY 0, __MULTIPLE_RCPTS_CC_X2 0, __PHISH_SPEAR_STRUCTURE_1 0, __SANE_MSGID 0, __SUBJ_ALPHA_END 0, __TO_MALFORMED_2 0, __TO_NO_NAME 0, __URI_NO_WWW 0, __URI_NS ' X-LSpam-Score: -6.9 (------) X-LSpam-Report: No, score=-6.9 required=5.0 tests=BAYES_00=-1.9, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_HI=-5, T_DKIM_INVALID=0.01 autolearn=ham The V4L2_CID_FLASH_HW_STROBE_MODE mode control is intended for devices that are source of an external flash strobe for flash devices. This part seems to be missing in current Flash control class, i.e. a means for configuring devices that are not camera flash drivers but involve a flash related functionality. The V4L2_CID_FLASH_HW_STROBE_MODE control enables the user to determine the flash control behavior, for instance, at an image sensor device. The control has effect only when V4L2_CID_FLASH_STROBE_SOURCE control is set to V4L2_FLASH_STROBE_SOURCE_EXTERNAL at a flash subdev, if a flash subdev is present in the system. Signed-off-by: Sylwester Nawrocki --- Hi Sakari, My apologies for not bringing this earlier when you were designing the Flash control API. It seems like a use case were a sensor controller drives a strobe signal for a Flash and the sensor side requires some set up doesn't quite fit in the Flash Control API. Or is there already a control allowing to set Flash strobe mode at the sensor to: OFF, ON (per each exposed frame), AUTO ? -- Regards, Sylwester --- Documentation/DocBook/media/v4l/controls.xml | 30 ++++++++++++++++++++++++++ drivers/media/video/v4l2-ctrls.c | 2 + include/linux/videodev2.h | 7 ++++++ 3 files changed, 39 insertions(+), 0 deletions(-) -- 1.7.4.1 -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/Documentation/DocBook/media/v4l/controls.xml b/Documentation/DocBook/media/v4l/controls.xml index 48a0434..1745187 100644 --- a/Documentation/DocBook/media/v4l/controls.xml +++ b/Documentation/DocBook/media/v4l/controls.xml @@ -3462,6 +3462,36 @@ interface and may change in the future. after strobe during which another strobe will not be possible. This is a read-only control. + + V4L2_CID_FLASH_HW_STROBE_MODE + menu + + + Determines the mode of hardware flash strobe + at the device external to a flash controller, e.g. image sensor. This + control has effect only when V4L2_CID_FLASH_STROBE_SOURCE + is set to V4L2_FLASH_STROBE_SOURCE_EXTERNAL + at the flash controller. + + + + + + + V4L2_FLASH_HW_STROBE_MODE_OFF + Flash strobe disabled. + + + V4L2_FLASH_HW_STROBE_MODE_ON + Flash strobe enabled for each exposed frame. + + + V4L2_FLASH_HW_STROBE_MODE_AUTO + Flash strobe determined automatically. + + + + diff --git a/drivers/media/video/v4l2-ctrls.c b/drivers/media/video/v4l2-ctrls.c index 96ec73d..0d188e3 100644 --- a/drivers/media/video/v4l2-ctrls.c +++ b/drivers/media/video/v4l2-ctrls.c @@ -619,6 +619,7 @@ const char *v4l2_ctrl_get_name(u32 id) case V4L2_CID_FLASH_FAULT: return "Faults"; case V4L2_CID_FLASH_CHARGE: return "Charge"; case V4L2_CID_FLASH_READY: return "Ready to strobe"; + case V4L2_CID_FLASH_HW_STROBE_MODE: return "Hardware strobe mode"; default: return NULL; @@ -699,6 +700,7 @@ void v4l2_ctrl_fill(u32 id, const char **name, enum v4l2_ctrl_type *type, case V4L2_CID_TUNE_PREEMPHASIS: case V4L2_CID_FLASH_LED_MODE: case V4L2_CID_FLASH_STROBE_SOURCE: + case V4L2_CID_FLASH_HW_STROBE_MODE: case V4L2_CID_MPEG_VIDEO_HEADER_MODE: case V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE: case V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE: diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h index d43149c..7ffb47d 100644 --- a/include/linux/videodev2.h +++ b/include/linux/videodev2.h @@ -1705,6 +1705,13 @@ enum v4l2_flash_strobe_source { #define V4L2_CID_FLASH_CHARGE (V4L2_CID_FLASH_CLASS_BASE + 11) #define V4L2_CID_FLASH_READY (V4L2_CID_FLASH_CLASS_BASE + 12) +#define V4L2_CID_FLASH_HW_STROBE_MODE (V4L2_CID_FLASH_CLASS_BASE + 13) +enum v4l2_flash_hw_strobe_mode { + V4L2_FLASH_HW_STROBE_OFF, + V4L2_FLASH_HW_STROBE_ON, + V4L2_FLASH_HW_STROBE_AUTO, +}; + /* * T U N I N G */