Timer: Fix misuse of ARM *timer_masked() functions outside arch/arm
[pandora-u-boot.git] / board / cm41xx / flash.c
index 2e66872..d6fd519 100644 (file)
@@ -209,6 +209,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
        int flag, prot, sect;
        ulong type;
        int rcode = 0;
+       ulong start;
 
        if ((s_first < 0) || (s_first > s_last)) {
                if (info->flash_id == FLASH_UNKNOWN) {
@@ -250,7 +251,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
                        printf ("Erasing sector %2d ... ", sect);
 
                        /* arm simple, non interrupt dependent timer */
-                       reset_timer_masked ();
+                       start = get_timer(0);
 
                        addr = (volatile unsigned char *) (info->start[sect]);
                        *addr = 0x50;   /* clear status register */
@@ -258,7 +259,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
                        *addr = 0xD0;   /* erase confirm */
 
                        while (((status = *addr) & 0x80) != 0x80) {
-                               if (get_timer_masked () >
+                               if (get_timer(start) >
                                    CONFIG_SYS_FLASH_ERASE_TOUT) {
                                        printf ("Timeout\n");
                                        *addr = 0xB0;   /* suspend erase */
@@ -370,6 +371,7 @@ static int write_data (flash_info_t * info, ulong dest, unsigned char data)
        volatile unsigned char *addr = (volatile unsigned char *) dest;
        ulong status;
        int flag;
+       ulong start;
 
        /* Check if Flash is (sufficiently) erased */
        if ((*addr & data) != data) {
@@ -384,11 +386,11 @@ static int write_data (flash_info_t * info, ulong dest, unsigned char data)
        *addr = data;
 
        /* arm simple, non interrupt dependent timer */
-       reset_timer_masked ();
+       start = get_timer(0);
 
        /* wait while polling the status register */
        while (((status = *addr) & 0x80) != 0x80) {
-               if (get_timer_masked () > CONFIG_SYS_FLASH_WRITE_TOUT) {
+               if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
                        *addr = 0xFF;   /* restore read mode */
                        return (1);
                }