From 0a7000cc96ad26e01efc4b204d90ce3a9734ea06 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Niklas=20S=C3=B6derlund?= <niklas.soderlund@ragnatech.se>
Date: Tue, 3 Nov 2020 01:09:24 +0100
Subject: libcamera: ipa: ipu3: Add an IPA skeleton for the IPU3 pipeline
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Add an empty IPA skeleton for the IPU3 pipeline. The skeleton IPA
handles the flow of parameter and statistic buffers but does not read or
write anything in the buffers. It also allows the IPA to set sensor
controls but does not implement any logic to set optimal values and
instead sets the V4L2 exposure and gain controls to max and keeps them
at that setting.

This IPA is meant as a base to allow the pipeline handler to be wired up
to an IPA. The image algorithms can then later be added to the IPA
independently from also having to add plumbing to the pipeline handler.

Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
 include/libcamera/ipa/ipu3.h | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)
 create mode 100644 include/libcamera/ipa/ipu3.h

(limited to 'include')

diff --git a/include/libcamera/ipa/ipu3.h b/include/libcamera/ipa/ipu3.h
new file mode 100644
index 00000000..cbaaef04
--- /dev/null
+++ b/include/libcamera/ipa/ipu3.h
@@ -0,0 +1,23 @@
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+/*
+ * Copyright (C) 2020, Google Inc.
+ *
+ * ipu3.h - Image Processing Algorithm interface for IPU3
+ */
+#ifndef __LIBCAMERA_IPA_INTERFACE_IPU3_H__
+#define __LIBCAMERA_IPA_INTERFACE_IPU3_H__
+
+#ifndef __DOXYGEN__
+
+enum IPU3Operations {
+	IPU3_IPA_ACTION_SET_SENSOR_CONTROLS = 1,
+	IPU3_IPA_ACTION_PARAM_FILLED = 2,
+	IPU3_IPA_ACTION_METADATA_READY = 3,
+	IPU3_IPA_EVENT_PROCESS_CONTROLS = 4,
+	IPU3_IPA_EVENT_STAT_READY = 5,
+	IPU3_IPA_EVENT_FILL_PARAMS = 6,
+};
+
+#endif /* __DOXYGEN__ */
+
+#endif /* __LIBCAMERA_IPA_INTERFACE_IPU3_H__ */
-- 
cgit v1.2.1