consolidate mdelay by providing a common function for all users
There are several mdelay() definitions in the driver and
board code. Remove them all and provide a common mdelay()
in lib/time.c.
Signed-off-by: Anatolij Gustschin <agust@denx.de>
Acked-by: Mike Frysinger <vapier@gentoo.org>
diff --git a/arch/arm/cpu/arm920t/s3c24x0/usb_ohci.c b/arch/arm/cpu/arm920t/s3c24x0/usb_ohci.c
index 9a0bbae..263d2ce 100644
--- a/arch/arm/cpu/arm920t/s3c24x0/usb_ohci.c
+++ b/arch/arm/cpu/arm920t/s3c24x0/usb_ohci.c
@@ -1540,7 +1540,6 @@
writel(RH_HS_LPSC, &ohci->regs->roothub.status);
#endif /* OHCI_USE_NPS */
-#define mdelay(n) ({unsigned long msec=(n); while (msec--) udelay(1000);})
/* POTPGT delay is bits 24-31, in 2 ms units. */
mdelay((roothub_a(ohci) >> 23) & 0x1fe);
diff --git a/arch/mips/cpu/mips32/au1x00/au1x00_usb_ohci.c b/arch/mips/cpu/mips32/au1x00/au1x00_usb_ohci.c
index 0bc2305..866dd6c 100644
--- a/arch/mips/cpu/mips32/au1x00/au1x00_usb_ohci.c
+++ b/arch/mips/cpu/mips32/au1x00/au1x00_usb_ohci.c
@@ -1448,7 +1448,6 @@
writel (RH_HS_LPSC, &ohci->regs->roothub.status);
#endif /* OHCI_USE_NPS */
-#define mdelay(n) ({unsigned long msec=(n); while (msec--) udelay(1000);})
/* POTPGT delay is bits 24-31, in 2 ms units. */
mdelay ((roothub_a (ohci) >> 23) & 0x1fe);
diff --git a/arch/powerpc/cpu/mpc5xxx/usb_ohci.c b/arch/powerpc/cpu/mpc5xxx/usb_ohci.c
index 7976e4d..2fc1180 100644
--- a/arch/powerpc/cpu/mpc5xxx/usb_ohci.c
+++ b/arch/powerpc/cpu/mpc5xxx/usb_ohci.c
@@ -1455,7 +1455,6 @@
writel (RH_HS_LPSC, &ohci->regs->roothub.status);
#endif /* OHCI_USE_NPS */
-#define mdelay(n) ({unsigned long msec=(n); while (msec--) udelay(1000);})
/* POTPGT delay is bits 24-31, in 2 ms units. */
mdelay ((roothub_a (ohci) >> 23) & 0x1fe);
diff --git a/arch/powerpc/cpu/ppc4xx/usb_ohci.c b/arch/powerpc/cpu/ppc4xx/usb_ohci.c
index a9edacd..fe091e3 100644
--- a/arch/powerpc/cpu/ppc4xx/usb_ohci.c
+++ b/arch/powerpc/cpu/ppc4xx/usb_ohci.c
@@ -1462,7 +1462,6 @@
writel (RH_HS_LPSC, &ohci->regs->roothub.status);
#endif /* OHCI_USE_NPS */
-#define mdelay(n) ({unsigned long msec=(n); while (msec--) udelay(1000);})
/* POTPGT delay is bits 24-31, in 2 ms units. */
mdelay ((roothub_a (ohci) >> 23) & 0x1fe);
diff --git a/arch/powerpc/include/asm/4xx_pcie.h b/arch/powerpc/include/asm/4xx_pcie.h
index 90e0bd9..fbdc28e 100644
--- a/arch/powerpc/include/asm/4xx_pcie.h
+++ b/arch/powerpc/include/asm/4xx_pcie.h
@@ -389,14 +389,6 @@
return 0;
}
-static inline void mdelay(int n)
-{
- u32 ms = n;
-
- while (ms--)
- udelay(1000);
-}
-
#if defined(PCIE0_SDR)
static inline u32 sdr_base(int port)
{
diff --git a/board/amcc/taishan/lcd.c b/board/amcc/taishan/lcd.c
index 7f7730a..8208ef3 100644
--- a/board/amcc/taishan/lcd.c
+++ b/board/amcc/taishan/lcd.c
@@ -35,8 +35,6 @@
#define LCD_DATA_ADDR ((volatile char *)(CONFIG_SYS_EBC2_LCM_BASE+1))
#define LCD_BLK_CTRL ((volatile char *)(CONFIG_SYS_EBC1_FPGA_BASE+0x2))
-#define mdelay(t) ({unsigned long msec=(t); while (msec--) { udelay(1000);}})
-
static int g_lcd_init_b = 0;
static char *amcc_logo = " AMCC TAISHAN 440GX EvalBoard";
static char addr_flag = 0x80;
diff --git a/board/freescale/mx35pdk/mx35pdk.c b/board/freescale/mx35pdk/mx35pdk.c
index 9eefe5e..8f9b857 100644
--- a/board/freescale/mx35pdk/mx35pdk.c
+++ b/board/freescale/mx35pdk/mx35pdk.c
@@ -46,8 +46,6 @@
#error "CONFIG_BOARD_EARLY_INIT_F must be set for this board"
#endif
-#define mdelay(n) ({unsigned long msec = (n); while (msec--) udelay(1000); })
-
DECLARE_GLOBAL_DATA_PTR;
int dram_init(void)
diff --git a/board/karo/tx25/tx25.c b/board/karo/tx25/tx25.c
index 307ffd0..ec83f99 100644
--- a/board/karo/tx25/tx25.c
+++ b/board/karo/tx25/tx25.c
@@ -31,12 +31,6 @@
#include <asm/gpio.h>
#include <asm/arch/sys_proto.h>
-static void mdelay(int n)
-{
- while (n-- > 0)
- udelay(1000);
-}
-
DECLARE_GLOBAL_DATA_PTR;
#ifdef CONFIG_FEC_MXC
diff --git a/board/linkstation/hwctl.c b/board/linkstation/hwctl.c
index 9fd56ae..d2090be 100644
--- a/board/linkstation/hwctl.c
+++ b/board/linkstation/hwctl.c
@@ -19,8 +19,6 @@
#include <command.h>
#include <asm/io.h>
-#define mdelay(n) udelay((n)*1000)
-
#define AVR_PORT CONFIG_SYS_NS16550_COM2
/* 2005.5.10 BUFFALO add */
diff --git a/drivers/block/fsl_sata.c b/drivers/block/fsl_sata.c
index b101bd7..6b35173 100644
--- a/drivers/block/fsl_sata.c
+++ b/drivers/block/fsl_sata.c
@@ -50,13 +50,6 @@
#endif
};
-static inline void mdelay(unsigned long msec)
-{
- unsigned long i;
- for (i = 0; i < msec; i++)
- udelay(1000);
-}
-
static inline void sdelay(unsigned long sec)
{
unsigned long i;
diff --git a/drivers/block/ftide020.c b/drivers/block/ftide020.c
index 2eef3e9..4a7a07f 100644
--- a/drivers/block/ftide020.c
+++ b/drivers/block/ftide020.c
@@ -54,8 +54,6 @@
#define WRITE_CMD(x) outl((x), &ftide020->cmd_fifo) /* 0x04 */
#define READ_STATUS() inl(&ftide020->cmd_fifo) /* 0x04 */
-#define mdelay(n) ({unsigned long msec = (n); while (msec--) udelay(1000); })
-
void ftide_set_device(int cx8, int dev)
{
static struct ftide020_s *ftide020 = (struct ftide020_s *) FTIDE_BASE;
diff --git a/drivers/net/e1000.c b/drivers/net/e1000.c
index 98145bc..01bdf81 100644
--- a/drivers/net/e1000.c
+++ b/drivers/net/e1000.c
@@ -50,7 +50,6 @@
#define virt_to_bus(devno, v) pci_virt_to_mem(devno, (void *) (v))
#define bus_to_phys(devno, a) pci_mem_to_phys(devno, a)
-#define mdelay(n) udelay((n)*1000)
#define E1000_DEFAULT_PCI_PBA 0x00000030
#define E1000_DEFAULT_PCIE_PBA 0x000a0026
diff --git a/drivers/net/ftgmac100.c b/drivers/net/ftgmac100.c
index 821840f..0af0c34 100644
--- a/drivers/net/ftgmac100.c
+++ b/drivers/net/ftgmac100.c
@@ -33,8 +33,6 @@
#define ETH_ZLEN 60
-#define mdelay(n) ({unsigned long msec = (n); while (msec--) udelay(1000); })
-
/* RBSR - hw default init value is also 0x640 */
#define RBSR_DEFAULT_VALUE 0x640
diff --git a/drivers/net/ne2000.c b/drivers/net/ne2000.c
index 7a85314..3939158 100644
--- a/drivers/net/ne2000.c
+++ b/drivers/net/ne2000.c
@@ -78,7 +78,6 @@
/* NE2000 base header file */
#include "ne2000_base.h"
-#define mdelay(n) udelay((n)*1000)
/* find prom (taken from pc_net_cs.c from Linux) */
#include "8390.h"
diff --git a/drivers/net/ne2000_base.c b/drivers/net/ne2000_base.c
index f93f932..f0cd2b6 100644
--- a/drivers/net/ne2000_base.c
+++ b/drivers/net/ne2000_base.c
@@ -77,7 +77,6 @@
#include <net.h>
#include <malloc.h>
-#define mdelay(n) udelay((n)*1000)
/* forward definition of function used for the uboot interface */
void uboot_push_packet_len(int len);
void uboot_push_tx_done(int key, int val);
diff --git a/drivers/net/smc911x.c b/drivers/net/smc911x.c
index a677fd4..e34b487 100644
--- a/drivers/net/smc911x.c
+++ b/drivers/net/smc911x.c
@@ -35,8 +35,6 @@
void pkt_data_push(struct eth_device *dev, u32 addr, u32 val) \
__attribute__ ((weak, alias ("smc911x_reg_write")));
-#define mdelay(n) udelay((n)*1000)
-
static void smc911x_handle_mac_address(struct eth_device *dev)
{
unsigned long addrh, addrl;
diff --git a/drivers/usb/host/ohci-hcd.c b/drivers/usb/host/ohci-hcd.c
index c20d706..60c9595 100644
--- a/drivers/usb/host/ohci-hcd.c
+++ b/drivers/usb/host/ohci-hcd.c
@@ -1749,7 +1749,6 @@
ohci_writel(RH_HS_LPSC, &ohci->regs->roothub.status);
#endif /* OHCI_USE_NPS */
-#define mdelay(n) ({unsigned long msec = (n); while (msec--) udelay(1000); })
/* POTPGT delay is bits 24-31, in 2 ms units. */
mdelay((roothub_a(ohci) >> 23) & 0x1fe);
diff --git a/drivers/usb/host/sl811-hcd.c b/drivers/usb/host/sl811-hcd.c
index 82a8b36..c713d42 100644
--- a/drivers/usb/host/sl811-hcd.c
+++ b/drivers/usb/host/sl811-hcd.c
@@ -51,8 +51,6 @@
#define SL811_ADR (0x50000000)
#define SL811_DAT (0x50000001)
-#define mdelay(n) ({unsigned long msec=(n); while (msec--) udelay(1000);})
-
#ifdef SL811_DEBUG
static int debug = 9;
#endif
diff --git a/include/common.h b/include/common.h
index e3ef66d..ccd3dd7 100644
--- a/include/common.h
+++ b/include/common.h
@@ -706,6 +706,7 @@
/* lib/time.c */
void udelay (unsigned long);
+void mdelay(unsigned long);
/* lib/uuid.c */
void uuid_str_to_bin(const char *uuid, unsigned char *out);
diff --git a/lib/time.c b/lib/time.c
index a309c26..6e2937b 100644
--- a/lib/time.c
+++ b/lib/time.c
@@ -41,3 +41,9 @@
usec -= kv;
} while(usec);
}
+
+void mdelay(unsigned long msec)
+{
+ while (msec--)
+ udelay(1000);
+}