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