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;
305 panel_bridge->bridge.of_node = panel->dev->of_node;
306 panel_bridge->bridge.ops = DRM_BRIDGE_OP_MODES;
307 panel_bridge->bridge.type = connector_type;
309 drm_bridge_add(&panel_bridge->bridge);
311 return &panel_bridge->bridge;
319 * @bridge: The drm_bridge being freed.
321 void drm_panel_bridge_remove(struct drm_bridge *bridge)
325 if (!bridge)
328 if (bridge->funcs != &panel_bridge_bridge_funcs)
331 panel_bridge = drm_bridge_to_panel_bridge(bridge);
333 drm_bridge_remove(bridge);
334 devm_kfree(panel_bridge->panel->dev, bridge);
340 * from the bridge that can be transformed to panel bridge.
343 * @bridge: The drm_bridge to be transformed to panel bridge.
348 struct drm_bridge *bridge)
352 panel_bridge = drm_bridge_to_panel_bridge(bridge);
361 struct drm_bridge **bridge = res;
363 drm_panel_bridge_remove(*bridge);
369 * @dev: device to tie the bridge lifetime to
389 * @dev: device to tie the bridge lifetime to
404 struct drm_bridge **ptr, *bridge;
411 bridge = drm_panel_bridge_add_typed(panel, connector_type);
412 if (IS_ERR(bridge)) {
414 return bridge;
417 bridge->pre_enable_prev_first = panel->prepare_prev_first;
419 *ptr = bridge;
422 return bridge;
428 struct drm_bridge *bridge = ptr;
430 drm_panel_bridge_remove(bridge);
438 * @drm: DRM device to tie the bridge lifetime to
448 struct drm_bridge *bridge;
451 bridge = drm_panel_bridge_add_typed(panel, panel->connector_type);
452 if (IS_ERR(bridge))
453 return bridge;
456 bridge);
460 bridge->pre_enable_prev_first = panel->prepare_prev_first;
462 return bridge;
467 * drm_panel_bridge_connector - return the connector for the panel bridge
468 * @bridge: The drm_bridge.
475 struct drm_connector *drm_panel_bridge_connector(struct drm_bridge *bridge)
479 panel_bridge = drm_bridge_to_panel_bridge(bridge);
487 * devm_drm_of_get_bridge - Return next bridge in the chain
488 * @dev: device to tie the bridge lifetime to
494 * and returns the associated bridge if any, or creates and returns a
495 * drm panel bridge instance if a panel is connected.
497 * Returns a pointer to the bridge if successful, or an error pointer
504 struct drm_bridge *bridge;
509 &panel, &bridge);
514 bridge = devm_drm_panel_bridge_add(dev, panel);
516 return bridge;
521 * drmm_of_get_bridge - Return next bridge in the chain
522 * @drm: device to tie the bridge lifetime to
528 * and returns the associated bridge if any, or creates and returns a
529 * drm panel bridge instance if a panel is connected.
531 * Returns a drmm managed pointer to the bridge if successful, or an error
538 struct drm_bridge *bridge;
543 &panel, &bridge);
548 bridge = drmm_panel_bridge_add(drm, panel);
550 return bridge;