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()
530 * drm_bridge_chain_enable - enables all bridges in the encoder chain
533 * Calls &drm_bridge_funcs.enable op for all the bridges in the encoder
535 * after completing the encoder's commit op.
537 * Note that the bridge passed should be the one closest to the encoder
541 struct drm_encoder *encoder; in drm_bridge_chain_enable() local
546 encoder = bridge->encoder; in drm_bridge_chain_enable()
547 list_for_each_entry_from(bridge, &encoder->bridge_chain, chain_node) { in drm_bridge_chain_enable()
555 * drm_atomic_bridge_chain_disable - disables all bridges in the encoder chain
560 * &drm_bridge_funcs.disable) op for all the bridges in the encoder chain,
564 * Note: the bridge passed should be the one closest to the encoder
569 struct drm_encoder *encoder; in drm_atomic_bridge_chain_disable() local
575 encoder = bridge->encoder; in drm_atomic_bridge_chain_disable()
576 list_for_each_entry_reverse(iter, &encoder->bridge_chain, chain_node) { in drm_atomic_bridge_chain_disable()
599 * in the encoder chain
604 * &drm_bridge_funcs.post_disable) op for all the bridges in the encoder chain,
608 * Note: the bridge passed should be the one closest to the encoder
613 struct drm_encoder *encoder; in drm_atomic_bridge_chain_post_disable() local
618 encoder = bridge->encoder; in drm_atomic_bridge_chain_post_disable()
619 list_for_each_entry_from(bridge, &encoder->bridge_chain, chain_node) { in drm_atomic_bridge_chain_post_disable()
640 * the encoder chain
645 * &drm_bridge_funcs.pre_enable) op for all the bridges in the encoder chain,
649 * Note: the bridge passed should be the one closest to the encoder
654 struct drm_encoder *encoder; in drm_atomic_bridge_chain_pre_enable() local
660 encoder = bridge->encoder; in drm_atomic_bridge_chain_pre_enable()
661 list_for_each_entry_reverse(iter, &encoder->bridge_chain, chain_node) { in drm_atomic_bridge_chain_pre_enable()
683 * drm_atomic_bridge_chain_enable - enables all bridges in the encoder chain
688 * &drm_bridge_funcs.enable) op for all the bridges in the encoder chain,
692 * Note: the bridge passed should be the one closest to the encoder
697 struct drm_encoder *encoder; in drm_atomic_bridge_chain_enable() local
702 encoder = bridge->encoder; in drm_atomic_bridge_chain_enable()
703 list_for_each_entry_from(bridge, &encoder->bridge_chain, chain_node) { in drm_atomic_bridge_chain_enable()
873 struct drm_encoder *encoder = bridge->encoder; in drm_atomic_bridge_chain_select_bus_fmts() local
880 last_bridge = list_last_entry(&encoder->bridge_chain, in drm_atomic_bridge_chain_select_bus_fmts()
988 * &drm_bridge_funcs.mode_fixup()) op for all the bridges in the encoder chain,
1000 struct drm_encoder *encoder; in drm_atomic_bridge_chain_check() local
1012 encoder = bridge->encoder; in drm_atomic_bridge_chain_check()
1013 list_for_each_entry_reverse(iter, &encoder->bridge_chain, chain_node) { in drm_atomic_bridge_chain_check()