Lines Matching refs:conn

43 	struct display_connector *conn = to_display_connector(bridge);  in display_connector_detect()  local
45 if (conn->hpd_gpio) { in display_connector_detect()
46 if (gpiod_get_value_cansleep(conn->hpd_gpio)) in display_connector_detect()
52 if (conn->bridge.ddc && drm_probe_ddc(conn->bridge.ddc)) in display_connector_detect()
55 switch (conn->bridge.type) { in display_connector_detect()
85 struct display_connector *conn = to_display_connector(bridge); in display_connector_get_edid() local
87 return drm_get_edid(connector, conn->bridge.ddc); in display_connector_get_edid()
98 struct display_connector *conn = arg; in display_connector_hpd_irq() local
99 struct drm_bridge *bridge = &conn->bridge; in display_connector_hpd_irq()
108 struct display_connector *conn; in display_connector_probe() local
113 conn = devm_kzalloc(&pdev->dev, sizeof(*conn), GFP_KERNEL); in display_connector_probe()
114 if (!conn) in display_connector_probe()
117 platform_set_drvdata(pdev, conn); in display_connector_probe()
129 conn->bridge.type = DRM_MODE_CONNECTOR_DVIA; in display_connector_probe()
131 conn->bridge.type = DRM_MODE_CONNECTOR_DVID; in display_connector_probe()
133 conn->bridge.type = DRM_MODE_CONNECTOR_DVII; in display_connector_probe()
153 conn->bridge.type = DRM_MODE_CONNECTOR_HDMIA; in display_connector_probe()
155 conn->bridge.type = DRM_MODE_CONNECTOR_HDMIB; in display_connector_probe()
167 conn->bridge.type = type; in display_connector_probe()
172 conn->bridge.interlace_allowed = true; in display_connector_probe()
184 conn->hpd_gpio = devm_gpiod_get_optional(&pdev->dev, "hpd", in display_connector_probe()
186 if (IS_ERR(conn->hpd_gpio)) { in display_connector_probe()
187 if (PTR_ERR(conn->hpd_gpio) != -EPROBE_DEFER) in display_connector_probe()
190 return PTR_ERR(conn->hpd_gpio); in display_connector_probe()
193 conn->hpd_irq = gpiod_to_irq(conn->hpd_gpio); in display_connector_probe()
195 conn->hpd_irq = -EINVAL; in display_connector_probe()
198 if (conn->hpd_irq >= 0) { in display_connector_probe()
199 ret = devm_request_threaded_irq(&pdev->dev, conn->hpd_irq, in display_connector_probe()
204 "HPD", conn); in display_connector_probe()
208 conn->hpd_irq = -EINVAL; in display_connector_probe()
220 conn->bridge.ddc = of_get_i2c_adapter_by_node(phandle); in display_connector_probe()
222 if (!conn->bridge.ddc) in display_connector_probe()
234 conn->dp_pwr = devm_regulator_get_optional(&pdev->dev, "dp-pwr"); in display_connector_probe()
236 if (IS_ERR(conn->dp_pwr)) { in display_connector_probe()
237 ret = PTR_ERR(conn->dp_pwr); in display_connector_probe()
241 conn->dp_pwr = NULL; in display_connector_probe()
253 if (conn->dp_pwr) { in display_connector_probe()
254 ret = regulator_enable(conn->dp_pwr); in display_connector_probe()
262 conn->bridge.funcs = &display_connector_bridge_funcs; in display_connector_probe()
263 conn->bridge.of_node = pdev->dev.of_node; in display_connector_probe()
265 if (conn->bridge.ddc) in display_connector_probe()
266 conn->bridge.ops |= DRM_BRIDGE_OP_EDID in display_connector_probe()
268 if (conn->hpd_gpio) in display_connector_probe()
269 conn->bridge.ops |= DRM_BRIDGE_OP_DETECT; in display_connector_probe()
270 if (conn->hpd_irq >= 0) in display_connector_probe()
271 conn->bridge.ops |= DRM_BRIDGE_OP_HPD; in display_connector_probe()
275 drm_get_connector_type_name(conn->bridge.type), in display_connector_probe()
277 conn->bridge.ddc ? "with" : "without", in display_connector_probe()
278 conn->hpd_gpio ? "with" : "without", in display_connector_probe()
279 conn->bridge.ops); in display_connector_probe()
281 drm_bridge_add(&conn->bridge); in display_connector_probe()
288 struct display_connector *conn = platform_get_drvdata(pdev); in display_connector_remove() local
290 if (conn->dp_pwr) in display_connector_remove()
291 regulator_disable(conn->dp_pwr); in display_connector_remove()
293 drm_bridge_remove(&conn->bridge); in display_connector_remove()
295 if (!IS_ERR(conn->bridge.ddc)) in display_connector_remove()
296 i2c_put_adapter(conn->bridge.ddc); in display_connector_remove()