[PATCH 0/9] Doc/DT: DT bindings for various display components

Russell King - ARM Linux linux at arm.linux.org.uk
Fri Feb 28 11:48:04 EST 2014

On Fri, Feb 28, 2014 at 02:51:22PM +0100, Sebastian Hesselbarth wrote:
> Is it really the logical place to handle HPD? I'd have put it into the
> HDMI encoder because it's the unit most interested in the state of HPD.

I think this is where differences in hardware become a problem.

Yes, it makes sense to handle the HPD at the encoder level, because
your HDMI encoder may require a HPD signal from the connector, and it
may handle this internally.

However, it's also true that the HPD signal from the HDMI connector may
be routed directly to a GPIO on the SoC.

Both are equally valid - and actually something which DRM as a subsystem

struct drm_connector_funcs {
        enum drm_connector_status (*detect)(struct drm_connector *connector,
                                            bool force);

struct drm_encoder_helper_funcs {
        enum drm_connector_status (*detect)(struct drm_encoder *encoder,
                                            struct drm_connector *connector);

although the original intention for the encoder detection method was for
DAC-style detection, such as found on Intel adapters (which regularly
pulse the R,G,B signals and measure any attached load.)  We also use
the encoder detection method for TDA998x on Dove (currently via the
slave encoder stuff.)

So, I'd say that there's scope for a HDMI connector having a hotplug
GPIO attached to it - and if it isn't there (and there's no other form
of connector-based detection), the connector should refer to it's
attached encoder for connect status.

FTTC broadband for 0.8mile line: now at 9.7Mbps down 460kbps up... slowly
improving, and getting towards what was expected from it.

More information about the linux-arm-kernel mailing list