Skip to contentSkip to conversation

Tegra-specific header file location

U-Boot Stephen Warren 2 participants 2 messages Mar 30, 2016 – Mar 31, 2016

lore
Share & tools
lore
#0 lore raw

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.

#1 lore raw

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 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?

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.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.

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