On Thu, Oct 26, 2023 at 01:23:53AM +0300, Dmitry Baryshkov wrote: > > +static int starfive_hdmi_register(struct drm_device *drm, struct starfive_hdmi *hdmi) > > +{ > > + struct drm_encoder *encoder = &hdmi->encoder; > > + struct device *dev = hdmi->dev; > > + > > + encoder->possible_crtcs = drm_of_find_possible_crtcs(drm, dev->of_node); > > + > > + /* > > + * If we failed to find the CRTC(s) which this encoder is > > + * supposed to be connected to, it's because the CRTC has > > + * not been registered yet. Defer probing, and hope that > > + * the required CRTC is added later. > > + */ > > + if (encoder->possible_crtcs == 0) > > + return -EPROBE_DEFER; > > + > > + drm_encoder_helper_add(encoder, &starfive_hdmi_encoder_helper_funcs); > > + > > + hdmi->connector.polled = DRM_CONNECTOR_POLL_HPD; > > + > > + drm_connector_helper_add(&hdmi->connector, > > + &starfive_hdmi_connector_helper_funcs); > > + drmm_connector_init(drm, &hdmi->connector, > > + &starfive_hdmi_connector_funcs, > > + DRM_MODE_CONNECTOR_HDMIA, > > On an embedded device one can not be so sure. There can be MHL or HDMI > Alternative Mode. Usually we use drm_bridge here and drm_bridge_connector. On an HDMI driver, it's far from being a requirement, especially given the limitations bridges have. Maxime
Attachment:
signature.asc
Description: PGP signature