/**
* drm_bridge_chain_mode_valid - validate the mode against all bridges in the
* encoder chain.
- * @bridge: bridge control structure
+ * @first_bridge: bridge control structure
* @info: display info against which the mode shall be validated
* @mode: desired mode to be validated
*
* MODE_OK on success, drm_mode_status Enum error code on failure
*/
enum drm_mode_status
-drm_bridge_chain_mode_valid(struct drm_bridge *bridge,
+drm_bridge_chain_mode_valid(struct drm_bridge *first_bridge,
const struct drm_display_info *info,
const struct drm_display_mode *mode)
{
- struct drm_encoder *encoder;
-
- if (!bridge)
+ if (!first_bridge)
return MODE_OK;
- encoder = bridge->encoder;
- list_for_each_entry_from(bridge, &encoder->bridge_chain, chain_node) {
+ drm_for_each_bridge_in_chain_from(first_bridge, bridge) {
enum drm_mode_status ret;
if (!bridge->funcs->mode_valid)
/**
* drm_bridge_chain_mode_set - set proposed mode for all bridges in the
* encoder chain
- * @bridge: bridge control structure
+ * @first_bridge: bridge control structure
* @mode: desired mode to be set for the encoder chain
* @adjusted_mode: updated mode that works for this encoder chain
*
*
* Note: the bridge passed should be the one closest to the encoder
*/
-void drm_bridge_chain_mode_set(struct drm_bridge *bridge,
+void drm_bridge_chain_mode_set(struct drm_bridge *first_bridge,
const struct drm_display_mode *mode,
const struct drm_display_mode *adjusted_mode)
{
- struct drm_encoder *encoder;
-
- if (!bridge)
+ if (!first_bridge)
return;
- encoder = bridge->encoder;
- list_for_each_entry_from(bridge, &encoder->bridge_chain, chain_node) {
+ drm_for_each_bridge_in_chain_from(first_bridge, bridge)
if (bridge->funcs->mode_set)
bridge->funcs->mode_set(bridge, mode, adjusted_mode);
- }
}
EXPORT_SYMBOL(drm_bridge_chain_mode_set);
/**
* drm_atomic_bridge_chain_enable - enables all bridges in the encoder chain
- * @bridge: bridge control structure
+ * @first_bridge: bridge control structure
* @state: atomic state being committed
*
* Calls &drm_bridge_funcs.atomic_enable (falls back on
*
* Note: the bridge passed should be the one closest to the encoder
*/
-void drm_atomic_bridge_chain_enable(struct drm_bridge *bridge,
+void drm_atomic_bridge_chain_enable(struct drm_bridge *first_bridge,
struct drm_atomic_state *state)
{
- struct drm_encoder *encoder;
-
- if (!bridge)
+ if (!first_bridge)
return;
- encoder = bridge->encoder;
- list_for_each_entry_from(bridge, &encoder->bridge_chain, chain_node) {
+ drm_for_each_bridge_in_chain_from(first_bridge, bridge)
if (bridge->funcs->atomic_enable) {
bridge->funcs->atomic_enable(bridge, state);
} else if (bridge->funcs->enable) {
bridge->funcs->enable(bridge);
}
- }
}
EXPORT_SYMBOL(drm_atomic_bridge_chain_enable);