Lines Matching full:encoder

36  * struct drm_encoder_funcs - encoder controls
44 * Reset encoder hardware and software state to off. This function isn't
48 void (*reset)(struct drm_encoder *encoder);
53 * Clean up encoder resources. This is only called at driver unload time
54 * through drm_mode_config_cleanup() since an encoder cannot be
57 void (*destroy)(struct drm_encoder *encoder);
63 * interfaces attached to the encoder like debugfs interfaces.
72 int (*late_register)(struct drm_encoder *encoder);
78 * userspace interfaces attached to the encoder from
83 void (*early_unregister)(struct drm_encoder *encoder);
87 * struct drm_encoder - central DRM encoder structure
108 * encoder types are defined thus far:
128 * mutliple DP MST streams to share one physical encoder.
134 * index. It is invariant over the lifetime of the encoder.
141 * the bits for all &drm_crtc objects this encoder can be connected to
155 * &drm_crtc together with this encoder before calling
157 * encoder itself, too. Cloning bits should be set such that when two
163 * automagically fix this up by setting the bit for the encoder itself.
167 * Note that since encoder objects can't be hotplugged the assigned indices
180 * @bridge_chain: Bridges attached to this encoder. Drivers shall not
193 struct drm_encoder *encoder,
205 * drmm_encoder_alloc - Allocate and initialize an encoder
209 * @funcs: callbacks for this encoder (optional)
210 * @encoder_type: user visible type of the encoder
211 * @name: printf style format string for the encoder name, or NULL for default name
213 * Allocates and initializes an encoder. Encoder should be subclassed as part of
214 * driver encoder objects. Cleanup is automatically handled through registering
220 * Pointer to new encoder, or ERR_PTR on failure.
228 * drmm_plain_encoder_alloc - Allocate and initialize an encoder
230 * @funcs: callbacks for this encoder (optional)
231 * @encoder_type: user visible type of the encoder
232 * @name: printf style format string for the encoder name, or NULL for default name
246 * drm_encoder_index - find the index of a registered encoder
247 * @encoder: encoder to find index for
249 * Given a registered encoder, return the index of that encoder within a DRM
252 static inline unsigned int drm_encoder_index(const struct drm_encoder *encoder) in drm_encoder_index() argument
254 return encoder->index; in drm_encoder_index()
258 * drm_encoder_mask - find the mask of a registered encoder
259 * @encoder: encoder to find mask for
261 * Given a registered encoder, return the mask bit of that encoder for an
262 * encoder's possible_clones field.
264 static inline u32 drm_encoder_mask(const struct drm_encoder *encoder) in drm_encoder_mask() argument
266 return 1 << drm_encoder_index(encoder); in drm_encoder_mask()
270 * drm_encoder_crtc_ok - can a given crtc drive a given encoder?
271 * @encoder: encoder to test
274 * Returns false if @encoder can't be driven by @crtc, true otherwise.
276 static inline bool drm_encoder_crtc_ok(struct drm_encoder *encoder, in drm_encoder_crtc_ok() argument
279 return !!(encoder->possible_crtcs & drm_crtc_mask(crtc)); in drm_encoder_crtc_ok()
286 * @id: encoder id
288 * Returns the encoder with @id, NULL if it doesn't exist. Simple wrapper around
302 void drm_encoder_cleanup(struct drm_encoder *encoder);
306 * @encoder: the loop cursor
308 * @encoder_mask: bitmask of encoder indices
312 #define drm_for_each_encoder_mask(encoder, dev, encoder_mask) \ argument
313 list_for_each_entry((encoder), &(dev)->mode_config.encoder_list, head) \
314 for_each_if ((encoder_mask) & drm_encoder_mask(encoder))
318 * @encoder: the loop cursor
323 #define drm_for_each_encoder(encoder, dev) \ argument
324 list_for_each_entry(encoder, &(dev)->mode_config.encoder_list, head)