• Linus Torvalds's avatar
    Merge tag 'module-builtin_driver-v4.1-rc8' of... · 75462c8a
    Linus Torvalds authored
    Merge tag 'module-builtin_driver-v4.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux
    
    Pull module_platform_driver replacement from Paul Gortmaker:
     "Replace module_platform_driver with builtin_platform driver in non
      modules.
    
      We see an increasing number of non-modular drivers using
      modular_driver() type register functions.  There are several downsides
      to letting this continue unchecked:
    
       - The code can appear modular to a reader of the code, and they won't
         know if the code really is modular without checking the Makefile
         and Kconfig to see if compilation is governed by a bool or
         tristate.
    
       - Coders of drivers may be tempted to code up an __exit function that
         is never used, just in order to satisfy the required three args of
         the modular registration function.
    
       - Non-modular code ends up including the <module.h> which increases
         CPP overhead that they don't need.
    
       - It hinders us from performing better separation of the module init
         code and the generic init code.
    
      So here we introduce similar macros for builtin drivers.  Then we
      convert builtin drivers (controlled by a bool Kconfig) by making the
      following type of mapping:
    
        module_platform_driver()       --->  builtin_platform_driver()
        module_platform_driver_probe() --->  builtin_platform_driver_probe().
    
      The set of drivers that are converted here are just the ones that
      showed up as relying on an implicit include of <module.h> during a
      pending header cleanup.  So we convert them here vs adding an include
      of <module.h> to non-modular code to avoid compile fails.  Additonal
      conversions can be done asynchronously at any time.
    
      Once again, an unused module_exit function that is removed here
      appears in the diffstat as an outlier wrt all the other changes"
    
    * tag 'module-builtin_driver-v4.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux:
      drivers/clk: convert sunxi/clk-mod0.c to use builtin_platform_driver
      drivers/power: Convert non-modular syscon-reboot to use builtin_platform_driver
      drivers/soc: Convert non-modular soc-realview to use builtin_platform_driver
      drivers/soc: Convert non-modular tegra/pmc to use builtin_platform_driver
      drivers/cpufreq: Convert non-modular s5pv210-cpufreq.c to use builtin_platform_driver
      drivers/cpuidle: Convert non-modular drivers to use builtin_platform_driver
      drivers/platform: Convert non-modular pdev_bus to use builtin_platform_driver
      platform_device: better support builtin boilerplate avoidance
    75462c8a
pmc.c 25.3 KB