Lines Matching full:bridge
21 struct drm_bridge bridge; member
30 to_display_connector(struct drm_bridge *bridge) in to_display_connector() argument
32 return container_of(bridge, struct display_connector, bridge); in to_display_connector()
35 static int display_connector_attach(struct drm_bridge *bridge, in display_connector_attach() argument
42 display_connector_detect(struct drm_bridge *bridge) in display_connector_detect() argument
44 struct display_connector *conn = to_display_connector(bridge); in display_connector_detect()
53 if (conn->bridge.ddc && drm_probe_ddc(conn->bridge.ddc)) in display_connector_detect()
56 switch (conn->bridge.type) { in display_connector_detect()
83 static struct edid *display_connector_get_edid(struct drm_bridge *bridge, in display_connector_get_edid() argument
86 struct display_connector *conn = to_display_connector(bridge); in display_connector_get_edid()
88 return drm_get_edid(connector, conn->bridge.ddc); in display_connector_get_edid()
92 * Since this bridge is tied to the connector, it acts like a passthrough,
94 * previous bridge or return fallback data like done in the bridge function:
96 * This supports negotiation if the bridge chain has all bits in place.
98 static u32 *display_connector_get_output_bus_fmts(struct drm_bridge *bridge, in display_connector_get_output_bus_fmts() argument
104 struct drm_bridge *prev_bridge = drm_bridge_get_prev_bridge(bridge); in display_connector_get_output_bus_fmts()
134 * Since this bridge is tied to the connector, it acts like a passthrough,
136 * previous bridge or MEDIA_BUS_FMT_FIXED (like select_bus_fmt_recursive())
138 * This supports negotiation if the bridge chain has all bits in place.
140 static u32 *display_connector_get_input_bus_fmts(struct drm_bridge *bridge, in display_connector_get_input_bus_fmts() argument
147 struct drm_bridge *prev_bridge = drm_bridge_get_prev_bridge(bridge); in display_connector_get_input_bus_fmts()
185 struct drm_bridge *bridge = &conn->bridge; in display_connector_hpd_irq() local
187 drm_bridge_hpd_notify(bridge, display_connector_detect(bridge)); in display_connector_hpd_irq()
215 conn->bridge.type = DRM_MODE_CONNECTOR_DVIA; in display_connector_probe()
217 conn->bridge.type = DRM_MODE_CONNECTOR_DVID; in display_connector_probe()
219 conn->bridge.type = DRM_MODE_CONNECTOR_DVII; in display_connector_probe()
239 conn->bridge.type = DRM_MODE_CONNECTOR_HDMIA; in display_connector_probe()
241 conn->bridge.type = DRM_MODE_CONNECTOR_HDMIB; in display_connector_probe()
253 conn->bridge.type = type; in display_connector_probe()
258 conn->bridge.interlace_allowed = true; in display_connector_probe()
306 conn->bridge.ddc = of_get_i2c_adapter_by_node(phandle); in display_connector_probe()
308 if (!conn->bridge.ddc) in display_connector_probe()
348 conn->bridge.funcs = &display_connector_bridge_funcs; in display_connector_probe()
349 conn->bridge.of_node = pdev->dev.of_node; in display_connector_probe()
351 if (conn->bridge.ddc) in display_connector_probe()
352 conn->bridge.ops |= DRM_BRIDGE_OP_EDID in display_connector_probe()
355 conn->bridge.ops |= DRM_BRIDGE_OP_DETECT; in display_connector_probe()
357 conn->bridge.ops |= DRM_BRIDGE_OP_HPD; in display_connector_probe()
361 drm_get_connector_type_name(conn->bridge.type), in display_connector_probe()
363 conn->bridge.ddc ? "with" : "without", in display_connector_probe()
365 conn->bridge.ops); in display_connector_probe()
367 drm_bridge_add(&conn->bridge); in display_connector_probe()
379 drm_bridge_remove(&conn->bridge); in display_connector_remove()
381 if (!IS_ERR(conn->bridge.ddc)) in display_connector_remove()
382 i2c_put_adapter(conn->bridge.ddc); in display_connector_remove()