From 2956532625cf8414ad3efb37598ba34db08d67ec Mon Sep 17 00:00:00 2001 From: John Rigby Date: Mon, 20 Dec 2010 18:27:51 -0700 Subject: Move DECLARE_GLOBAL_DATA_PTR to file scope It can be optimised out by the compiler otherwise resulting in obscure errors like a board not booting. This has been documented in README since 2006 when these were first fixed up for GCC 4.x. Signed-off-by: John Rigby Fix some additional places. Signed-off-by: Wolfgang Denk Acked-By: Albert ARIBAUD --- drivers/serial/s3c64xx.c | 3 ++- drivers/serial/serial_s5p.c | 3 ++- drivers/serial/serial_sh.c | 4 ++-- 3 files changed, 6 insertions(+), 4 deletions(-) (limited to 'drivers/serial') diff --git a/drivers/serial/s3c64xx.c b/drivers/serial/s3c64xx.c index 6d22df7cf4..a88e930945 100644 --- a/drivers/serial/s3c64xx.c +++ b/drivers/serial/s3c64xx.c @@ -25,6 +25,8 @@ #include +DECLARE_GLOBAL_DATA_PTR; + #ifdef CONFIG_SERIAL1 #define UART_NR S3C64XX_UART0 @@ -68,7 +70,6 @@ static const int udivslot[] = { void serial_setbrg(void) { - DECLARE_GLOBAL_DATA_PTR; s3c64xx_uart *const uart = s3c64xx_get_base_uart(UART_NR); u32 pclk = get_PCLK(); u32 baudrate = gd->baudrate; diff --git a/drivers/serial/serial_s5p.c b/drivers/serial/serial_s5p.c index 36333c3d49..9c1cbf4a48 100644 --- a/drivers/serial/serial_s5p.c +++ b/drivers/serial/serial_s5p.c @@ -27,6 +27,8 @@ #include #include +DECLARE_GLOBAL_DATA_PTR; + static inline struct s5p_uart *s5p_get_base_uart(int dev_index) { u32 offset = dev_index * sizeof(struct s5p_uart); @@ -61,7 +63,6 @@ static const int udivslot[] = { void serial_setbrg_dev(const int dev_index) { - DECLARE_GLOBAL_DATA_PTR; struct s5p_uart *const uart = s5p_get_base_uart(dev_index); u32 uclk = get_uart_clk(dev_index); u32 baudrate = gd->baudrate; diff --git a/drivers/serial/serial_sh.c b/drivers/serial/serial_sh.c index bfdb2ce77a..0103a29186 100644 --- a/drivers/serial/serial_sh.c +++ b/drivers/serial/serial_sh.c @@ -21,6 +21,8 @@ #include #include +DECLARE_GLOBAL_DATA_PTR; + #if defined(CONFIG_CONS_SCIF0) # define SCIF_BASE SCIF0_BASE #elif defined(CONFIG_CONS_SCIF1) @@ -131,8 +133,6 @@ void serial_setbrg(void) { - DECLARE_GLOBAL_DATA_PTR; - writeb(SCBRR_VALUE(gd->baudrate, CONFIG_SYS_CLK_FREQ), SCBRR); } -- cgit v1.2.1