Lines Matching refs:bridge

19 	struct drm_bridge bridge;
26 drm_bridge_to_panel_bridge(struct drm_bridge *bridge)
28 return container_of(bridge, struct panel_bridge, bridge);
58 static int panel_bridge_attach(struct drm_bridge *bridge,
61 struct panel_bridge *panel_bridge = drm_bridge_to_panel_bridge(bridge);
68 if (!bridge->encoder) {
76 ret = drm_connector_init(bridge->dev, connector,
84 drm_panel_bridge_set_orientation(connector, bridge);
87 bridge->encoder);
89 if (bridge->dev->registered) {
98 static void panel_bridge_detach(struct drm_bridge *bridge)
100 struct panel_bridge *panel_bridge = drm_bridge_to_panel_bridge(bridge);
108 * drm_device pointer can only be retrieved when the bridge is attached.
114 static void panel_bridge_atomic_pre_enable(struct drm_bridge *bridge,
117 struct panel_bridge *panel_bridge = drm_bridge_to_panel_bridge(bridge);
119 struct drm_encoder *encoder = bridge->encoder;
134 static void panel_bridge_atomic_enable(struct drm_bridge *bridge,
137 struct panel_bridge *panel_bridge = drm_bridge_to_panel_bridge(bridge);
139 struct drm_encoder *encoder = bridge->encoder;
154 static void panel_bridge_atomic_disable(struct drm_bridge *bridge,
157 struct panel_bridge *panel_bridge = drm_bridge_to_panel_bridge(bridge);
159 struct drm_encoder *encoder = bridge->encoder;
174 static void panel_bridge_atomic_post_disable(struct drm_bridge *bridge,
177 struct panel_bridge *panel_bridge = drm_bridge_to_panel_bridge(bridge);
179 struct drm_encoder *encoder = bridge->encoder;
194 static int panel_bridge_get_modes(struct drm_bridge *bridge,
197 struct panel_bridge *panel_bridge = drm_bridge_to_panel_bridge(bridge);
202 static void panel_bridge_debugfs_init(struct drm_bridge *bridge,
205 struct panel_bridge *panel_bridge = drm_bridge_to_panel_bridge(bridge);
231 * @bridge: The drm_bridge to be checked.
233 * Returns true if the bridge is a panel bridge, or false otherwise.
235 bool drm_bridge_is_panel(const struct drm_bridge *bridge)
237 return bridge->funcs == &panel_bridge_bridge_funcs;
251 * wrap that panel in the new bridge, and the result can then be
255 * with connector creation. When done with the bridge (after
256 * drm_mode_config_cleanup() if the bridge has already been attached), then
304 panel_bridge->bridge.funcs = &panel_bridge_bridge_funcs;
306 panel_bridge->bridge.of_node = panel->dev->of_node;
308 panel_bridge->bridge.ops = DRM_BRIDGE_OP_MODES;
309 panel_bridge->bridge.type = connector_type;
311 drm_bridge_add(&panel_bridge->bridge);
313 return &panel_bridge->bridge;
321 * @bridge: The drm_bridge being freed.
323 void drm_panel_bridge_remove(struct drm_bridge *bridge)
327 if (!bridge)
330 if (bridge->funcs != &panel_bridge_bridge_funcs)
333 panel_bridge = drm_bridge_to_panel_bridge(bridge);
335 drm_bridge_remove(bridge);
336 devm_kfree(panel_bridge->panel->dev, bridge);
342 * from the bridge that can be transformed to panel bridge.
345 * @bridge: The drm_bridge to be transformed to panel bridge.
350 struct drm_bridge *bridge)
354 panel_bridge = drm_bridge_to_panel_bridge(bridge);
363 struct drm_bridge **bridge = res;
365 drm_panel_bridge_remove(*bridge);
371 * @dev: device to tie the bridge lifetime to
391 * @dev: device to tie the bridge lifetime to
406 struct drm_bridge **ptr, *bridge;
413 bridge = drm_panel_bridge_add_typed(panel, connector_type);
414 if (IS_ERR(bridge)) {
416 return bridge;
419 bridge->pre_enable_prev_first = panel->prepare_prev_first;
421 *ptr = bridge;
424 return bridge;
430 struct drm_bridge *bridge = ptr;
432 drm_panel_bridge_remove(bridge);
440 * @drm: DRM device to tie the bridge lifetime to
450 struct drm_bridge *bridge;
453 bridge = drm_panel_bridge_add_typed(panel, panel->connector_type);
454 if (IS_ERR(bridge))
455 return bridge;
458 bridge);
462 bridge->pre_enable_prev_first = panel->prepare_prev_first;
464 return bridge;
469 * drm_panel_bridge_connector - return the connector for the panel bridge
470 * @bridge: The drm_bridge.
477 struct drm_connector *drm_panel_bridge_connector(struct drm_bridge *bridge)
481 panel_bridge = drm_bridge_to_panel_bridge(bridge);
489 * devm_drm_of_get_bridge - Return next bridge in the chain
490 * @dev: device to tie the bridge lifetime to
496 * and returns the associated bridge if any, or creates and returns a
497 * drm panel bridge instance if a panel is connected.
499 * Returns a pointer to the bridge if successful, or an error pointer
506 struct drm_bridge *bridge;
511 &panel, &bridge);
516 bridge = devm_drm_panel_bridge_add(dev, panel);
518 return bridge;
523 * drmm_of_get_bridge - Return next bridge in the chain
524 * @drm: device to tie the bridge lifetime to
530 * and returns the associated bridge if any, or creates and returns a
531 * drm panel bridge instance if a panel is connected.
533 * Returns a drmm managed pointer to the bridge if successful, or an error
540 struct drm_bridge *bridge;
545 &panel, &bridge);
550 bridge = drmm_panel_bridge_add(drm, panel);
552 return bridge;