On Fri, Jan 01, 2016 at 11:04:07PM +0100, Arnd Bergmann wrote: > CONFIG_DRM_HDLCD is a tristate option that depends on the boolean > CONFIG_DRM_ARM, which in turn depends on the tristate CONFIG_DRM. > The effect of this is that a configuration with CONFIG_DRM=m > and CONFIG_DRM_HDLCD=y can be chosen, but won't link because the > DRM core symbols are not reachable from builtin code: > > drivers/built-in.o: In function `hdlcd_drm_unbind': > drivers/gpu/drm/arm/hdlcd_drv.c:445: undefined reference to `drm_fbdev_cma_fini' > drivers/gpu/drm/arm/hdlcd_drv.c:448: undefined reference to `drm_kms_helper_poll_fini' > drivers/gpu/drm/arm/hdlcd_drv.c:450: undefined reference to `drm_vblank_cleanup' > drivers/gpu/drm/arm/hdlcd_drv.c:452: undefined reference to `drm_irq_uninstall' > drivers/gpu/drm/arm/hdlcd_drv.c:460: undefined reference to `drm_mode_config_cleanup' > drivers/gpu/drm/arm/hdlcd_drv.c:461: undefined reference to `drm_dev_unregister' > drivers/gpu/drm/arm/hdlcd_drv.c:462: undefined reference to `drm_dev_unref' > ... > > This adds another dependency on CONFIG_DRM to enforce that DRM_HDLCD > cannot be builtin if DRM is not. Ugh... wouldn't it be much simpler to get rid of DRM_ARM? It seems like a completely superfluous option to me. I don't think we've ever had the equivalent of "vendor" Kconfig options in DRM, and I don't see why we'd need to start now. If ARM was going to add another driver it can simply have a separate Kconfig entry. There should be no need to select the vendor option first. Thierry