Tegra-specific header file location
Masahiro,
I'm about to work on some refactoring of the Tegra-specific header files in U-Boot to enable support for another Tegra variant. I'd like to confirm where you think header files should be located before doing that.
I believe you want Tegra-specific headers moved into arch/arm/mach-tegra/include. That would probably be a good location for headers currently in arch/arm/include/asm/arch-tegra/. Does that sound correct to you?
What about SoC-specific headers currently in arch/arm/include/asm/arch-tegraNNN/; should they move to arch/arm/mach-tegra/tegraNNN/include?
A number of those header files primarily contain driver-internal definitions such as HW register layouts. I'd like to propose moving this private information into the relevant drivers/ directories where the driver implementation already is. There is no need to place it in an include directory where any C file could include it. For example, 99% of arch/arm/include/asm/arch-tegra/tegra_mmc.h might move to drivers/mmc/tegra_mmc_{priv,internal}.h or even into drivers/mmc/tegra_mmc.c itself. The only thing that wouldn't move is the public prototype for pad_init_mmc(); a function the MMC driver calls and board code is expected to implement. I am considering making a single header that defines all those Tegra-specific function prototypes so we can reduce the number of header files too. What do you think about this.
Hi Stephen,
2016-03-31 7:48 GMT+09:00 Stephen Warren <[email protected]>:
Quoted 8 lines
Masahiro,
I'm about to work on some refactoring of the Tegra-specific header files in U-Boot to enable support for another Tegra variant. I'd like to confirm where you think header files should be located before doing that.
I believe you want Tegra-specific headers moved into
arch/arm/mach-tegra/include.
Yes. I think it is better to collect SoC code into a single directory.
Quoted 7 lines
That would probably be a good location for
headers currently inarch/arm/include/asm/arch-tegra/. Does that sound correct to you?What about SoC-specific headers currently in
arch/arm/include/asm/arch-tegraNNN/; should they move toarch/arm/mach-tegra/tegraNNN/include?
This is up to you. arch/arm/mach-tegra/tegraNNN/include looks good to me, though.
Quoted 4 lines
A number of those header files primarily contain driver-internal definitions such as HW register layouts. I'd like to propose moving this private information into the relevant
drivers/directories where the driver implementation already is. There is no need to place it in an include
Quoted 8 lines
directory where any C file could include it. For example, 99% of
arch/arm/include/asm/arch-tegra/tegra_mmc.hmight move todrivers/mmc/tegra_mmc_{priv,internal}.hor even intodrivers/mmc/tegra_mmc.citself. The only thing that wouldn't move is the public prototype forpad_init_mmc(); a function the MMC driver calls and board code is expected to implement. I am considering making a single header that defines all those Tegra-specific function prototypes so we can reduce the number of header files too. What do you think about this.
Great idea!
Ultimately, arch/arm/mach-<soc>/include/ may go away (like Linux) if we convert all the drivers to driver model.
Please note there is neither arch/arm/mach-uniphier/include/mach/ nor arch/arm/include/asm/arch-uniphier/.
Signature · 2 lines
Best Regards Masahiro Yamada