Hello Dan, On 2014년 06월 10일 21:38, Dan Carpenter wrote: > Hello Inki Dae, > > The patch df5225bc9a87: "drm/exynos: consider deferred probe case" > from May 29, 2014, leads to the following static checker warning: > > drivers/gpu/drm/exynos/exynos_drm_fimd.c:996 fimd_probe() > warn: 'ctx->display' isn't an ERR_PTR > > drivers/gpu/drm/exynos/exynos_drm_fimd.c > 994 > 995 ctx->display = exynos_dpi_probe(dev); > 996 if (IS_ERR(ctx->display)) > 997 return PTR_ERR(ctx->display); > 998 > > Smatch is complaining because my config has CONFIG_DRM_EXYNOS_DPI > disabled. > > 1) If CONFIG_DRM_EXYNOS_DPI isn't enabled, we still return "0". That > will cause a Sparse warning. > It would be no problem. This code will return PTR_ERR(ctx->dislay) only in case that dpi module is enabled. > 2) Also there are still a number of checks for "if (ctx->display)". > Those things are weird to me, are those checks to see > CONFIG_DRM_EXYNOS_DPI is enabled or are they checking that > exynos_dpi_probe() succeeded? > Right. crtc driver, fimd, needs encoder/connector objects. In Exynos drm case, encoder/connector can be created by dpi module for parallel panel, by dsi module for mipi dsi based panel, or by dp module for eDP based panel. So if some board has a parallel panel, encoder/connector objects will be created by dpi module, and then fimd module will refer to ctx->display object to control the parallel panel device. Otherwise, dsi or dp modules will create encoder/connector objects in its driver, and one of them will use its own display object to control corresponding panel device. Thanks, Inki Dae > regards, > dan carpenter > -- > To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html