Issue
According to this note:
When multiple built-in modules (especially drivers) provide the same capability, they're prioritized by link order specified by the order listed in Makefile.
Furthermore:
However, the order in this file is indeterministic (depends on filesystem listing order of installed modules). This causes confusion.
The solution is two-parted. This patch updates kbuild such that it generates and installs modules.order which contains the name of modules ordered according to Makefile.
What happens if a system has multiple drivers providing the same capabilities from which some are built-ins and others are loadable modules?
Which one is prioritized in this case? Is it always the built-in? And how can I change the priority (if this is possible)?
I thought about reordering them in modules.alias or modules.order but this wouldn't work I guess since built-ins are not listed there - right?
Solution
I found the answer in the meanwhile.
To make a long story short: Yes, builtin drivers are in general prioritized over loadable drivers. Just because they are registered first and "first comes first serves" principle while binding.
Answered By - ataraxis Answer Checked By - Senaida (WPSolving Volunteer)