[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