2

There is an option in drivers/gpu/drm/Kconfig:

   config DRM_TTM
           tristate
           depends on DRM

This option adds several functions used by DRM GPU drivers to manage videocard memory, so it depends on DRM as we can see.

It is also used by modules.

config DRM_RADEON
        tristate "ATI Radeon"
...
        select DRM_TTM

I have DRM enabled and when I enable one of these modules that selects it, I see this CONFIG_DRM_TTM=y is my .config So far, so good.

But now I want to enable this option but disable all modules that use it (because I need it for 3rd party module which is not part of kernel source tree), so I enable only DRM but I do not see this option both in menuconfig and xconfig.

It seems that I can't enable this option manually, it could only be enabled by other module that selecting it.

From what I understand, this option must be displayed as <> because it is tristate and depends on DRM, so when I enable DRM I must see this option. But I do not.

How could it be? Is there any kind of "hidden" or "helper" option on Kconfig that can't be set manually, but only could be set by other options? Where can I read about it (except `mconf.c`` of course, because I assume my problem is too well known to read the source)

2

Yes, there are “non-visible” configuration symbols which are set by select statements attached to other configuration entries. For example, DRM_TTM is selected by the GPU drivers which need it; it is a tristate because the options which depend on it are themselves tristates.

This is described briefly in the kconfig language documentation; the entry on select says

In general use select only for non-visible symbols (no prompts anywhere) and for symbols with no dependencies. That will limit the usefulness but on the other hand avoid the illegal configurations all over.

A configuration entry is invisible if it has no prompt, either following its type, or using an explicit prompt directive. To make the DRM_TTM configuration entry visible, give it a prompt:

config DRM_TTM
        tristate "TTM"

or

config DRM_TTM
        tristate
        prompt "TTM"
  • Thank you! So, is the following statement correct: "Option is invisible if at least one other option selects it" ? – user996142 Mar 2 at 22:06
  • What is the best approach to enable this option if I do not need other modules? I can remove all selects from different, but it does not look good. – user996142 Mar 2 at 22:28
  • It seems that the true reason of its invisibility is absence of name after "tristate". I will update my question with this info:) – user996142 Mar 2 at 23:02
  • Thanks, I’ve added that to the answer too, I’ll revert your question to its original form. – Stephen Kitt Mar 4 at 20:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.