On 01/27/2017 09:40 PM, Marek Vasut wrote: > On 01/27/2017 05:04 PM, Breno Matheus Lima wrote: >> Hi, > > Hi, > >> I'm trying to use kernel 4.10.0-rc5 and DRM_MXS driver on a i.MX6SX SabreSD >> Rev A, but it crashes during the boot, I'm also disabling the FB_MXS driver >> to avoid any conflict. By using the driver FB_MXS the board boots normally >> and the display is working as well. > > OK > >> I would like to know if is possible to use the DRM_MXS driver with the >> deprecated bindings as according to the documentation located at >> Documentation/devicetree/bindings/display/mxsfb.txt, or if is just possible >> to >> use the DRM driver with the new bindings. > > No, the deprecated bindings are deprecated and DO NOT WORK with this > driver. Use the new of-graph stuff. > >> Please find below the log: >> >> [ 1.076530] [drm] Initialized >> [ 1.086305] etnaviv gpu-subsystem: bound 1800000.gpu (ops gpu_ops) >> [ 1.092590] etnaviv-gpu 1800000.gpu: model: GC400, revision: 4645 >> [ 1.098703] etnaviv-gpu 1800000.gpu: Need to move linear window on >> MC1.0, disabling TS >> [ 1.154691] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013). >> [ 1.161425] [drm] No driver support for vblank timestamp query. >> [ 1.167799] OF: graph: no port node found in /soc/aips-bus@02200000 >> /spba-bus@02200000/lcdif@02220000 >> [ 1.177132] Unable to handle kernel NULL pointer dereference at virtual >> address 00000004 > > Try with this patch please: > > diff --git a/drivers/gpu/drm/mxsfb/mxsfb_out.c > b/drivers/gpu/drm/mxsfb/mxsfb_out.c > index fa8d17399407..b8e81422d4e2 100644 > --- a/drivers/gpu/drm/mxsfb/mxsfb_out.c > +++ b/drivers/gpu/drm/mxsfb/mxsfb_out.c > @@ -112,6 +112,7 @@ static int mxsfb_attach_endpoint(struct drm_device *drm, > > int mxsfb_create_output(struct drm_device *drm) > { > + struct mxsfb_drm_private *mxsfb = drm->dev_private; > struct device_node *ep_np = NULL; > struct of_endpoint ep; > int ret; > @@ -127,5 +128,8 @@ int mxsfb_create_output(struct drm_device *drm) > } > } > > + if (!mxsfb->panel) > + return -EPROBE_DEFER; > + > return 0; > } > Rationale behind the patch: IFF you use some odd bindings or your of-graph panel bindings are missing from the DT , THEN the for_each_endpoint_of_node() body is never executed, thus mxsfb->panel remains NULL and yet the function returns 0/success . mxsfb_load() therefore doesn't detect this failure and calls drm_panel_attach() with mxsfb->panel = NULL, thus the crash. -- Best regards, Marek Vasut _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel