Lines Matching refs:meson_encoder_hdmi
38 struct meson_encoder_hdmi { struct
49 container_of(x, struct meson_encoder_hdmi, bridge) argument
54 struct meson_encoder_hdmi *encoder_hdmi = bridge_to_meson_encoder_hdmi(bridge); in meson_encoder_hdmi_attach()
62 struct meson_encoder_hdmi *encoder_hdmi = bridge_to_meson_encoder_hdmi(bridge); in meson_encoder_hdmi_detach()
68 static void meson_encoder_hdmi_set_vclk(struct meson_encoder_hdmi *encoder_hdmi, in meson_encoder_hdmi_set_vclk()
123 struct meson_encoder_hdmi *encoder_hdmi = bridge_to_meson_encoder_hdmi(bridge); in meson_encoder_hdmi_mode_valid()
194 struct meson_encoder_hdmi *encoder_hdmi = bridge_to_meson_encoder_hdmi(bridge); in meson_encoder_hdmi_atomic_enable()
257 struct meson_encoder_hdmi *encoder_hdmi = bridge_to_meson_encoder_hdmi(bridge); in meson_encoder_hdmi_atomic_disable()
309 struct meson_encoder_hdmi *encoder_hdmi = bridge_to_meson_encoder_hdmi(bridge); in meson_encoder_hdmi_atomic_check()
327 struct meson_encoder_hdmi *encoder_hdmi = bridge_to_meson_encoder_hdmi(bridge); in meson_encoder_hdmi_hpd_notify()
373 struct meson_encoder_hdmi *meson_encoder_hdmi; in meson_encoder_hdmi_probe() local
378 meson_encoder_hdmi = devm_kzalloc(priv->dev, sizeof(*meson_encoder_hdmi), GFP_KERNEL); in meson_encoder_hdmi_probe()
379 if (!meson_encoder_hdmi) in meson_encoder_hdmi_probe()
389 meson_encoder_hdmi->next_bridge = of_drm_find_bridge(remote); in meson_encoder_hdmi_probe()
390 if (!meson_encoder_hdmi->next_bridge) { in meson_encoder_hdmi_probe()
397 meson_encoder_hdmi->bridge.funcs = &meson_encoder_hdmi_bridge_funcs; in meson_encoder_hdmi_probe()
398 meson_encoder_hdmi->bridge.of_node = priv->dev->of_node; in meson_encoder_hdmi_probe()
399 meson_encoder_hdmi->bridge.type = DRM_MODE_CONNECTOR_HDMIA; in meson_encoder_hdmi_probe()
400 meson_encoder_hdmi->bridge.interlace_allowed = true; in meson_encoder_hdmi_probe()
402 drm_bridge_add(&meson_encoder_hdmi->bridge); in meson_encoder_hdmi_probe()
404 meson_encoder_hdmi->priv = priv; in meson_encoder_hdmi_probe()
407 ret = drm_simple_encoder_init(priv->drm, &meson_encoder_hdmi->encoder, in meson_encoder_hdmi_probe()
414 meson_encoder_hdmi->encoder.possible_crtcs = BIT(0); in meson_encoder_hdmi_probe()
417 ret = drm_bridge_attach(&meson_encoder_hdmi->encoder, &meson_encoder_hdmi->bridge, NULL, in meson_encoder_hdmi_probe()
425 meson_encoder_hdmi->connector = drm_bridge_connector_init(priv->drm, in meson_encoder_hdmi_probe()
426 &meson_encoder_hdmi->encoder); in meson_encoder_hdmi_probe()
427 if (IS_ERR(meson_encoder_hdmi->connector)) { in meson_encoder_hdmi_probe()
429 PTR_ERR(meson_encoder_hdmi->connector), in meson_encoder_hdmi_probe()
433 drm_connector_attach_encoder(meson_encoder_hdmi->connector, in meson_encoder_hdmi_probe()
434 &meson_encoder_hdmi->encoder); in meson_encoder_hdmi_probe()
445 drm_atomic_helper_connector_reset(meson_encoder_hdmi->connector); in meson_encoder_hdmi_probe()
450 drm_connector_attach_hdr_output_metadata_property(meson_encoder_hdmi->connector); in meson_encoder_hdmi_probe()
452 drm_connector_attach_max_bpc_property(meson_encoder_hdmi->connector, 8, 8); in meson_encoder_hdmi_probe()
455 meson_encoder_hdmi->connector->ycbcr_420_allowed = true; in meson_encoder_hdmi_probe()
463 cec_fill_conn_info_from_drm(&conn_info, meson_encoder_hdmi->connector); in meson_encoder_hdmi_probe()
471 meson_encoder_hdmi->cec_notifier = notifier; in meson_encoder_hdmi_probe()
474 priv->encoders[MESON_ENC_HDMI] = meson_encoder_hdmi; in meson_encoder_hdmi_probe()
487 struct meson_encoder_hdmi *meson_encoder_hdmi; in meson_encoder_hdmi_remove() local
490 meson_encoder_hdmi = priv->encoders[MESON_ENC_HDMI]; in meson_encoder_hdmi_remove()
491 drm_bridge_remove(&meson_encoder_hdmi->bridge); in meson_encoder_hdmi_remove()