Lines Matching refs:meson_encoder_hdmi
38 struct meson_encoder_hdmi { struct
49 container_of(x, struct meson_encoder_hdmi, bridge) argument
55 struct meson_encoder_hdmi *encoder_hdmi = bridge_to_meson_encoder_hdmi(bridge); in meson_encoder_hdmi_attach()
63 struct meson_encoder_hdmi *encoder_hdmi = bridge_to_meson_encoder_hdmi(bridge); in meson_encoder_hdmi_detach()
69 static void meson_encoder_hdmi_set_vclk(struct meson_encoder_hdmi *encoder_hdmi, in meson_encoder_hdmi_set_vclk()
124 struct meson_encoder_hdmi *encoder_hdmi = bridge_to_meson_encoder_hdmi(bridge); in meson_encoder_hdmi_mode_valid()
195 struct meson_encoder_hdmi *encoder_hdmi = bridge_to_meson_encoder_hdmi(bridge); in meson_encoder_hdmi_atomic_enable()
258 struct meson_encoder_hdmi *encoder_hdmi = bridge_to_meson_encoder_hdmi(bridge); in meson_encoder_hdmi_atomic_disable()
310 struct meson_encoder_hdmi *encoder_hdmi = bridge_to_meson_encoder_hdmi(bridge); in meson_encoder_hdmi_atomic_check()
328 struct meson_encoder_hdmi *encoder_hdmi = bridge_to_meson_encoder_hdmi(bridge); in meson_encoder_hdmi_hpd_notify()
374 struct meson_encoder_hdmi *meson_encoder_hdmi; in meson_encoder_hdmi_probe() local
379 meson_encoder_hdmi = devm_drm_bridge_alloc(priv->dev, in meson_encoder_hdmi_probe()
380 struct meson_encoder_hdmi, in meson_encoder_hdmi_probe()
383 if (IS_ERR(meson_encoder_hdmi)) in meson_encoder_hdmi_probe()
384 return PTR_ERR(meson_encoder_hdmi); in meson_encoder_hdmi_probe()
393 meson_encoder_hdmi->next_bridge = of_drm_find_bridge(remote); in meson_encoder_hdmi_probe()
394 if (!meson_encoder_hdmi->next_bridge) { in meson_encoder_hdmi_probe()
401 meson_encoder_hdmi->bridge.of_node = priv->dev->of_node; in meson_encoder_hdmi_probe()
402 meson_encoder_hdmi->bridge.type = DRM_MODE_CONNECTOR_HDMIA; in meson_encoder_hdmi_probe()
403 meson_encoder_hdmi->bridge.interlace_allowed = true; in meson_encoder_hdmi_probe()
405 drm_bridge_add(&meson_encoder_hdmi->bridge); in meson_encoder_hdmi_probe()
407 meson_encoder_hdmi->priv = priv; in meson_encoder_hdmi_probe()
410 ret = drm_simple_encoder_init(priv->drm, &meson_encoder_hdmi->encoder, in meson_encoder_hdmi_probe()
417 meson_encoder_hdmi->encoder.possible_crtcs = BIT(0); in meson_encoder_hdmi_probe()
420 ret = drm_bridge_attach(&meson_encoder_hdmi->encoder, &meson_encoder_hdmi->bridge, NULL, in meson_encoder_hdmi_probe()
428 meson_encoder_hdmi->connector = drm_bridge_connector_init(priv->drm, in meson_encoder_hdmi_probe()
429 &meson_encoder_hdmi->encoder); in meson_encoder_hdmi_probe()
430 if (IS_ERR(meson_encoder_hdmi->connector)) { in meson_encoder_hdmi_probe()
432 PTR_ERR(meson_encoder_hdmi->connector), in meson_encoder_hdmi_probe()
436 drm_connector_attach_encoder(meson_encoder_hdmi->connector, in meson_encoder_hdmi_probe()
437 &meson_encoder_hdmi->encoder); in meson_encoder_hdmi_probe()
448 drm_atomic_helper_connector_reset(meson_encoder_hdmi->connector); in meson_encoder_hdmi_probe()
453 drm_connector_attach_hdr_output_metadata_property(meson_encoder_hdmi->connector); in meson_encoder_hdmi_probe()
455 drm_connector_attach_max_bpc_property(meson_encoder_hdmi->connector, 8, 8); in meson_encoder_hdmi_probe()
458 meson_encoder_hdmi->connector->ycbcr_420_allowed = true; in meson_encoder_hdmi_probe()
466 cec_fill_conn_info_from_drm(&conn_info, meson_encoder_hdmi->connector); in meson_encoder_hdmi_probe()
474 meson_encoder_hdmi->cec_notifier = notifier; in meson_encoder_hdmi_probe()
477 priv->encoders[MESON_ENC_HDMI] = meson_encoder_hdmi; in meson_encoder_hdmi_probe()
490 struct meson_encoder_hdmi *meson_encoder_hdmi; in meson_encoder_hdmi_remove() local
493 meson_encoder_hdmi = priv->encoders[MESON_ENC_HDMI]; in meson_encoder_hdmi_remove()
494 drm_bridge_remove(&meson_encoder_hdmi->bridge); in meson_encoder_hdmi_remove()