[PATCH v5 17/52] drm: Add helper to create a connector for a chain of bridges
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Sun Feb 16 15:39:32 UTC 2020
Hi Tomi,
On Tue, Jan 28, 2020 at 01:19:53PM +0200, Tomi Valkeinen wrote:
> 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.
I wonder how this passed my tests :-S I'll fix it in v6.
> 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?
All the supported connector types (Composite, DVII, HDMIA, SVIDEO and
VGA) support interlaced modes, so I think we can just set the flag
unconditionally.
--
Regards,
Laurent Pinchart
More information about the dri-devel
mailing list