diff options
author | Masahiro Yamada <yamada.m@jp.panasonic.com> | 2014-12-03 17:36:57 +0900 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2014-12-15 07:22:53 -0700 |
commit | e6126a58720ed8e53de93883c3f1572ad3d7b7c3 (patch) | |
tree | e57c32b0d9f8f0a738458f84c0ddb22a682cf67c | |
parent | ba7b38a5295d9bad1a95f53f0a3ade20441a3831 (diff) | |
download | u-boot-imx-e6126a58720ed8e53de93883c3f1572ad3d7b7c3.zip u-boot-imx-e6126a58720ed8e53de93883c3f1572ad3d7b7c3.tar.gz u-boot-imx-e6126a58720ed8e53de93883c3f1572ad3d7b7c3.tar.bz2 |
x86: move arch-specific asmlinkage to <asm/linkage.h>
Commit 65dd74a674d6 (x86: ivybridge: Implement SDRAM init) introduced
x86-specific asmlinkage into arch/x86/include/asm/config.h.
Commit ed0a2fbf14f7 (x86: Add a definition of asmlinkage) added the
same macro define again, this time, into include/common.h.
(Please do not add arch-specific stuff to include/common.h any more;
it is already too cluttered.)
The generic asmlinkage is defined in <linux/linkage.h>. If you want
to override it with an arch-specific one, the best way is to add it
to <asm/linkage.h> like Linux Kernel.
Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Cc: Simon Glass <sjg@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
-rw-r--r-- | arch/x86/include/asm/arch-ivybridge/pei_data.h | 2 | ||||
-rw-r--r-- | arch/x86/include/asm/config.h | 1 | ||||
-rw-r--r-- | arch/x86/include/asm/linkage.h | 6 | ||||
-rw-r--r-- | arch/x86/lib/bios.c | 1 | ||||
-rw-r--r-- | arch/x86/lib/bios.h | 2 | ||||
-rw-r--r-- | include/common.h | 3 | ||||
-rw-r--r-- | include/linux/linkage.h | 2 |
7 files changed, 13 insertions, 4 deletions
diff --git a/arch/x86/include/asm/arch-ivybridge/pei_data.h b/arch/x86/include/asm/arch-ivybridge/pei_data.h index 5026c8b..9453336 100644 --- a/arch/x86/include/asm/arch-ivybridge/pei_data.h +++ b/arch/x86/include/asm/arch-ivybridge/pei_data.h @@ -7,6 +7,8 @@ #ifndef ASM_ARCH_PEI_DATA_H #define ASM_ARCH_PEI_DATA_H +#include <linux/linkage.h> + struct pch_usb3_controller_settings { /* 0: Disable, 1: Enable, 2: Auto, 3: Smart Auto */ uint16_t mode; diff --git a/arch/x86/include/asm/config.h b/arch/x86/include/asm/config.h index c97d988..ff15828 100644 --- a/arch/x86/include/asm/config.h +++ b/arch/x86/include/asm/config.h @@ -10,6 +10,5 @@ #define CONFIG_SYS_GENERIC_BOARD #define CONFIG_LMB #define CONFIG_SYS_BOOT_RAMDISK_HIGH -#define asmlinkage __attribute__((regparm(0))) #endif diff --git a/arch/x86/include/asm/linkage.h b/arch/x86/include/asm/linkage.h new file mode 100644 index 0000000..bdca72e --- /dev/null +++ b/arch/x86/include/asm/linkage.h @@ -0,0 +1,6 @@ +#ifndef _ASM_X86_LINKAGE_H +#define _ASM_X86_LINKAGE_H + +#define asmlinkage CPP_ASMLINKAGE __attribute__((regparm(0))) + +#endif /* _ASM_X86_LINKAGE_H */ diff --git a/arch/x86/lib/bios.c b/arch/x86/lib/bios.c index 298fca6..d1f8933 100644 --- a/arch/x86/lib/bios.c +++ b/arch/x86/lib/bios.c @@ -9,6 +9,7 @@ #include <common.h> #include <bios_emul.h> #include <vbe.h> +#include <linux/linkage.h> #include <asm/cache.h> #include <asm/processor.h> #include <asm/i8259.h> diff --git a/arch/x86/lib/bios.h b/arch/x86/lib/bios.h index 8491b4a..668f4b5 100644 --- a/arch/x86/lib/bios.h +++ b/arch/x86/lib/bios.h @@ -10,6 +10,8 @@ #ifndef _X86_LIB_BIOS_H #define _X86_LIB_BIOS_H +#include <linux/linkage.h> + #define REALMODE_BASE 0x600 #ifdef __ASSEMBLY__ diff --git a/include/common.h b/include/common.h index 46f07fe..4f2f303 100644 --- a/include/common.h +++ b/include/common.h @@ -73,9 +73,6 @@ typedef volatile unsigned char vu_char; #ifdef CONFIG_ARM #define asmlinkage /* nothing */ #endif -#ifdef CONFIG_X86 -#define asmlinkage __attribute__((regparm(0))) -#endif #ifdef CONFIG_BLACKFIN #include <asm/blackfin.h> #endif diff --git a/include/linux/linkage.h b/include/linux/linkage.h index 7435fcd..5797498 100644 --- a/include/linux/linkage.h +++ b/include/linux/linkage.h @@ -17,7 +17,9 @@ #define CPP_ASMLINKAGE #endif +#ifndef asmlinkage #define asmlinkage CPP_ASMLINKAGE +#endif #define SYMBOL_NAME_STR(X) #X #define SYMBOL_NAME(X) X |