xref: /OK3568_Linux_fs/kernel/drivers/video/rockchip/rga3/rga_hw_config.c (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun // SPDX-License-Identifier: GPL-2.0
2*4882a593Smuzhiyun /*
3*4882a593Smuzhiyun  * Copyright (C) Rockchip Electronics Co., Ltd.
4*4882a593Smuzhiyun  *
5*4882a593Smuzhiyun  * Author:
6*4882a593Smuzhiyun  *	Huang Lee <Putin.li@rock-chips.com>
7*4882a593Smuzhiyun  */
8*4882a593Smuzhiyun 
9*4882a593Smuzhiyun #include "rga_hw_config.h"
10*4882a593Smuzhiyun 
11*4882a593Smuzhiyun /* RGA 1Word = 4Byte */
12*4882a593Smuzhiyun #define WORD_TO_BYTE(w) ((w) * 4)
13*4882a593Smuzhiyun 
14*4882a593Smuzhiyun const uint32_t rga3_input_raster_format[] = {
15*4882a593Smuzhiyun 	RGA_FORMAT_RGBA_8888,
16*4882a593Smuzhiyun 	RGA_FORMAT_BGRA_8888,
17*4882a593Smuzhiyun 	RGA_FORMAT_RGB_888,
18*4882a593Smuzhiyun 	RGA_FORMAT_BGR_888,
19*4882a593Smuzhiyun 	RGA_FORMAT_RGB_565,
20*4882a593Smuzhiyun 	RGA_FORMAT_BGR_565,
21*4882a593Smuzhiyun 	RGA_FORMAT_YCbCr_422_SP,
22*4882a593Smuzhiyun 	RGA_FORMAT_YCbCr_420_SP,
23*4882a593Smuzhiyun 	RGA_FORMAT_YCrCb_422_SP,
24*4882a593Smuzhiyun 	RGA_FORMAT_YCrCb_420_SP,
25*4882a593Smuzhiyun 	RGA_FORMAT_YVYU_422,
26*4882a593Smuzhiyun 	RGA_FORMAT_VYUY_422,
27*4882a593Smuzhiyun 	RGA_FORMAT_YUYV_422,
28*4882a593Smuzhiyun 	RGA_FORMAT_UYVY_422,
29*4882a593Smuzhiyun 	RGA_FORMAT_YCbCr_420_SP_10B,
30*4882a593Smuzhiyun 	RGA_FORMAT_YCrCb_420_SP_10B,
31*4882a593Smuzhiyun 	RGA_FORMAT_YCbCr_422_SP_10B,
32*4882a593Smuzhiyun 	RGA_FORMAT_YCrCb_422_SP_10B,
33*4882a593Smuzhiyun 	RGA_FORMAT_ARGB_8888,
34*4882a593Smuzhiyun 	RGA_FORMAT_ABGR_8888,
35*4882a593Smuzhiyun };
36*4882a593Smuzhiyun 
37*4882a593Smuzhiyun const uint32_t rga3_output_raster_format[] = {
38*4882a593Smuzhiyun 	RGA_FORMAT_RGBA_8888,
39*4882a593Smuzhiyun 	RGA_FORMAT_BGRA_8888,
40*4882a593Smuzhiyun 	RGA_FORMAT_RGB_888,
41*4882a593Smuzhiyun 	RGA_FORMAT_BGR_888,
42*4882a593Smuzhiyun 	RGA_FORMAT_RGB_565,
43*4882a593Smuzhiyun 	RGA_FORMAT_BGR_565,
44*4882a593Smuzhiyun 	RGA_FORMAT_YCbCr_422_SP,
45*4882a593Smuzhiyun 	RGA_FORMAT_YCbCr_420_SP,
46*4882a593Smuzhiyun 	RGA_FORMAT_YCrCb_422_SP,
47*4882a593Smuzhiyun 	RGA_FORMAT_YCrCb_420_SP,
48*4882a593Smuzhiyun 	RGA_FORMAT_YVYU_422,
49*4882a593Smuzhiyun 	RGA_FORMAT_VYUY_422,
50*4882a593Smuzhiyun 	RGA_FORMAT_YUYV_422,
51*4882a593Smuzhiyun 	RGA_FORMAT_UYVY_422,
52*4882a593Smuzhiyun 	RGA_FORMAT_YCbCr_420_SP_10B,
53*4882a593Smuzhiyun 	RGA_FORMAT_YCrCb_420_SP_10B,
54*4882a593Smuzhiyun 	RGA_FORMAT_YCbCr_422_SP_10B,
55*4882a593Smuzhiyun 	RGA_FORMAT_YCrCb_422_SP_10B,
56*4882a593Smuzhiyun };
57*4882a593Smuzhiyun 
58*4882a593Smuzhiyun const uint32_t rga3_fbcd_format[] = {
59*4882a593Smuzhiyun 	RGA_FORMAT_RGBA_8888,
60*4882a593Smuzhiyun 	RGA_FORMAT_BGRA_8888,
61*4882a593Smuzhiyun 	RGA_FORMAT_RGB_888,
62*4882a593Smuzhiyun 	RGA_FORMAT_BGR_888,
63*4882a593Smuzhiyun 	RGA_FORMAT_RGB_565,
64*4882a593Smuzhiyun 	RGA_FORMAT_BGR_565,
65*4882a593Smuzhiyun 	RGA_FORMAT_YCbCr_422_SP,
66*4882a593Smuzhiyun 	RGA_FORMAT_YCbCr_420_SP,
67*4882a593Smuzhiyun 	RGA_FORMAT_YCrCb_422_SP,
68*4882a593Smuzhiyun 	RGA_FORMAT_YCrCb_420_SP,
69*4882a593Smuzhiyun 	RGA_FORMAT_YCbCr_420_SP_10B,
70*4882a593Smuzhiyun 	RGA_FORMAT_YCrCb_420_SP_10B,
71*4882a593Smuzhiyun 	RGA_FORMAT_YCbCr_422_SP_10B,
72*4882a593Smuzhiyun 	RGA_FORMAT_YCrCb_422_SP_10B,
73*4882a593Smuzhiyun };
74*4882a593Smuzhiyun 
75*4882a593Smuzhiyun const uint32_t rga3_tile_format[] = {
76*4882a593Smuzhiyun 	RGA_FORMAT_YCbCr_422_SP,
77*4882a593Smuzhiyun 	RGA_FORMAT_YCbCr_420_SP,
78*4882a593Smuzhiyun 	RGA_FORMAT_YCrCb_422_SP,
79*4882a593Smuzhiyun 	RGA_FORMAT_YCrCb_420_SP,
80*4882a593Smuzhiyun 	RGA_FORMAT_YCbCr_420_SP_10B,
81*4882a593Smuzhiyun 	RGA_FORMAT_YCrCb_420_SP_10B,
82*4882a593Smuzhiyun 	RGA_FORMAT_YCbCr_422_SP_10B,
83*4882a593Smuzhiyun 	RGA_FORMAT_YCrCb_422_SP_10B,
84*4882a593Smuzhiyun };
85*4882a593Smuzhiyun 
86*4882a593Smuzhiyun const uint32_t rga2e_input_raster_format[] = {
87*4882a593Smuzhiyun 	RGA_FORMAT_RGBA_8888,
88*4882a593Smuzhiyun 	RGA_FORMAT_RGBX_8888,
89*4882a593Smuzhiyun 	RGA_FORMAT_BGRA_8888,
90*4882a593Smuzhiyun 	RGA_FORMAT_BGRX_8888,
91*4882a593Smuzhiyun 	RGA_FORMAT_RGB_888,
92*4882a593Smuzhiyun 	RGA_FORMAT_BGR_888,
93*4882a593Smuzhiyun 	RGA_FORMAT_RGB_565,
94*4882a593Smuzhiyun 	RGA_FORMAT_BGR_565,
95*4882a593Smuzhiyun 	RGA_FORMAT_YCbCr_422_P,
96*4882a593Smuzhiyun 	RGA_FORMAT_YCbCr_420_P,
97*4882a593Smuzhiyun 	RGA_FORMAT_YCrCb_422_P,
98*4882a593Smuzhiyun 	RGA_FORMAT_YCrCb_420_P,
99*4882a593Smuzhiyun 	RGA_FORMAT_YCbCr_422_SP,
100*4882a593Smuzhiyun 	RGA_FORMAT_YCbCr_420_SP,
101*4882a593Smuzhiyun 	RGA_FORMAT_YCrCb_422_SP,
102*4882a593Smuzhiyun 	RGA_FORMAT_YCrCb_420_SP,
103*4882a593Smuzhiyun 	RGA_FORMAT_YVYU_422,
104*4882a593Smuzhiyun 	RGA_FORMAT_VYUY_422,
105*4882a593Smuzhiyun 	RGA_FORMAT_YUYV_422,
106*4882a593Smuzhiyun 	RGA_FORMAT_UYVY_422,
107*4882a593Smuzhiyun 	RGA_FORMAT_YCbCr_420_SP_10B,
108*4882a593Smuzhiyun 	RGA_FORMAT_YCrCb_420_SP_10B,
109*4882a593Smuzhiyun 	RGA_FORMAT_YCbCr_422_SP_10B,
110*4882a593Smuzhiyun 	RGA_FORMAT_YCrCb_422_SP_10B,
111*4882a593Smuzhiyun 	RGA_FORMAT_YCbCr_400,
112*4882a593Smuzhiyun 	RGA_FORMAT_RGBA_5551,
113*4882a593Smuzhiyun 	RGA_FORMAT_BGRA_5551,
114*4882a593Smuzhiyun 	RGA_FORMAT_RGBA_4444,
115*4882a593Smuzhiyun 	RGA_FORMAT_BGRA_4444,
116*4882a593Smuzhiyun 	RGA_FORMAT_XRGB_8888,
117*4882a593Smuzhiyun 	RGA_FORMAT_XBGR_8888,
118*4882a593Smuzhiyun 	RGA_FORMAT_BPP1,
119*4882a593Smuzhiyun 	RGA_FORMAT_BPP2,
120*4882a593Smuzhiyun 	RGA_FORMAT_BPP4,
121*4882a593Smuzhiyun 	RGA_FORMAT_BPP8,
122*4882a593Smuzhiyun 	RGA_FORMAT_ARGB_8888,
123*4882a593Smuzhiyun 	RGA_FORMAT_ARGB_5551,
124*4882a593Smuzhiyun 	RGA_FORMAT_ARGB_4444,
125*4882a593Smuzhiyun 	RGA_FORMAT_ABGR_8888,
126*4882a593Smuzhiyun 	RGA_FORMAT_ABGR_5551,
127*4882a593Smuzhiyun 	RGA_FORMAT_ABGR_4444,
128*4882a593Smuzhiyun };
129*4882a593Smuzhiyun 
130*4882a593Smuzhiyun const uint32_t rga2e_output_raster_format[] = {
131*4882a593Smuzhiyun 	RGA_FORMAT_RGBA_8888,
132*4882a593Smuzhiyun 	RGA_FORMAT_RGBX_8888,
133*4882a593Smuzhiyun 	RGA_FORMAT_BGRA_8888,
134*4882a593Smuzhiyun 	RGA_FORMAT_BGRX_8888,
135*4882a593Smuzhiyun 	RGA_FORMAT_RGB_888,
136*4882a593Smuzhiyun 	RGA_FORMAT_BGR_888,
137*4882a593Smuzhiyun 	RGA_FORMAT_RGB_565,
138*4882a593Smuzhiyun 	RGA_FORMAT_BGR_565,
139*4882a593Smuzhiyun 	RGA_FORMAT_YCbCr_422_P,
140*4882a593Smuzhiyun 	RGA_FORMAT_YCbCr_420_P,
141*4882a593Smuzhiyun 	RGA_FORMAT_YCrCb_422_P,
142*4882a593Smuzhiyun 	RGA_FORMAT_YCrCb_420_P,
143*4882a593Smuzhiyun 	RGA_FORMAT_YCbCr_422_SP,
144*4882a593Smuzhiyun 	RGA_FORMAT_YCbCr_420_SP,
145*4882a593Smuzhiyun 	RGA_FORMAT_YCrCb_422_SP,
146*4882a593Smuzhiyun 	RGA_FORMAT_YCrCb_420_SP,
147*4882a593Smuzhiyun 	RGA_FORMAT_YVYU_420,
148*4882a593Smuzhiyun 	RGA_FORMAT_VYUY_420,
149*4882a593Smuzhiyun 	RGA_FORMAT_YUYV_420,
150*4882a593Smuzhiyun 	RGA_FORMAT_UYVY_420,
151*4882a593Smuzhiyun 	RGA_FORMAT_YVYU_422,
152*4882a593Smuzhiyun 	RGA_FORMAT_VYUY_422,
153*4882a593Smuzhiyun 	RGA_FORMAT_YUYV_422,
154*4882a593Smuzhiyun 	RGA_FORMAT_UYVY_422,
155*4882a593Smuzhiyun 	RGA_FORMAT_YCbCr_420_SP_10B,
156*4882a593Smuzhiyun 	RGA_FORMAT_YCrCb_420_SP_10B,
157*4882a593Smuzhiyun 	RGA_FORMAT_YCbCr_422_SP_10B,
158*4882a593Smuzhiyun 	RGA_FORMAT_YCrCb_422_SP_10B,
159*4882a593Smuzhiyun 	RGA_FORMAT_Y4,
160*4882a593Smuzhiyun 	RGA_FORMAT_YCbCr_400,
161*4882a593Smuzhiyun 	RGA_FORMAT_RGBA_5551,
162*4882a593Smuzhiyun 	RGA_FORMAT_BGRA_5551,
163*4882a593Smuzhiyun 	RGA_FORMAT_RGBA_4444,
164*4882a593Smuzhiyun 	RGA_FORMAT_BGRA_4444,
165*4882a593Smuzhiyun 	RGA_FORMAT_XRGB_8888,
166*4882a593Smuzhiyun 	RGA_FORMAT_XBGR_8888,
167*4882a593Smuzhiyun 	RGA_FORMAT_ARGB_8888,
168*4882a593Smuzhiyun 	RGA_FORMAT_ARGB_5551,
169*4882a593Smuzhiyun 	RGA_FORMAT_ARGB_4444,
170*4882a593Smuzhiyun 	RGA_FORMAT_ABGR_8888,
171*4882a593Smuzhiyun 	RGA_FORMAT_ABGR_5551,
172*4882a593Smuzhiyun 	RGA_FORMAT_ABGR_4444,
173*4882a593Smuzhiyun };
174*4882a593Smuzhiyun 
175*4882a593Smuzhiyun const struct rga_win_data rga3_win_data[] = {
176*4882a593Smuzhiyun 	{
177*4882a593Smuzhiyun 		.name = "rga3-win0",
178*4882a593Smuzhiyun 		.raster_formats = rga3_input_raster_format,
179*4882a593Smuzhiyun 		.num_of_raster_formats = ARRAY_SIZE(rga3_input_raster_format),
180*4882a593Smuzhiyun 		.fbc_formats = rga3_fbcd_format,
181*4882a593Smuzhiyun 		.num_of_fbc_formats = ARRAY_SIZE(rga3_fbcd_format),
182*4882a593Smuzhiyun 		.tile_formats = rga3_tile_format,
183*4882a593Smuzhiyun 		.num_of_tile_formats = ARRAY_SIZE(rga3_tile_format),
184*4882a593Smuzhiyun 		.supported_rotations = RGA_MODE_ROTATE_MASK,
185*4882a593Smuzhiyun 		.scale_up_mode = RGA_SCALE_UP_BIC,
186*4882a593Smuzhiyun 		.scale_down_mode = RGA_SCALE_DOWN_AVG,
187*4882a593Smuzhiyun 		.rd_mode = RGA_RASTER_MODE | RGA_FBC_MODE | RGA_TILE_MODE,
188*4882a593Smuzhiyun 
189*4882a593Smuzhiyun 	},
190*4882a593Smuzhiyun 
191*4882a593Smuzhiyun 	{
192*4882a593Smuzhiyun 		.name = "rga3-win1",
193*4882a593Smuzhiyun 		.raster_formats = rga3_input_raster_format,
194*4882a593Smuzhiyun 		.num_of_raster_formats = ARRAY_SIZE(rga3_input_raster_format),
195*4882a593Smuzhiyun 		.fbc_formats = rga3_fbcd_format,
196*4882a593Smuzhiyun 		.num_of_fbc_formats = ARRAY_SIZE(rga3_fbcd_format),
197*4882a593Smuzhiyun 		.tile_formats = rga3_tile_format,
198*4882a593Smuzhiyun 		.num_of_tile_formats = ARRAY_SIZE(rga3_tile_format),
199*4882a593Smuzhiyun 		.supported_rotations = RGA_MODE_ROTATE_MASK,
200*4882a593Smuzhiyun 		.scale_up_mode = RGA_SCALE_UP_BIC,
201*4882a593Smuzhiyun 		.scale_down_mode = RGA_SCALE_DOWN_AVG,
202*4882a593Smuzhiyun 		.rd_mode = RGA_RASTER_MODE | RGA_FBC_MODE | RGA_TILE_MODE,
203*4882a593Smuzhiyun 
204*4882a593Smuzhiyun 	},
205*4882a593Smuzhiyun 
206*4882a593Smuzhiyun 	{
207*4882a593Smuzhiyun 		.name = "rga3-wr",
208*4882a593Smuzhiyun 		.raster_formats = rga3_output_raster_format,
209*4882a593Smuzhiyun 		.num_of_raster_formats = ARRAY_SIZE(rga3_output_raster_format),
210*4882a593Smuzhiyun 		.fbc_formats = rga3_fbcd_format,
211*4882a593Smuzhiyun 		.num_of_fbc_formats = ARRAY_SIZE(rga3_fbcd_format),
212*4882a593Smuzhiyun 		.tile_formats = rga3_tile_format,
213*4882a593Smuzhiyun 		.num_of_tile_formats = ARRAY_SIZE(rga3_tile_format),
214*4882a593Smuzhiyun 		.supported_rotations = 0,
215*4882a593Smuzhiyun 		.scale_up_mode = RGA_SCALE_UP_NONE,
216*4882a593Smuzhiyun 		.scale_down_mode = RGA_SCALE_DOWN_NONE,
217*4882a593Smuzhiyun 		.rd_mode = RGA_RASTER_MODE | RGA_FBC_MODE | RGA_TILE_MODE,
218*4882a593Smuzhiyun 
219*4882a593Smuzhiyun 	},
220*4882a593Smuzhiyun };
221*4882a593Smuzhiyun 
222*4882a593Smuzhiyun const struct rga_win_data rga2e_win_data[] = {
223*4882a593Smuzhiyun 	{
224*4882a593Smuzhiyun 		.name = "rga2e-src0",
225*4882a593Smuzhiyun 		.raster_formats = rga2e_input_raster_format,
226*4882a593Smuzhiyun 		.num_of_raster_formats = ARRAY_SIZE(rga2e_input_raster_format),
227*4882a593Smuzhiyun 		.supported_rotations = RGA_MODE_ROTATE_MASK,
228*4882a593Smuzhiyun 		.scale_up_mode = RGA_SCALE_UP_BIC,
229*4882a593Smuzhiyun 		.scale_down_mode = RGA_SCALE_DOWN_AVG,
230*4882a593Smuzhiyun 		.rd_mode = RGA_RASTER_MODE,
231*4882a593Smuzhiyun 
232*4882a593Smuzhiyun 	},
233*4882a593Smuzhiyun 
234*4882a593Smuzhiyun 	{
235*4882a593Smuzhiyun 		.name = "rga2e-src1",
236*4882a593Smuzhiyun 		.raster_formats = rga2e_input_raster_format,
237*4882a593Smuzhiyun 		.num_of_raster_formats = ARRAY_SIZE(rga2e_input_raster_format),
238*4882a593Smuzhiyun 		.supported_rotations = RGA_MODE_ROTATE_MASK,
239*4882a593Smuzhiyun 		.scale_up_mode = RGA_SCALE_UP_BIC,
240*4882a593Smuzhiyun 		.scale_down_mode = RGA_SCALE_DOWN_AVG,
241*4882a593Smuzhiyun 		.rd_mode = RGA_RASTER_MODE,
242*4882a593Smuzhiyun 
243*4882a593Smuzhiyun 	},
244*4882a593Smuzhiyun 
245*4882a593Smuzhiyun 	{
246*4882a593Smuzhiyun 		.name = "rga2-dst",
247*4882a593Smuzhiyun 		.raster_formats = rga2e_output_raster_format,
248*4882a593Smuzhiyun 		.num_of_raster_formats = ARRAY_SIZE(rga2e_output_raster_format),
249*4882a593Smuzhiyun 		.supported_rotations = 0,
250*4882a593Smuzhiyun 		.scale_up_mode = RGA_SCALE_UP_NONE,
251*4882a593Smuzhiyun 		.scale_down_mode = RGA_SCALE_DOWN_NONE,
252*4882a593Smuzhiyun 		.rd_mode = RGA_RASTER_MODE,
253*4882a593Smuzhiyun 
254*4882a593Smuzhiyun 	},
255*4882a593Smuzhiyun };
256*4882a593Smuzhiyun 
257*4882a593Smuzhiyun const struct rga_hw_data rga3_data = {
258*4882a593Smuzhiyun 	.version = 0,
259*4882a593Smuzhiyun 	.input_range = {{68, 2}, {8176, 8176}},
260*4882a593Smuzhiyun 	.output_range = {{68, 2}, {8128, 8128}},
261*4882a593Smuzhiyun 
262*4882a593Smuzhiyun 	.win = rga3_win_data,
263*4882a593Smuzhiyun 	.win_size = ARRAY_SIZE(rga3_win_data),
264*4882a593Smuzhiyun 	/* 1 << factor mean real factor */
265*4882a593Smuzhiyun 	.max_upscale_factor = 3,
266*4882a593Smuzhiyun 	.max_downscale_factor = 3,
267*4882a593Smuzhiyun 
268*4882a593Smuzhiyun 	.byte_stride_align = 16,
269*4882a593Smuzhiyun 	.max_byte_stride = WORD_TO_BYTE(8192),
270*4882a593Smuzhiyun 
271*4882a593Smuzhiyun 	.feature = RGA_COLOR_KEY,
272*4882a593Smuzhiyun 	.csc_r2y_mode = RGA_MODE_CSC_BT601L | RGA_MODE_CSC_BT601F |
273*4882a593Smuzhiyun 			RGA_MODE_CSC_BT709 | RGA_MODE_CSC_BT2020,
274*4882a593Smuzhiyun 	.csc_y2r_mode = RGA_MODE_CSC_BT601L | RGA_MODE_CSC_BT601F |
275*4882a593Smuzhiyun 			RGA_MODE_CSC_BT709 | RGA_MODE_CSC_BT2020,
276*4882a593Smuzhiyun 	.mmu = RGA_IOMMU,
277*4882a593Smuzhiyun };
278*4882a593Smuzhiyun 
279*4882a593Smuzhiyun const struct rga_hw_data rga2e_data = {
280*4882a593Smuzhiyun 	.version = 0,
281*4882a593Smuzhiyun 	.input_range = {{2, 2}, {8192, 8192}},
282*4882a593Smuzhiyun 	.output_range = {{2, 2}, {4096, 4096}},
283*4882a593Smuzhiyun 
284*4882a593Smuzhiyun 	.win = rga2e_win_data,
285*4882a593Smuzhiyun 	.win_size = ARRAY_SIZE(rga2e_win_data),
286*4882a593Smuzhiyun 	/* 1 << factor mean real factor */
287*4882a593Smuzhiyun 	.max_upscale_factor = 4,
288*4882a593Smuzhiyun 	.max_downscale_factor = 4,
289*4882a593Smuzhiyun 
290*4882a593Smuzhiyun 	.byte_stride_align = 4,
291*4882a593Smuzhiyun 	.max_byte_stride = WORD_TO_BYTE(8192),
292*4882a593Smuzhiyun 
293*4882a593Smuzhiyun 	.feature = RGA_COLOR_FILL | RGA_COLOR_PALETTE |
294*4882a593Smuzhiyun 		   RGA_COLOR_KEY | RGA_ROP_CALCULATE |
295*4882a593Smuzhiyun 		   RGA_NN_QUANTIZE | RGA_DITHER,
296*4882a593Smuzhiyun 	.csc_r2y_mode = RGA_MODE_CSC_BT601L | RGA_MODE_CSC_BT601F |
297*4882a593Smuzhiyun 			RGA_MODE_CSC_BT709,
298*4882a593Smuzhiyun 	.csc_y2r_mode = RGA_MODE_CSC_BT601L | RGA_MODE_CSC_BT601F |
299*4882a593Smuzhiyun 			RGA_MODE_CSC_BT709,
300*4882a593Smuzhiyun 	.mmu = RGA_MMU,
301*4882a593Smuzhiyun };
302*4882a593Smuzhiyun 
303*4882a593Smuzhiyun const struct rga_hw_data rga2e_1106_data = {
304*4882a593Smuzhiyun 	.version = 0,
305*4882a593Smuzhiyun 	.input_range = {{2, 2}, {8192, 8192}},
306*4882a593Smuzhiyun 	.output_range = {{2, 2}, {4096, 4096}},
307*4882a593Smuzhiyun 
308*4882a593Smuzhiyun 	.win = rga2e_win_data,
309*4882a593Smuzhiyun 	.win_size = ARRAY_SIZE(rga2e_win_data),
310*4882a593Smuzhiyun 	/* 1 << factor mean real factor */
311*4882a593Smuzhiyun 	.max_upscale_factor = 4,
312*4882a593Smuzhiyun 	.max_downscale_factor = 4,
313*4882a593Smuzhiyun 
314*4882a593Smuzhiyun 	.byte_stride_align = 4,
315*4882a593Smuzhiyun 	.max_byte_stride = WORD_TO_BYTE(8192),
316*4882a593Smuzhiyun 
317*4882a593Smuzhiyun 	.feature = RGA_COLOR_FILL | RGA_COLOR_PALETTE |
318*4882a593Smuzhiyun 		   RGA_COLOR_KEY | RGA_ROP_CALCULATE |
319*4882a593Smuzhiyun 		   RGA_NN_QUANTIZE | RGA_DITHER | RGA_MOSAIC |
320*4882a593Smuzhiyun 		   RGA_YIN_YOUT | RGA_YUV_HDS | RGA_YUV_VDS |
321*4882a593Smuzhiyun 		   RGA_OSD | RGA_PRE_INTR,
322*4882a593Smuzhiyun 	.csc_r2y_mode = RGA_MODE_CSC_BT601L | RGA_MODE_CSC_BT601F |
323*4882a593Smuzhiyun 			RGA_MODE_CSC_BT709,
324*4882a593Smuzhiyun 	.csc_y2r_mode = RGA_MODE_CSC_BT601L | RGA_MODE_CSC_BT601F |
325*4882a593Smuzhiyun 			RGA_MODE_CSC_BT709,
326*4882a593Smuzhiyun 	.mmu = RGA_NONE_MMU,
327*4882a593Smuzhiyun };
328*4882a593Smuzhiyun 
329*4882a593Smuzhiyun const struct rga_hw_data rga2e_iommu_data = {
330*4882a593Smuzhiyun 	.version = 0,
331*4882a593Smuzhiyun 	.input_range = {{2, 2}, {8192, 8192}},
332*4882a593Smuzhiyun 	.output_range = {{2, 2}, {4096, 4096}},
333*4882a593Smuzhiyun 
334*4882a593Smuzhiyun 	.win = rga2e_win_data,
335*4882a593Smuzhiyun 	.win_size = ARRAY_SIZE(rga2e_win_data),
336*4882a593Smuzhiyun 	/* 1 << factor mean real factor */
337*4882a593Smuzhiyun 	.max_upscale_factor = 4,
338*4882a593Smuzhiyun 	.max_downscale_factor = 4,
339*4882a593Smuzhiyun 
340*4882a593Smuzhiyun 	.byte_stride_align = 4,
341*4882a593Smuzhiyun 	.max_byte_stride = WORD_TO_BYTE(8192),
342*4882a593Smuzhiyun 
343*4882a593Smuzhiyun 	.feature = RGA_COLOR_FILL | RGA_COLOR_PALETTE |
344*4882a593Smuzhiyun 		   RGA_COLOR_KEY | RGA_ROP_CALCULATE |
345*4882a593Smuzhiyun 		   RGA_NN_QUANTIZE | RGA_DITHER | RGA_MOSAIC |
346*4882a593Smuzhiyun 		   RGA_YIN_YOUT | RGA_YUV_HDS | RGA_YUV_VDS |
347*4882a593Smuzhiyun 		   RGA_OSD | RGA_PRE_INTR,
348*4882a593Smuzhiyun 	.csc_r2y_mode = RGA_MODE_CSC_BT601L | RGA_MODE_CSC_BT601F |
349*4882a593Smuzhiyun 			RGA_MODE_CSC_BT709,
350*4882a593Smuzhiyun 	.csc_y2r_mode = RGA_MODE_CSC_BT601L | RGA_MODE_CSC_BT601F |
351*4882a593Smuzhiyun 			RGA_MODE_CSC_BT709,
352*4882a593Smuzhiyun 	.mmu = RGA_IOMMU,
353*4882a593Smuzhiyun };
354