1 /* SPDX-License-Identifier: GPL-2.0 */
3 * Support for Intel Camera Imaging ISP subsystem.
4 * Copyright (c) 2015, Intel Corporation.
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms and conditions of the GNU General Public License,
8 * version 2, as published by the Free Software Foundation.
10 * This program is distributed in the hope it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
16 #ifndef __IA_CSS_METADATA_H
17 #define __IA_CSS_METADATA_H
20 * This file contains structure for processing sensor metadata.
23 #include <type_support.h>
24 #include "ia_css_types.h"
25 #include "ia_css_stream_format.h"
27 /* Metadata configuration. This data structure contains necessary info
28 * to process sensor metadata.
30 struct ia_css_metadata_config {
31 enum atomisp_input_format data_type; /** Data type of CSI-2 embedded
32 data. The default value is ATOMISP_INPUT_FORMAT_EMBEDDED. For
33 certain sensors, user can choose non-default data type for embedded
35 struct ia_css_resolution resolution; /** Resolution */
38 struct ia_css_metadata_info {
39 struct ia_css_resolution resolution; /** Resolution */
40 u32 stride; /** Stride in bytes */
41 u32 size; /** Total size in bytes */
44 struct ia_css_metadata {
45 struct ia_css_metadata_info info; /** Layout info */
46 ia_css_ptr address; /** CSS virtual address */
48 /** Exposure ID, see ia_css_event_public.h for more detail */
51 #define SIZE_OF_IA_CSS_METADATA_STRUCT sizeof(struct ia_css_metadata)
53 /* @brief Allocate a metadata buffer.
54 * @param[in] metadata_info Metadata info struct, contains details on metadata buffers.
55 * @return Pointer of metadata buffer or NULL (if error)
57 * This function allocates a metadata buffer according to the properties
58 * specified in the metadata_info struct.
60 struct ia_css_metadata *
61 ia_css_metadata_allocate(const struct ia_css_metadata_info *metadata_info);
63 /* @brief Free a metadata buffer.
65 * @param[in] metadata Pointer of metadata buffer.
68 * This function frees a metadata buffer.
71 ia_css_metadata_free(struct ia_css_metadata *metadata);
73 #endif /* __IA_CSS_METADATA_H */