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