Lines Matching defs:bridge

45 	 * This callback is invoked whenever our bridge is being attached to a
54 int (*attach)(struct drm_bridge *bridge);
59 * This callback is invoked whenever our bridge is being detached from a
64 void (*detach)(struct drm_bridge *bridge);
70 * bridge. This should be implemented if the bridge has some sort of
71 * restriction in the modes it can display. For example, a given bridge
97 enum drm_mode_status (*mode_valid)(struct drm_bridge *bridge,
106 * &drm_bridge. The parameter adjusted_mode is the input mode the bridge
110 * This is the only hook that allows a bridge to reject a modeset. If
127 * that modes are filtered consistently put any bridge constraints and
135 bool (*mode_fixup)(struct drm_bridge *bridge,
141 * This callback should disable the bridge. It is called right before
143 * preceding element is a bridge this means it's called before that
144 * bridge's @disable vfunc. If the preceding element is a &drm_encoder
149 * The bridge can assume that the display pipe (i.e. clocks and timing
154 void (*disable)(struct drm_bridge *bridge);
159 * This callback should disable the bridge. It is called right after the
161 * element is a bridge this means it's called after that bridge's
167 * The bridge must assume that the display pipe (i.e. clocks and timing
173 void (*post_disable)(struct drm_bridge *bridge);
178 * This callback should set the given mode on the bridge. It is called
180 * pipeline has been called already. If the bridge is the first element
186 * first bridge in the chain. It can be different from the mode
188 * of the bridges chain, for instance when the first bridge in the chain
190 * bridge in the chain and is likely irrelevant for the other bridges.
198 * locations than the connection between the CRTC and the first bridge,
199 * the DRM framework will have to be extended with DRM bridge states.
201 void (*mode_set)(struct drm_bridge *bridge,
207 * This callback should enable the bridge. It is called right before
209 * preceding element is a bridge this means it's called before that
210 * bridge's @pre_enable function. If the preceding element is a
215 * The display pipe (i.e. clocks and timing signals) feeding this bridge
216 * will not yet be running when this callback is called. The bridge must
217 * not enable the display link feeding the next bridge in the chain (if
222 void (*pre_enable)(struct drm_bridge *bridge);
227 * This callback should enable the bridge. It is called right after
229 * preceding element is a bridge this means it's called after that
230 * bridge's @enable function. If the preceding element is a
235 * The bridge can assume that the display pipe (i.e. clocks and timing
237 * callback must enable the display link feeding the next bridge in the
242 void (*enable)(struct drm_bridge *bridge);
247 * This callback should enable the bridge. It is called right before
249 * preceding element is a bridge this means it's called before that
250 * bridge's @atomic_pre_enable or @pre_enable function. If the preceding
254 * The display pipe (i.e. clocks and timing signals) feeding this bridge
255 * will not yet be running when this callback is called. The bridge must
256 * not enable the display link feeding the next bridge in the chain (if
267 void (*atomic_pre_enable)(struct drm_bridge *bridge,
273 * This callback should enable the bridge. It is called right after
275 * preceding element is a bridge this means it's called after that
276 * bridge's @atomic_enable or @enable function. If the preceding element
280 * The bridge can assume that the display pipe (i.e. clocks and timing
282 * callback must enable the display link feeding the next bridge in the
292 void (*atomic_enable)(struct drm_bridge *bridge,
297 * This callback should disable the bridge. It is called right before
299 * preceding element is a bridge this means it's called before that
300 * bridge's @atomic_disable or @disable vfunc. If the preceding element
304 * The bridge can assume that the display pipe (i.e. clocks and timing
315 void (*atomic_disable)(struct drm_bridge *bridge,
321 * This callback should disable the bridge. It is called right after the
323 * element is a bridge this means it's called after that bridge's
328 * The bridge must assume that the display pipe (i.e. clocks and timing
341 void (*atomic_post_disable)(struct drm_bridge *bridge,
346 * struct drm_bridge_timings - timing information for the bridge
353 * this bridge requires (like pixel signal polarity). See also
367 * Defines the time in picoseconds taken for the bridge to sample the
382 * struct drm_bridge - central DRM bridge control structure
385 /** @dev: DRM device this bridge belongs to */
387 /** @encoder: encoder to which this bridge is connected */
389 /** @chain_node: used to form a bridge chain */
392 /** @of_node: device node pointer to the bridge */
400 * the timing specification for the bridge, if any (may be NULL)
405 /** @driver_private: pointer to the bridge driver's internal context */
409 void drm_bridge_add(struct drm_bridge *bridge);
410 void drm_bridge_remove(struct drm_bridge *bridge);
412 int drm_bridge_attach(struct drm_encoder *encoder, struct drm_bridge *bridge,
416 * drm_bridge_get_next_bridge() - Get the next bridge in the chain
417 * @bridge: bridge object
420 * the next bridge in the chain after @bridge, or NULL if @bridge is the last.
423 drm_bridge_get_next_bridge(struct drm_bridge *bridge)
425 if (list_is_last(&bridge->chain_node, &bridge->encoder->bridge_chain))
428 return list_next_entry(bridge, chain_node);
432 * drm_bridge_get_prev_bridge() - Get the previous bridge in the chain
433 * @bridge: bridge object
436 * the previous bridge in the chain, or NULL if @bridge is the first.
439 drm_bridge_get_prev_bridge(struct drm_bridge *bridge)
441 if (list_is_first(&bridge->chain_node, &bridge->encoder->bridge_chain))
444 return list_prev_entry(bridge, chain_node);
448 * drm_bridge_chain_get_first_bridge() - Get the first bridge in the chain
452 * the first bridge in the chain, or NULL if @encoder has no bridge attached
465 * @bridge: a bridge pointer updated to point to the current bridge at each
468 * Iterate over all bridges present in the bridge chain attached to @encoder.
470 #define drm_for_each_bridge_in_chain(encoder, bridge) \
471 list_for_each_entry(bridge, &(encoder)->bridge_chain, chain_node)
473 bool drm_bridge_chain_mode_fixup(struct drm_bridge *bridge,
477 drm_bridge_chain_mode_valid(struct drm_bridge *bridge,
479 void drm_bridge_chain_disable(struct drm_bridge *bridge);
480 void drm_bridge_chain_post_disable(struct drm_bridge *bridge);
481 void drm_bridge_chain_mode_set(struct drm_bridge *bridge,
484 void drm_bridge_chain_pre_enable(struct drm_bridge *bridge);
485 void drm_bridge_chain_enable(struct drm_bridge *bridge);
487 void drm_atomic_bridge_chain_disable(struct drm_bridge *bridge,
489 void drm_atomic_bridge_chain_post_disable(struct drm_bridge *bridge,
491 void drm_atomic_bridge_chain_pre_enable(struct drm_bridge *bridge,
493 void drm_atomic_bridge_chain_enable(struct drm_bridge *bridge,
500 void drm_panel_bridge_remove(struct drm_bridge *bridge);
506 struct drm_connector *drm_panel_bridge_connector(struct drm_bridge *bridge);