[PATCH v5 17/52] drm: Add helper to create a connector for a chain of bridges

Tomi Valkeinen tomi.valkeinen at ti.com
Tue Jan 28 11:19:53 UTC 2020


Hi Laurent,

On 24/01/2020 05:54, Laurent Pinchart wrote:

> +struct drm_connector *drm_bridge_connector_init(struct drm_device *drm,
> +						struct drm_encoder *encoder)
> +{
> +	struct drm_bridge_connector *bridge_connector;
> +	struct drm_connector *connector;
> +	struct i2c_adapter *ddc = NULL;
> +	struct drm_bridge *bridge;
> +	int connector_type;
> +
> +	bridge_connector = kzalloc(sizeof(*bridge_connector), GFP_KERNEL);
> +	if (!bridge_connector)
> +		return ERR_PTR(-ENOMEM);
> +
> +	bridge_connector->encoder = encoder;
> +
> +	/*
> +	 * TODO: Handle doublescan_allowed, stereo_allowed and
> +	 * ycbcr_420_allowed.
> +	 */
> +	connector = &bridge_connector->base;
> +	connector->interlace_allowed = true;
> +
> +	/*
> +	 * Initialise connector status handling. First locate the furthest
> +	 * bridges in the pipeline that support HPD and output detection. Then
> +	 * initialise the connector polling mode, using HPD if available and
> +	 * falling back to polling if supported. If neither HPD nor output
> +	 * detection are available, we don't support hotplug detection at all.
> +	 */
> +	connector_type = DRM_MODE_CONNECTOR_Unknown;
> +	drm_for_each_bridge_in_chain(encoder, bridge) {
> +		if (bridge->interlace_allowed)
> +			connector->interlace_allowed = false;

This doesn't work on Beagle-xM's venc output.

The above test should be !bridge->interlace_allowed.

But that doesn't solve it fully. We have VENC and display-connector as bridges in the beagle's VENC 
output path. Only VENC is marked as interlace_allowed.

Setting "conn->bridge.interlace_allowed = true;" in display_connector_probe got the VENC output 
working. But what's the correct fix here? set interlace_allowed based on connector type?

  Tomi

-- 
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki


More information about the dri-devel mailing list