1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun /* 3*4882a593Smuzhiyun * Copyright (C) STMicroelectronics SA 2015 4*4882a593Smuzhiyun * Author: Hugues Fruchet <hugues.fruchet@st.com> for STMicroelectronics. 5*4882a593Smuzhiyun */ 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun #ifndef DELTA_CFG_H 8*4882a593Smuzhiyun #define DELTA_CFG_H 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun #define DELTA_FW_VERSION "21.1-3" 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun #define DELTA_MIN_WIDTH 32 13*4882a593Smuzhiyun #define DELTA_MAX_WIDTH 4096 14*4882a593Smuzhiyun #define DELTA_MIN_HEIGHT 32 15*4882a593Smuzhiyun #define DELTA_MAX_HEIGHT 2400 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun /* DELTA requires a 32x32 pixels alignment for frames */ 18*4882a593Smuzhiyun #define DELTA_WIDTH_ALIGNMENT 32 19*4882a593Smuzhiyun #define DELTA_HEIGHT_ALIGNMENT 32 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun #define DELTA_DEFAULT_WIDTH DELTA_MIN_WIDTH 22*4882a593Smuzhiyun #define DELTA_DEFAULT_HEIGHT DELTA_MIN_HEIGHT 23*4882a593Smuzhiyun #define DELTA_DEFAULT_FRAMEFORMAT V4L2_PIX_FMT_NV12 24*4882a593Smuzhiyun #define DELTA_DEFAULT_STREAMFORMAT V4L2_PIX_FMT_MJPEG 25*4882a593Smuzhiyun 26*4882a593Smuzhiyun #define DELTA_MAX_RESO (DELTA_MAX_WIDTH * DELTA_MAX_HEIGHT) 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun /* guard value for number of access units */ 29*4882a593Smuzhiyun #define DELTA_MAX_AUS 10 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun /* IP perf dependent, can be tuned */ 32*4882a593Smuzhiyun #define DELTA_PEAK_FRAME_SMOOTHING 2 33*4882a593Smuzhiyun 34*4882a593Smuzhiyun /* 35*4882a593Smuzhiyun * guard output frame count: 36*4882a593Smuzhiyun * - at least 1 frame needed for display 37*4882a593Smuzhiyun * - at worst 21 38*4882a593Smuzhiyun * ( max h264 dpb (16) + 39*4882a593Smuzhiyun * decoding peak smoothing (2) + 40*4882a593Smuzhiyun * user display pipeline (3) ) 41*4882a593Smuzhiyun */ 42*4882a593Smuzhiyun #define DELTA_MIN_FRAME_USER 1 43*4882a593Smuzhiyun #define DELTA_MAX_DPB 16 44*4882a593Smuzhiyun #define DELTA_MAX_FRAME_USER 3 /* platform/use-case dependent */ 45*4882a593Smuzhiyun #define DELTA_MAX_FRAMES (DELTA_MAX_DPB + DELTA_PEAK_FRAME_SMOOTHING +\ 46*4882a593Smuzhiyun DELTA_MAX_FRAME_USER) 47*4882a593Smuzhiyun 48*4882a593Smuzhiyun #if DELTA_MAX_FRAMES > VIDEO_MAX_FRAME 49*4882a593Smuzhiyun #undef DELTA_MAX_FRAMES 50*4882a593Smuzhiyun #define DELTA_MAX_FRAMES (VIDEO_MAX_FRAME) 51*4882a593Smuzhiyun #endif 52*4882a593Smuzhiyun 53*4882a593Smuzhiyun /* extra space to be allocated to store codec specific data per frame */ 54*4882a593Smuzhiyun #define DELTA_MAX_FRAME_PRIV_SIZE 100 55*4882a593Smuzhiyun 56*4882a593Smuzhiyun /* PM runtime auto power-off after 5ms of inactivity */ 57*4882a593Smuzhiyun #define DELTA_HW_AUTOSUSPEND_DELAY_MS 5 58*4882a593Smuzhiyun 59*4882a593Smuzhiyun #define DELTA_MAX_DECODERS 10 60*4882a593Smuzhiyun #ifdef CONFIG_VIDEO_STI_DELTA_MJPEG 61*4882a593Smuzhiyun extern const struct delta_dec mjpegdec; 62*4882a593Smuzhiyun #endif 63*4882a593Smuzhiyun 64*4882a593Smuzhiyun #endif /* DELTA_CFG_H */ 65