diff options
author | John Rigby <john.rigby@linaro.org> | 2010-12-20 18:27:51 -0700 |
---|---|---|
committer | Wolfgang Denk <wd@denx.de> | 2010-12-21 11:33:36 +0100 |
commit | 2956532625cf8414ad3efb37598ba34db08d67ec (patch) | |
tree | 19d9df98e764da9970e9cd0d70243fbaa9120fd5 /drivers | |
parent | 71aab09b2c1edd1b6e00819abd1e31c04db04f36 (diff) | |
download | u-boot-imx-2956532625cf8414ad3efb37598ba34db08d67ec.zip u-boot-imx-2956532625cf8414ad3efb37598ba34db08d67ec.tar.gz u-boot-imx-2956532625cf8414ad3efb37598ba34db08d67ec.tar.bz2 |
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 <john.rigby@linaro.org>
Fix some additional places.
Signed-off-by: Wolfgang Denk <wd@denx.de>
Acked-By: Albert ARIBAUD <albert.aribaud@free.fr>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/i2c/omap24xx_i2c.c | 3 | ||||
-rw-r--r-- | drivers/serial/s3c64xx.c | 3 | ||||
-rw-r--r-- | drivers/serial/serial_s5p.c | 3 | ||||
-rw-r--r-- | drivers/serial/serial_sh.c | 4 |
4 files changed, 8 insertions, 5 deletions
diff --git a/drivers/i2c/omap24xx_i2c.c b/drivers/i2c/omap24xx_i2c.c index fab49fd..215be34 100644 --- a/drivers/i2c/omap24xx_i2c.c +++ b/drivers/i2c/omap24xx_i2c.c @@ -27,6 +27,8 @@ #include "omap24xx_i2c.h" +DECLARE_GLOBAL_DATA_PTR; + #define I2C_TIMEOUT 1000 static void wait_for_bb (void); @@ -40,7 +42,6 @@ static unsigned int current_bus; void i2c_init (int speed, int slaveadd) { - DECLARE_GLOBAL_DATA_PTR; int psc, fsscll, fssclh; int hsscll = 0, hssclh = 0; u32 scll, sclh; diff --git a/drivers/serial/s3c64xx.c b/drivers/serial/s3c64xx.c index 6d22df7..a88e930 100644 --- a/drivers/serial/s3c64xx.c +++ b/drivers/serial/s3c64xx.c @@ -25,6 +25,8 @@ #include <asm/arch/s3c6400.h> +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 36333c3..9c1cbf4 100644 --- a/drivers/serial/serial_s5p.c +++ b/drivers/serial/serial_s5p.c @@ -27,6 +27,8 @@ #include <asm/arch/clk.h> #include <serial.h> +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 bfdb2ce..0103a29 100644 --- a/drivers/serial/serial_sh.c +++ b/drivers/serial/serial_sh.c @@ -21,6 +21,8 @@ #include <asm/io.h> #include <asm/processor.h> +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); } |