• Lukas Bulwahn's avatar
    usb: chipidea: make configs for glue drivers visible with EXPERT · d818320e
    Lukas Bulwahn authored
    Commit 6a108a14 ("kconfig: rename CONFIG_EMBEDDED to CONFIG_EXPERT")
    introduces CONFIG_EXPERT to carry the previous intent of CONFIG_EMBEDDED
    and just gives that intent a much better name. That has been clearly a good
    and long overdue renaming, and it is clearly an improvement to the kernel
    build configuration that has shown to help managing the kernel build
    configuration in the last decade.
    
    However, rather than bravely and radically just deleting CONFIG_EMBEDDED,
    this commit gives CONFIG_EMBEDDED a new intended semantics, but keeps it
    open for future contributors to implement that intended semantics:
    
        A new CONFIG_EMBEDDED option is added that automatically selects
        CONFIG_EXPERT when enabled and can be used in the future to isolate
        options that should only be considered for embedded systems (RISC
        architectures, SLOB, etc).
    
    Since then, this CONFIG_EMBEDDED implicitly had two purposes:
    
      - It can make even more options visible beyond what CONFIG_EXPERT makes
        visible. In other words, it may introduce another level of enabling the
        visibility of configuration options: always visible, visible with
        CONFIG_EXPERT and visible with CONFIG_EMBEDDED.
    
      - Set certain default values of some configurations differently,
        following the assumption that configuring a kernel build for an
        embedded system generally starts with a different set of default values
        compared to kernel builds for all other kind of systems.
    
    Considering the first purpose, at the point in time where CONFIG_EMBEDDED
    was renamed to CONFIG_EXPERT, CONFIG_EXPERT already made 130 more options
    become visible throughout all different menus for the kernel configuration.
    Over the last decade, this has gradually increased, so that currently, with
    CONFIG_EXPERT, roughly 170 more options become visible throughout all
    different menus for the kernel configuration. In comparison, currently with
    CONFIG_EMBEDDED enabled, just seven more options are visible, one in x86,
    one in arm, and five for the ChipIdea Highspeed Dual Role Controller.
    
    As the numbers suggest, these two levels of enabling the visibility of even
    more configuration options---beyond what CONFIG_EXPERT enables---never
    evolved to a good solution in the last decade. In other words, this
    additional level of visibility of configuration option with CONFIG_EMBEDDED
    compared to CONFIG_EXPERT has since its introduction never become really
    valuable. It requires quite some investigation to actually understand what
    is additionally visible and it does not differ significantly in complexity
    compared to just enabling CONFIG_EXPERT. This CONFIG_EMBEDDED---or any
    other config to show more detailed options beyond CONFIG_EXPERT---is
    unlikely to be valuable unless somebody puts significant effort in
    identifying how such visibility options can be properly split and creating
    clear criteria, when some config option is visible with CONFIG_EXPERT and
    when some config option is visible only with some further option enabled
    beyond CONFIG_EXPERT, such as CONFIG_EMBEDDED attempted to do. For now, it
    is much more reasonable to simply make those additional seven options that
    visible with CONFIG_EMBEDDED, visible with CONFIG_EXPERT, and then remove
    CONFIG_EMBEDDED. If anyone spends significant effort in structuring the
    visibility of config options, they may re-introduce suitable new config
    options simply as they see fit.
    
    Make the configs for usb chipidea glue drivers visible when CONFIG_EXPERT
    is enabled.
    Signed-off-by: default avatarLukas Bulwahn <lukas.bulwahn@gmail.com>
    Link: https://lore.kernel.org/r/20220908104337.11940-5-lukas.bulwahn@gmail.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    d818320e
Kconfig 1.54 KB