1f5fbb83fSMauro Carvalho Chehab /* SPDX-License-Identifier: GPL-2.0 */ 29d4fa1a1SMauro Carvalho Chehab /* 39d4fa1a1SMauro Carvalho Chehab * Support for Intel Camera Imaging ISP subsystem. 49d4fa1a1SMauro Carvalho Chehab * Copyright (c) 2015, Intel Corporation. 59d4fa1a1SMauro Carvalho Chehab * 69d4fa1a1SMauro Carvalho Chehab * This program is free software; you can redistribute it and/or modify it 79d4fa1a1SMauro Carvalho Chehab * under the terms and conditions of the GNU General Public License, 89d4fa1a1SMauro Carvalho Chehab * version 2, as published by the Free Software Foundation. 99d4fa1a1SMauro Carvalho Chehab * 109d4fa1a1SMauro Carvalho Chehab * This program is distributed in the hope it will be useful, but WITHOUT 119d4fa1a1SMauro Carvalho Chehab * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 129d4fa1a1SMauro Carvalho Chehab * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 139d4fa1a1SMauro Carvalho Chehab * more details. 149d4fa1a1SMauro Carvalho Chehab */ 159d4fa1a1SMauro Carvalho Chehab 169d4fa1a1SMauro Carvalho Chehab #ifndef __IA_CSS_MIPI_H 179d4fa1a1SMauro Carvalho Chehab #define __IA_CSS_MIPI_H 189d4fa1a1SMauro Carvalho Chehab 199d4fa1a1SMauro Carvalho Chehab /* @file 209d4fa1a1SMauro Carvalho Chehab * This file contains MIPI support functionality 219d4fa1a1SMauro Carvalho Chehab */ 229d4fa1a1SMauro Carvalho Chehab 239d4fa1a1SMauro Carvalho Chehab #include <type_support.h> 249d4fa1a1SMauro Carvalho Chehab #include "ia_css_err.h" 259d4fa1a1SMauro Carvalho Chehab #include "ia_css_stream_format.h" 269d4fa1a1SMauro Carvalho Chehab #include "ia_css_input_port.h" 279d4fa1a1SMauro Carvalho Chehab 289d4fa1a1SMauro Carvalho Chehab /* @brief Register size of a CSS MIPI frame for check during capturing. 299d4fa1a1SMauro Carvalho Chehab * 309d4fa1a1SMauro Carvalho Chehab * @param[in] port CSI-2 port this check is registered. 319d4fa1a1SMauro Carvalho Chehab * @param[in] size_mem_words The frame size in memory words (32B). 329d4fa1a1SMauro Carvalho Chehab * @return Return the error in case of failure. E.g. MAX_NOF_ENTRIES REACHED 339d4fa1a1SMauro Carvalho Chehab * 349d4fa1a1SMauro Carvalho Chehab * Register size of a CSS MIPI frame to check during capturing. Up to 359d4fa1a1SMauro Carvalho Chehab * IA_CSS_MIPI_SIZE_CHECK_MAX_NOF_ENTRIES entries per port allowed. Entries are reset 369d4fa1a1SMauro Carvalho Chehab * when stream is stopped. 379d4fa1a1SMauro Carvalho Chehab * 389d4fa1a1SMauro Carvalho Chehab * 399d4fa1a1SMauro Carvalho Chehab */ 4041022d35SMauro Carvalho Chehab int 419d4fa1a1SMauro Carvalho Chehab ia_css_mipi_frame_enable_check_on_size(const enum mipi_port_id port, 429d4fa1a1SMauro Carvalho Chehab const unsigned int size_mem_words); 439d4fa1a1SMauro Carvalho Chehab 449d4fa1a1SMauro Carvalho Chehab /* @brief Calculate the size of a mipi frame. 459d4fa1a1SMauro Carvalho Chehab * 469d4fa1a1SMauro Carvalho Chehab * @param[in] width The width (in pixels) of the frame. 479d4fa1a1SMauro Carvalho Chehab * @param[in] height The height (in lines) of the frame. 489d4fa1a1SMauro Carvalho Chehab * @param[in] format The frame (MIPI) format. 499d4fa1a1SMauro Carvalho Chehab * @param[in] hasSOLandEOL Whether frame (MIPI) contains (optional) SOL and EOF packets. 509d4fa1a1SMauro Carvalho Chehab * @param[in] embedded_data_size_words Embedded data size in memory words. 519d4fa1a1SMauro Carvalho Chehab * @param size_mem_words The mipi frame size in memory words (32B). 529d4fa1a1SMauro Carvalho Chehab * @return The error code. 539d4fa1a1SMauro Carvalho Chehab * 549d4fa1a1SMauro Carvalho Chehab * Calculate the size of a mipi frame, based on the resolution and format. 559d4fa1a1SMauro Carvalho Chehab */ 5641022d35SMauro Carvalho Chehab int 579d4fa1a1SMauro Carvalho Chehab ia_css_mipi_frame_calculate_size(const unsigned int width, 589d4fa1a1SMauro Carvalho Chehab const unsigned int height, 599d4fa1a1SMauro Carvalho Chehab const enum atomisp_input_format format, 609d4fa1a1SMauro Carvalho Chehab const bool hasSOLandEOL, 619d4fa1a1SMauro Carvalho Chehab const unsigned int embedded_data_size_words, 629d4fa1a1SMauro Carvalho Chehab unsigned int *size_mem_words); 639d4fa1a1SMauro Carvalho Chehab 649d4fa1a1SMauro Carvalho Chehab #endif /* __IA_CSS_MIPI_H */ 65