On 23/02/16 17:03, Jyri Sarha wrote: > Initialize port device node pointer in the tilcdc crtc. Fixes "Falling > back to first CRTC" warning from tda998x driver. > > The tda998x encoder driver calls drm_of_find_possible_crtcs() to > initialize possible_crtcs of struct drm_encoder. The crtc->port needs > to be initialized for drm_of_find_possible_crtcs() to work. > > Signed-off-by: Jyri Sarha <jsarha@xxxxxx> > --- > drivers/gpu/drm/tilcdc/tilcdc_crtc.c | 16 ++++++++++++++++ > 1 file changed, 16 insertions(+) > > diff --git a/drivers/gpu/drm/tilcdc/tilcdc_crtc.c b/drivers/gpu/drm/tilcdc/tilcdc_crtc.c > index 248e3ea..1eb4e0e 100644 > --- a/drivers/gpu/drm/tilcdc/tilcdc_crtc.c > +++ b/drivers/gpu/drm/tilcdc/tilcdc_crtc.c > @@ -124,6 +124,7 @@ static void tilcdc_crtc_destroy(struct drm_crtc *crtc) > > tilcdc_crtc_dpms(crtc, DRM_MODE_DPMS_OFF); > > + of_node_put(crtc->port); > drm_crtc_cleanup(crtc); > drm_flip_work_cleanup(&tilcdc_crtc->unref_work); > > @@ -749,6 +750,7 @@ irqreturn_t tilcdc_crtc_irq(struct drm_crtc *crtc) > > struct drm_crtc *tilcdc_crtc_create(struct drm_device *dev) > { > + struct tilcdc_drm_private *priv = dev->dev_private; > struct tilcdc_crtc *tilcdc_crtc; > struct drm_crtc *crtc; > int ret; > @@ -775,6 +777,20 @@ struct drm_crtc *tilcdc_crtc_create(struct drm_device *dev) > > drm_crtc_helper_add(crtc, &tilcdc_crtc_helper_funcs); > > + if (priv->is_componentized) { > + struct device_node *ports = > + of_get_child_by_name(dev->dev->of_node, "ports"); > + > + if (ports) { > + crtc->port = of_get_child_by_name(ports, "port"); > + of_node_put(ports); > + } else { > + crtc->port = > + of_get_child_by_name(dev->dev->of_node, "port"); > + } > + WARN_ON(!crtc->port); > + } You didn't comment on why this is not an error? Why should the driver continue even if crtc->port is missing? Tomi
Attachment:
signature.asc
Description: OpenPGP digital signature
_______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel