Lines Matching full:encoder
38 * &struct drm_bridge represents a device that hangs on to an encoder. These are
40 * encoder chain.
45 * [ CRTC ---> ] Encoder ---> Bridge A ---> Bridge B
47 * Here, the output of the encoder feeds to bridge A, and that furthers feeds to
57 * attached to the encoder with a call to drm_bridge_attach().
63 * Once these links are created, the bridges can participate along with encoder
92 * encoder chain.
154 * drm_bridge_attach - attach the bridge to an encoder's chain
156 * @encoder: DRM encoder
161 * Called by a kms driver to link the bridge to an encoder's chain. The previous
163 * linked directly at the encoder's output. Otherwise it is linked at the
169 * Note that bridges attached to encoders are auto-detached during encoder
176 int drm_bridge_attach(struct drm_encoder *encoder, struct drm_bridge *bridge, in drm_bridge_attach() argument
182 if (!encoder || !bridge) in drm_bridge_attach()
185 if (previous && (!previous->dev || previous->encoder != encoder)) in drm_bridge_attach()
191 bridge->dev = encoder->dev; in drm_bridge_attach()
192 bridge->encoder = encoder; in drm_bridge_attach()
197 list_add(&bridge->chain_node, &encoder->bridge_chain); in drm_bridge_attach()
227 bridge->encoder = NULL; in drm_bridge_attach()
231 DRM_ERROR("failed to attach bridge %pOF to encoder %s: %d\n", in drm_bridge_attach()
232 bridge->of_node, encoder->name, ret); in drm_bridge_attach()
234 DRM_ERROR("failed to attach bridge to encoder %s: %d\n", in drm_bridge_attach()
235 encoder->name, ret); in drm_bridge_attach()
268 * - The encoder-related operations support control of the bridges in the
294 * encoder-related operations. This feature is not supported by the legacy
351 * encoder chain
357 * encoder chain, starting from the first bridge to the last.
359 * Note: the bridge passed should be the one closest to the encoder
368 struct drm_encoder *encoder; in drm_bridge_chain_mode_fixup() local
373 encoder = bridge->encoder; in drm_bridge_chain_mode_fixup()
374 list_for_each_entry_from(bridge, &encoder->bridge_chain, chain_node) { in drm_bridge_chain_mode_fixup()
388 * encoder chain.
393 * Calls &drm_bridge_funcs.mode_valid for all the bridges in the encoder
397 * Note: the bridge passed should be the one closest to the encoder.
407 struct drm_encoder *encoder; in drm_bridge_chain_mode_valid() local
412 encoder = bridge->encoder; in drm_bridge_chain_mode_valid()
413 list_for_each_entry_from(bridge, &encoder->bridge_chain, chain_node) { in drm_bridge_chain_mode_valid()
429 * drm_bridge_chain_disable - disables all bridges in the encoder chain
432 * Calls &drm_bridge_funcs.disable op for all the bridges in the encoder
434 * calling the encoder's prepare op.
436 * Note: the bridge passed should be the one closest to the encoder
440 struct drm_encoder *encoder; in drm_bridge_chain_disable() local
446 encoder = bridge->encoder; in drm_bridge_chain_disable()
447 list_for_each_entry_reverse(iter, &encoder->bridge_chain, chain_node) { in drm_bridge_chain_disable()
459 * encoder chain
463 * encoder chain, starting from the first bridge to the last. These are called
464 * after completing the encoder's prepare op.
466 * Note: the bridge passed should be the one closest to the encoder
470 struct drm_encoder *encoder; in drm_bridge_chain_post_disable() local
475 encoder = bridge->encoder; in drm_bridge_chain_post_disable()
476 list_for_each_entry_from(bridge, &encoder->bridge_chain, chain_node) { in drm_bridge_chain_post_disable()
485 * encoder chain
487 * @mode: desired mode to be set for the encoder chain
488 * @adjusted_mode: updated mode that works for this encoder chain
491 * encoder chain, starting from the first bridge to the last.
493 * Note: the bridge passed should be the one closest to the encoder
499 struct drm_encoder *encoder; in drm_bridge_chain_mode_set() local
504 encoder = bridge->encoder; in drm_bridge_chain_mode_set()
505 list_for_each_entry_from(bridge, &encoder->bridge_chain, chain_node) { in drm_bridge_chain_mode_set()
514 * encoder chain
517 * Calls &drm_bridge_funcs.pre_enable op for all the bridges in the encoder
519 * before calling the encoder's commit op.
521 * Note: the bridge passed should be the one closest to the encoder
525 struct drm_encoder *encoder; in drm_bridge_chain_pre_enable() local
531 encoder = bridge->encoder; in drm_bridge_chain_pre_enable()
532 list_for_each_entry_reverse(iter, &encoder->bridge_chain, chain_node) { in drm_bridge_chain_pre_enable()
543 * drm_bridge_chain_enable - enables all bridges in the encoder chain
546 * Calls &drm_bridge_funcs.enable op for all the bridges in the encoder
548 * after completing the encoder's commit op.
550 * Note that the bridge passed should be the one closest to the encoder
554 struct drm_encoder *encoder; in drm_bridge_chain_enable() local
559 encoder = bridge->encoder; in drm_bridge_chain_enable()
560 list_for_each_entry_from(bridge, &encoder->bridge_chain, chain_node) { in drm_bridge_chain_enable()
568 * drm_atomic_bridge_chain_disable - disables all bridges in the encoder chain
573 * &drm_bridge_funcs.disable) op for all the bridges in the encoder chain,
577 * Note: the bridge passed should be the one closest to the encoder
582 struct drm_encoder *encoder; in drm_atomic_bridge_chain_disable() local
588 encoder = bridge->encoder; in drm_atomic_bridge_chain_disable()
589 list_for_each_entry_reverse(iter, &encoder->bridge_chain, chain_node) { in drm_atomic_bridge_chain_disable()
612 * in the encoder chain
617 * &drm_bridge_funcs.post_disable) op for all the bridges in the encoder chain,
621 * Note: the bridge passed should be the one closest to the encoder
626 struct drm_encoder *encoder; in drm_atomic_bridge_chain_post_disable() local
631 encoder = bridge->encoder; in drm_atomic_bridge_chain_post_disable()
632 list_for_each_entry_from(bridge, &encoder->bridge_chain, chain_node) { in drm_atomic_bridge_chain_post_disable()
653 * the encoder chain
658 * &drm_bridge_funcs.pre_enable) op for all the bridges in the encoder chain,
662 * Note: the bridge passed should be the one closest to the encoder
667 struct drm_encoder *encoder; in drm_atomic_bridge_chain_pre_enable() local
673 encoder = bridge->encoder; in drm_atomic_bridge_chain_pre_enable()
674 list_for_each_entry_reverse(iter, &encoder->bridge_chain, chain_node) { in drm_atomic_bridge_chain_pre_enable()
696 * drm_atomic_bridge_chain_enable - enables all bridges in the encoder chain
701 * &drm_bridge_funcs.enable) op for all the bridges in the encoder chain,
705 * Note: the bridge passed should be the one closest to the encoder
710 struct drm_encoder *encoder; in drm_atomic_bridge_chain_enable() local
715 encoder = bridge->encoder; in drm_atomic_bridge_chain_enable()
716 list_for_each_entry_from(bridge, &encoder->bridge_chain, chain_node) { in drm_atomic_bridge_chain_enable()
886 struct drm_encoder *encoder = bridge->encoder; in drm_atomic_bridge_chain_select_bus_fmts() local
893 last_bridge = list_last_entry(&encoder->bridge_chain, in drm_atomic_bridge_chain_select_bus_fmts()
1001 * &drm_bridge_funcs.mode_fixup()) op for all the bridges in the encoder chain,
1013 struct drm_encoder *encoder; in drm_atomic_bridge_chain_check() local
1025 encoder = bridge->encoder; in drm_atomic_bridge_chain_check()
1026 list_for_each_entry_reverse(iter, &encoder->bridge_chain, chain_node) { in drm_atomic_bridge_chain_check()