Re: [linux-sunxi] Re: Regression on the sun4i-drm driver by cma helper change

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Wed, Jul 11, 2018 at 8:34 PM Daniel Vetter <daniel.vetter@xxxxxxxx> wrote:
>
> On Wed, Jul 11, 2018 at 4:52 PM, Noralf Trønnes <noralf@xxxxxxxxxxx> wrote:
> >
> > Den 11.07.2018 16.06, skrev Maxime Ripard:
> >>
> >> CC'ing Noralf and Daniel,
> >>
> >> On Wed, Jul 11, 2018 at 09:47:53PM +0800, Icenowy Zheng wrote:
> >>>
> >>> Today, during testing the Banana Pi M2 Zero HDMI patch, I found a
> >>> regression on the sun4i-drm driver, which happenes because of the cma
> >>> helper change.
> >>>
> >>> The bad commit is 894a677f4b3e6d2ab8d01bb46c1fbd5f92e4591b ("drm/cma-
> >>> helper: Use the generic fbdev emulation").
> >>>
> >>> If this commit is present, sun4i_framebuffer_init() will return
> >>> -ENODEV, because of the call of drm_client_new(). In this case sun4i-
> >>> drv will fail to probe, and all components will be unbound.
> >>>
> >>> By reverting the commit, sun4i-drv loads and HDMI output is correct.
> >>>
> >>> Could anyone investigate into this, please?
> >>
> >> Any ideas?
> >
> >
> > I think it's because drm_fb_cma_fbdev_init() is called before
> > drm_dev_register() and that this is what returns -ENODEV:
> >
> > int drm_client_new(struct drm_device *dev, struct drm_client_dev *client,
> >            const char *name, const struct drm_client_funcs *funcs)
> > {
> > ...
> >     mutex_lock(&dev->clientlist_mutex);
> >     registered = dev->registered;
> >     if (registered)
> >         list_add(&client->list, &dev->clientlist);
> >     mutex_unlock(&dev->clientlist_mutex);
> >     if (!registered) {
> >         ret = -ENODEV;
> >         goto err_close;
> >     }
> >
> > I would have been nice to get it confirmed that indeed this is the case.
> >
> > Maybe we should remove this check temporarily until all have converted to
> > drm_fbdev_generic_setup() which will be called after drm_dev_register().
> >
> > I'll come back when I have looked at the other drivers to see in which
> > order they register fbdev and DRM.
>
> Yeah I don't think we can require that drivers have called
> drm_dev_register before setting up the fbdev stuff, that will break
> the world. What we might want to consider is a ->register callback
> (for e.g. framebuffer_register, but not all the stuff leading up to
> it), but for now I don't think there's a need for that.

Look like this is still exists in linux-next, with recent testing any
suggestion or is it already fixed?

Jagan.
_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/dri-devel




[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux