Hi Meng, The only situation I could observe that is when fsl,panel was not valid... However, I think with my patch "drm/fsl-dcu: Fix no fb check bug", this situation can be avoided completely: https://lkml.org/lkml/2015/11/18/950 With that patch applied, and a non-existing panel assigned, the DRM driver already fails at probe time gracefully: [ 0.488291] [drm] Initialized drm 1.1.0 20060810 [ 0.501576] fsl-dcu 40058000.dcu: failed to initialize mode setting So I think that a state->fb check for NULL is not necessary at all... Can you test my patch to see if it fixes the issue for you too? -- Stefan On 2015-12-23 21:28, Meng Yi wrote: > Tested-by: Meng Yi <meng.yi@xxxxxxx> > > -----邮件原件----- > 发件人: Dongsheng Wang [mailto:Dongsheng.Wang@xxxxxxxxxxxxx] > 发送时间: Tuesday, December 01, 2015 4:16 PM > 收件人: airlied@xxxxxxxx > 抄送: stefan@xxxxxxxx; dri-devel@xxxxxxxxxxxxxxxxxxxxx; Jianwei Wang > <jianwei.wang.chn@xxxxxxxxx>; Yi Meng-B56799 <B56799@xxxxxxxxxxxxx>; > Wang Dongsheng-B40534 <Dongsheng.Wang@xxxxxxxxxxxxx> > 主题: [RESEND 1/3] drm: fsl-dcu: Fix no fb check bug > > From: Jianwei Wang <jianwei.wang.chn@xxxxxxxxx> > > For state->fb may be NULL in fsl_dcu_drm_plane_atomic_check function, > if so, return -EINVAL. No need check in > fsl_dcu_drm_plane_atomic_update anymore. > > Signed-off-by: Jianwei Wang <jianwei.wang.chn@xxxxxxxxx> > Signed-off-by: Yi Meng <b56799@xxxxxxxxxxxxx> > Signed-off-by: Wang Dongsheng <dongsheng.wang@xxxxxxxxxxxxx> > Tested-by: Stefan Agner <stefan@xxxxxxxx> > > diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c > b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c > index 51daaea..a8932a8 100644 > --- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c > +++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c > @@ -41,6 +41,9 @@ static int fsl_dcu_drm_plane_atomic_check(struct > drm_plane *plane, { > struct drm_framebuffer *fb = state->fb; > > + if (!fb) > + return -EINVAL; > + > switch (fb->pixel_format) { > case DRM_FORMAT_RGB565: > case DRM_FORMAT_RGB888: > @@ -85,9 +88,6 @@ static void fsl_dcu_drm_plane_atomic_update(struct > drm_plane *plane, > unsigned int alpha, bpp; > int index, ret; > > - if (!fb) > - return; > - > index = fsl_dcu_drm_plane_index(plane); > if (index < 0) > return; > -- > 2.1.0.27.g96db324 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel