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