]> git.sur5r.net Git - u-boot/blobdiff - drivers/inca-ip_sw.c
[PATCH] Clean up Katmai (440SPe) linker script
[u-boot] / drivers / inca-ip_sw.c
index f8fe52ea26db9def4535bcce7eac9272b2b59598..ab22b4d5385417d5563bc73029157a6e3a129fcb 100644 (file)
 
 
 #define DELAY  udelay(10000)
+  /* Sometimes the store word instruction hangs while writing to one
+   * of the Switch registers. Moving the instruction into a separate
+   * function somehow makes the problem go away.
+   */
+static void SWORD(volatile u32 * reg, u32 value)
+{
+       *reg = value;
+}
 
 #define DMA_WRITE_REG(reg, value) *((volatile u32 *)reg) = (u32)value;
 #define DMA_READ_REG(reg, value)    value = (u32)*((volatile u32*)reg)
 #define SW_WRITE_REG(reg, value)   \
-       *((volatile u32*)reg) = (u32)value;\
+       SWORD(reg, value);\
        DELAY;\
-       *((volatile u32*)reg) = (u32)value;
+       SWORD(reg, value);
 
 #define SW_READ_REG(reg, value)           \
        value = (u32)*((volatile u32*)reg);\