forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-12-19 9370bb92b2d16684ee45cf24e879c93c509162da
kernel/drivers/video/rockchip/rga3/rga_common.c
....@@ -107,6 +107,30 @@
107107 }
108108 }
109109
110
+bool rga_is_yuv420_planar_format(uint32_t format)
111
+{
112
+ switch (format) {
113
+ case RGA_FORMAT_YCbCr_420_P:
114
+ case RGA_FORMAT_YCrCb_420_P:
115
+ return true;
116
+ default:
117
+ return false;
118
+ }
119
+}
120
+
121
+bool rga_is_yuv420_semi_planar_format(uint32_t format)
122
+{
123
+ switch (format) {
124
+ case RGA_FORMAT_YCbCr_420_SP:
125
+ case RGA_FORMAT_YCrCb_420_SP:
126
+ case RGA_FORMAT_YCbCr_420_SP_10B:
127
+ case RGA_FORMAT_YCrCb_420_SP_10B:
128
+ return true;
129
+ default:
130
+ return false;
131
+ }
132
+}
133
+
110134 bool rga_is_yuv422_packed_format(uint32_t format)
111135 {
112136 switch (format) {
....@@ -114,6 +138,30 @@
114138 case RGA_FORMAT_VYUY_422:
115139 case RGA_FORMAT_YUYV_422:
116140 case RGA_FORMAT_UYVY_422:
141
+ return true;
142
+ default:
143
+ return false;
144
+ }
145
+}
146
+
147
+bool rga_is_yuv422_planar_format(uint32_t format)
148
+{
149
+ switch (format) {
150
+ case RGA_FORMAT_YCbCr_422_P:
151
+ case RGA_FORMAT_YCrCb_422_P:
152
+ return true;
153
+ default:
154
+ return false;
155
+ }
156
+}
157
+
158
+bool rga_is_yuv422_semi_planar_format(uint32_t format)
159
+{
160
+ switch (format) {
161
+ case RGA_FORMAT_YCbCr_422_SP:
162
+ case RGA_FORMAT_YCrCb_422_SP:
163
+ case RGA_FORMAT_YCbCr_422_SP_10B:
164
+ case RGA_FORMAT_YCrCb_422_SP_10B:
117165 return true;
118166 default:
119167 return false;
....@@ -481,20 +529,49 @@
481529 }
482530 }
483531
484
-const char *rga_get_blend_mode_str(uint16_t alpha_rop_flag,
485
- uint16_t alpha_mode_0,
486
- uint16_t alpha_mode_1)
532
+const char *rga_get_blend_mode_str(enum rga_alpha_blend_mode mode)
487533 {
488
- if (alpha_rop_flag == 0) {
534
+ switch (mode) {
535
+ case RGA_ALPHA_NONE:
489536 return "no blend";
490
- } else if (alpha_rop_flag == 0x9) {
491
- if (alpha_mode_0 == 0x381A && alpha_mode_1 == 0x381A)
492
- return "105 src + (1-src.a)*dst";
493
- else if (alpha_mode_0 == 0x483A && alpha_mode_1 == 0x483A)
494
- return "405 src.a * src + (1-src.a) * dst";
495
- else
496
- return "check reg for more imformation";
497
- } else {
537
+
538
+ case RGA_ALPHA_BLEND_SRC:
539
+ return "src";
540
+
541
+ case RGA_ALPHA_BLEND_DST:
542
+ return "dst";
543
+
544
+ case RGA_ALPHA_BLEND_SRC_OVER:
545
+ return "src-over";
546
+
547
+ case RGA_ALPHA_BLEND_DST_OVER:
548
+ return "dst-over";
549
+
550
+ case RGA_ALPHA_BLEND_SRC_IN:
551
+ return "src-in";
552
+
553
+ case RGA_ALPHA_BLEND_DST_IN:
554
+ return "dst-in";
555
+
556
+ case RGA_ALPHA_BLEND_SRC_OUT:
557
+ return "src-out";
558
+
559
+ case RGA_ALPHA_BLEND_DST_OUT:
560
+ return "dst-out";
561
+
562
+ case RGA_ALPHA_BLEND_SRC_ATOP:
563
+ return "src-atop";
564
+
565
+ case RGA_ALPHA_BLEND_DST_ATOP:
566
+ return "dst-atop";
567
+
568
+ case RGA_ALPHA_BLEND_XOR:
569
+ return "xor";
570
+
571
+ case RGA_ALPHA_BLEND_CLEAR:
572
+ return "clear";
573
+
574
+ default:
498575 return "check reg for more imformation";
499576 }
500577 }
....@@ -524,6 +601,20 @@
524601 return "RK_IOMMU";
525602 default:
526603 return "NONE_MMU";
604
+ }
605
+}
606
+
607
+const char *rga_get_core_name(enum RGA_SCHEDULER_CORE core)
608
+{
609
+ switch (core) {
610
+ case RGA_SCHEDULER_RGA3_CORE0:
611
+ return "RGA3_core0";
612
+ case RGA_SCHEDULER_RGA3_CORE1:
613
+ return "RGA3_core1";
614
+ case RGA_SCHEDULER_RGA2_CORE0:
615
+ return "RGA2_core0";
616
+ default:
617
+ return "unknown_core";
527618 }
528619 }
529620
....@@ -665,3 +756,17 @@
665756
666757 return (yrgb + uv + v);
667758 }
759
+
760
+void rga_dump_memory_parm(struct rga_memory_parm *parm)
761
+{
762
+ pr_info("memory param: w = %d, h = %d, f = %s(0x%x), size = %d\n",
763
+ parm->width, parm->height, rga_get_format_name(parm->format),
764
+ parm->format, parm->size);
765
+}
766
+
767
+void rga_dump_external_buffer(struct rga_external_buffer *buffer)
768
+{
769
+ pr_info("external: memory = 0x%lx, type = %s\n",
770
+ (unsigned long)buffer->memory, rga_get_memory_type_str(buffer->type));
771
+ rga_dump_memory_parm(&buffer->memory_parm);
772
+}