mirror of
https://github.com/armbian/build.git
synced 2025-08-12 14:16:57 +02:00
64 lines
1.9 KiB
Diff
64 lines
1.9 KiB
Diff
From 99d327853acbc5d6c6d4140f004f82fcd5c40ea1 Mon Sep 17 00:00:00 2001
|
|
From: Jernej Skrabec <jernej.skrabec@gmail.com>
|
|
Date: Sun, 29 Sep 2024 22:04:38 +1300
|
|
Subject: drm: sun4i: de3: add format enumeration function to engine
|
|
|
|
The DE3 display engine supports YUV formats in addition to RGB.
|
|
|
|
Add an optional format enumeration function to the engine.
|
|
|
|
Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
|
|
Signed-off-by: Ryan Walklin <ryan@testtoast.com>
|
|
---
|
|
drivers/gpu/drm/sun4i/sunxi_engine.h | 29 ++++++++++++++++++++++++++++
|
|
1 file changed, 29 insertions(+)
|
|
|
|
diff --git a/drivers/gpu/drm/sun4i/sunxi_engine.h b/drivers/gpu/drm/sun4i/sunxi_engine.h
|
|
index ec0c4932f15c..c48cbc1aceb8 100644
|
|
--- a/drivers/gpu/drm/sun4i/sunxi_engine.h
|
|
+++ b/drivers/gpu/drm/sun4i/sunxi_engine.h
|
|
@@ -123,6 +123,17 @@ struct sunxi_engine_ops {
|
|
*/
|
|
void (*mode_set)(struct sunxi_engine *engine,
|
|
const struct drm_display_mode *mode);
|
|
+
|
|
+ /**
|
|
+ * @get_supported_fmts
|
|
+ *
|
|
+ * This callback is used to enumerate all supported output
|
|
+ * formats by the engine. They are used for bridge format
|
|
+ * negotiation.
|
|
+ *
|
|
+ * This function is optional.
|
|
+ */
|
|
+ u32 *(*get_supported_fmts)(struct sunxi_engine *engine, u32 *num);
|
|
};
|
|
|
|
/**
|
|
@@ -215,4 +226,22 @@ sunxi_engine_mode_set(struct sunxi_engine *engine,
|
|
if (engine->ops && engine->ops->mode_set)
|
|
engine->ops->mode_set(engine, mode);
|
|
}
|
|
+
|
|
+/**
|
|
+ * sunxi_engine_get_supported_formats - Provide array of supported formats
|
|
+ * @engine: pointer to the engine
|
|
+ * @num: pointer to variable, which will hold number of formats
|
|
+ *
|
|
+ * This list can be used for format negotiation by bridge.
|
|
+ */
|
|
+static inline u32 *
|
|
+sunxi_engine_get_supported_formats(struct sunxi_engine *engine, u32 *num)
|
|
+{
|
|
+ if (engine->ops && engine->ops->get_supported_fmts)
|
|
+ return engine->ops->get_supported_fmts(engine, num);
|
|
+
|
|
+ *num = 0;
|
|
+
|
|
+ return NULL;
|
|
+}
|
|
#endif /* _SUNXI_ENGINE_H_ */
|
|
--
|
|
2.35.3
|
|
|