Lines Matching full:encoder
37 * &struct drm_bridge represents a device that hangs on to an encoder. These are
39 * encoder chain.
44 * [ CRTC ---> ] Encoder ---> Bridge A ---> Bridge B
46 * Here, the output of the encoder feeds to bridge A, and that furthers feeds to
56 * attached to the encoder with a call to drm_bridge_attach().
62 * Once these links are created, the bridges can participate along with encoder
91 * encoder chain.
153 * drm_bridge_attach - attach the bridge to an encoder's chain
155 * @encoder: DRM encoder
160 * Called by a kms driver to link the bridge to an encoder's chain. The previous
162 * linked directly at the encoder's output. Otherwise it is linked at the
168 * Note that bridges attached to encoders are auto-detached during encoder
175 int drm_bridge_attach(struct drm_encoder *encoder, struct drm_bridge *bridge, in drm_bridge_attach() argument
181 if (!encoder || !bridge) in drm_bridge_attach()
184 if (previous && (!previous->dev || previous->encoder != encoder)) in drm_bridge_attach()
190 bridge->dev = encoder->dev; in drm_bridge_attach()
191 bridge->encoder = encoder; in drm_bridge_attach()
196 list_add(&bridge->chain_node, &encoder->bridge_chain); in drm_bridge_attach()
226 bridge->encoder = NULL; in drm_bridge_attach()
258 * - The encoder-related operations support control of the bridges in the
284 * encoder-related operations. This feature is not supported by the legacy
341 * encoder chain
347 * encoder chain, starting from the first bridge to the last.
349 * Note: the bridge passed should be the one closest to the encoder
358 struct drm_encoder *encoder; in drm_bridge_chain_mode_fixup() local
363 encoder = bridge->encoder; in drm_bridge_chain_mode_fixup()
364 list_for_each_entry_from(bridge, &encoder->bridge_chain, chain_node) { in drm_bridge_chain_mode_fixup()
378 * encoder chain.
383 * Calls &drm_bridge_funcs.mode_valid for all the bridges in the encoder
387 * Note: the bridge passed should be the one closest to the encoder.
397 struct drm_encoder *encoder; in drm_bridge_chain_mode_valid() local
402 encoder = bridge->encoder; in drm_bridge_chain_mode_valid()
403 list_for_each_entry_from(bridge, &encoder->bridge_chain, chain_node) { in drm_bridge_chain_mode_valid()
419 * drm_bridge_chain_disable - disables all bridges in the encoder chain
422 * Calls &drm_bridge_funcs.disable op for all the bridges in the encoder
424 * calling the encoder's prepare op.
426 * Note: the bridge passed should be the one closest to the encoder
430 struct drm_encoder *encoder; in drm_bridge_chain_disable() local
436 encoder = bridge->encoder; in drm_bridge_chain_disable()
437 list_for_each_entry_reverse(iter, &encoder->bridge_chain, chain_node) { in drm_bridge_chain_disable()
449 * encoder chain
453 * encoder chain, starting from the first bridge to the last. These are called
454 * after completing the encoder's prepare op.
456 * Note: the bridge passed should be the one closest to the encoder
460 struct drm_encoder *encoder; in drm_bridge_chain_post_disable() local
465 encoder = bridge->encoder; in drm_bridge_chain_post_disable()
466 list_for_each_entry_from(bridge, &encoder->bridge_chain, chain_node) { in drm_bridge_chain_post_disable()
475 * encoder chain
477 * @mode: desired mode to be set for the encoder chain
478 * @adjusted_mode: updated mode that works for this encoder chain
481 * encoder chain, starting from the first bridge to the last.
483 * Note: the bridge passed should be the one closest to the encoder
489 struct drm_encoder *encoder; in drm_bridge_chain_mode_set() local
494 encoder = bridge->encoder; in drm_bridge_chain_mode_set()
495 list_for_each_entry_from(bridge, &encoder->bridge_chain, chain_node) { in drm_bridge_chain_mode_set()
504 * encoder chain
507 * Calls &drm_bridge_funcs.pre_enable op for all the bridges in the encoder
509 * before calling the encoder's commit op.
511 * Note: the bridge passed should be the one closest to the encoder
515 struct drm_encoder *encoder; in drm_bridge_chain_pre_enable() local
521 encoder = bridge->encoder; in drm_bridge_chain_pre_enable()
522 list_for_each_entry_reverse(iter, &encoder->bridge_chain, chain_node) { in drm_bridge_chain_pre_enable()
533 * drm_bridge_chain_enable - enables all bridges in the encoder chain
536 * Calls &drm_bridge_funcs.enable op for all the bridges in the encoder
538 * after completing the encoder's commit op.
540 * Note that the bridge passed should be the one closest to the encoder
544 struct drm_encoder *encoder; in drm_bridge_chain_enable() local
549 encoder = bridge->encoder; in drm_bridge_chain_enable()
550 list_for_each_entry_from(bridge, &encoder->bridge_chain, chain_node) { in drm_bridge_chain_enable()
558 * drm_atomic_bridge_chain_disable - disables all bridges in the encoder chain
563 * &drm_bridge_funcs.disable) op for all the bridges in the encoder chain,
567 * Note: the bridge passed should be the one closest to the encoder
572 struct drm_encoder *encoder; in drm_atomic_bridge_chain_disable() local
578 encoder = bridge->encoder; in drm_atomic_bridge_chain_disable()
579 list_for_each_entry_reverse(iter, &encoder->bridge_chain, chain_node) { in drm_atomic_bridge_chain_disable()
602 * in the encoder chain
607 * &drm_bridge_funcs.post_disable) op for all the bridges in the encoder chain,
611 * Note: the bridge passed should be the one closest to the encoder
616 struct drm_encoder *encoder; in drm_atomic_bridge_chain_post_disable() local
621 encoder = bridge->encoder; in drm_atomic_bridge_chain_post_disable()
622 list_for_each_entry_from(bridge, &encoder->bridge_chain, chain_node) { in drm_atomic_bridge_chain_post_disable()
643 * the encoder chain
648 * &drm_bridge_funcs.pre_enable) op for all the bridges in the encoder chain,
652 * Note: the bridge passed should be the one closest to the encoder
657 struct drm_encoder *encoder; in drm_atomic_bridge_chain_pre_enable() local
663 encoder = bridge->encoder; in drm_atomic_bridge_chain_pre_enable()
664 list_for_each_entry_reverse(iter, &encoder->bridge_chain, chain_node) { in drm_atomic_bridge_chain_pre_enable()
686 * drm_atomic_bridge_chain_enable - enables all bridges in the encoder chain
691 * &drm_bridge_funcs.enable) op for all the bridges in the encoder chain,
695 * Note: the bridge passed should be the one closest to the encoder
700 struct drm_encoder *encoder; in drm_atomic_bridge_chain_enable() local
705 encoder = bridge->encoder; in drm_atomic_bridge_chain_enable()
706 list_for_each_entry_from(bridge, &encoder->bridge_chain, chain_node) { in drm_atomic_bridge_chain_enable()
876 struct drm_encoder *encoder = bridge->encoder; in drm_atomic_bridge_chain_select_bus_fmts() local
883 last_bridge = list_last_entry(&encoder->bridge_chain, in drm_atomic_bridge_chain_select_bus_fmts()
991 * &drm_bridge_funcs.mode_fixup()) op for all the bridges in the encoder chain,
1003 struct drm_encoder *encoder; in drm_atomic_bridge_chain_check() local
1015 encoder = bridge->encoder; in drm_atomic_bridge_chain_check()
1016 list_for_each_entry_reverse(iter, &encoder->bridge_chain, chain_node) { in drm_atomic_bridge_chain_check()