Lines Matching full:bridge
22 struct drm_bridge bridge; member
32 to_display_connector(struct drm_bridge *bridge) in to_display_connector() argument
34 return container_of(bridge, struct display_connector, bridge); in to_display_connector()
37 static int display_connector_attach(struct drm_bridge *bridge, in display_connector_attach() argument
44 display_connector_detect(struct drm_bridge *bridge) in display_connector_detect() argument
46 struct display_connector *conn = to_display_connector(bridge); in display_connector_detect()
55 if (conn->bridge.ddc && drm_probe_ddc(conn->bridge.ddc)) in display_connector_detect()
58 switch (conn->bridge.type) { in display_connector_detect()
85 static struct edid *display_connector_get_edid(struct drm_bridge *bridge, in display_connector_get_edid() argument
88 struct display_connector *conn = to_display_connector(bridge); in display_connector_get_edid()
90 return drm_get_edid(connector, conn->bridge.ddc); in display_connector_get_edid()
94 * Since this bridge is tied to the connector, it acts like a passthrough,
96 * previous bridge or return fallback data like done in the bridge function:
98 * This supports negotiation if the bridge chain has all bits in place.
100 static u32 *display_connector_get_output_bus_fmts(struct drm_bridge *bridge, in display_connector_get_output_bus_fmts() argument
106 struct drm_bridge *prev_bridge = drm_bridge_get_prev_bridge(bridge); in display_connector_get_output_bus_fmts()
136 * Since this bridge is tied to the connector, it acts like a passthrough,
138 * previous bridge or MEDIA_BUS_FMT_FIXED (like select_bus_fmt_recursive())
140 * This supports negotiation if the bridge chain has all bits in place.
142 static u32 *display_connector_get_input_bus_fmts(struct drm_bridge *bridge, in display_connector_get_input_bus_fmts() argument
149 struct drm_bridge *prev_bridge = drm_bridge_get_prev_bridge(bridge); in display_connector_get_input_bus_fmts()
187 struct drm_bridge *bridge = &conn->bridge; in display_connector_hpd_irq() local
189 drm_bridge_hpd_notify(bridge, display_connector_detect(bridge)); in display_connector_hpd_irq()
217 conn->bridge.type = DRM_MODE_CONNECTOR_DVIA; in display_connector_probe()
219 conn->bridge.type = DRM_MODE_CONNECTOR_DVID; in display_connector_probe()
221 conn->bridge.type = DRM_MODE_CONNECTOR_DVII; in display_connector_probe()
241 conn->bridge.type = DRM_MODE_CONNECTOR_HDMIA; in display_connector_probe()
243 conn->bridge.type = DRM_MODE_CONNECTOR_HDMIB; in display_connector_probe()
255 conn->bridge.type = type; in display_connector_probe()
260 conn->bridge.interlace_allowed = true; in display_connector_probe()
308 conn->bridge.ddc = of_get_i2c_adapter_by_node(phandle); in display_connector_probe()
310 if (!conn->bridge.ddc) in display_connector_probe()
361 conn->bridge.funcs = &display_connector_bridge_funcs; in display_connector_probe()
362 conn->bridge.of_node = pdev->dev.of_node; in display_connector_probe()
364 if (conn->bridge.ddc) in display_connector_probe()
365 conn->bridge.ops |= DRM_BRIDGE_OP_EDID in display_connector_probe()
368 conn->bridge.ops |= DRM_BRIDGE_OP_DETECT; in display_connector_probe()
370 conn->bridge.ops |= DRM_BRIDGE_OP_HPD; in display_connector_probe()
374 drm_get_connector_type_name(conn->bridge.type), in display_connector_probe()
376 conn->bridge.ddc ? "with" : "without", in display_connector_probe()
378 conn->bridge.ops); in display_connector_probe()
380 drm_bridge_add(&conn->bridge); in display_connector_probe()
395 drm_bridge_remove(&conn->bridge); in display_connector_remove()
397 if (!IS_ERR(conn->bridge.ddc)) in display_connector_remove()
398 i2c_put_adapter(conn->bridge.ddc); in display_connector_remove()