hc
2024-01-31 f9004dbfff8a3fbbd7e2a88c8a4327c7f2f8e5b2
kernel/include/drm/drm_writeback.h
....@@ -15,7 +15,13 @@
1515 #include <drm/drm_encoder.h>
1616 #include <linux/workqueue.h>
1717
18
+/**
19
+ * struct drm_writeback_connector - DRM writeback connector
20
+ */
1821 struct drm_writeback_connector {
22
+ /**
23
+ * @base: base drm_connector object
24
+ */
1925 struct drm_connector base;
2026
2127 /**
....@@ -78,7 +84,24 @@
7884 char timeline_name[32];
7985 };
8086
87
+/**
88
+ * struct drm_writeback_job - DRM writeback job
89
+ */
8190 struct drm_writeback_job {
91
+ /**
92
+ * @connector:
93
+ *
94
+ * Back-pointer to the writeback connector associated with the job
95
+ */
96
+ struct drm_writeback_connector *connector;
97
+
98
+ /**
99
+ * @prepared:
100
+ *
101
+ * Set when the job has been prepared with drm_writeback_prepare_job()
102
+ */
103
+ bool prepared;
104
+
82105 /**
83106 * @cleanup_work:
84107 *
....@@ -98,7 +121,7 @@
98121 * @fb:
99122 *
100123 * Framebuffer to be written to by the writeback connector. Do not set
101
- * directly, use drm_atomic_set_writeback_fb_for_connector()
124
+ * directly, use drm_writeback_set_fb()
102125 */
103126 struct drm_framebuffer *fb;
104127
....@@ -108,6 +131,13 @@
108131 * Fence which will signal once the writeback has completed
109132 */
110133 struct dma_fence *out_fence;
134
+
135
+ /**
136
+ * @priv:
137
+ *
138
+ * Driver-private data
139
+ */
140
+ void *priv;
111141 };
112142
113143 static inline struct drm_writeback_connector *
....@@ -122,8 +152,13 @@
122152 const struct drm_encoder_helper_funcs *enc_helper_funcs,
123153 const u32 *formats, int n_formats);
124154
155
+int drm_writeback_set_fb(struct drm_connector_state *conn_state,
156
+ struct drm_framebuffer *fb);
157
+
158
+int drm_writeback_prepare_job(struct drm_writeback_job *job);
159
+
125160 void drm_writeback_queue_job(struct drm_writeback_connector *wb_connector,
126
- struct drm_writeback_job *job);
161
+ struct drm_connector_state *conn_state);
127162
128163 void drm_writeback_cleanup_job(struct drm_writeback_job *job);
129164