Init RX/TX ping pong directly in boards not in the driver.

Signed-off-by: Michal Simek <mon...@monstr.eu>
---
 .../xilinx/microblaze-generic/microblaze-generic.c |   11 ++++++++++-
 drivers/net/xilinx_emaclite.c                      |   10 +++-------
 include/netdev.h                                   |    2 +-
 3 files changed, 14 insertions(+), 9 deletions(-)

diff --git a/board/xilinx/microblaze-generic/microblaze-generic.c 
b/board/xilinx/microblaze-generic/microblaze-generic.c
index 183e4dc..1a6e568 100644
--- a/board/xilinx/microblaze-generic/microblaze-generic.c
+++ b/board/xilinx/microblaze-generic/microblaze-generic.c
@@ -77,6 +77,15 @@ int board_eth_init(bd_t *bis)
         * returning -1 will force cpu_eth_init() to be called.
         */
 #ifdef CONFIG_XILINX_EMACLITE
-       return xilinx_emaclite_initialize(bis, XILINX_EMACLITE_BASEADDR);
+       u32 txpp = 0;
+       u32 rxpp = 0;
+# ifdef CONFIG_XILINX_EMACLITE_TX_PING_PONG
+       txpp = 1;
+# endif
+# ifdef CONFIG_XILINX_EMACLITE_RX_PING_PONG
+       rxpp = 1;
+# endif
+       return xilinx_emaclite_initialize(bis, XILINX_EMACLITE_BASEADDR,
+                       txpp, rxpp);
 #endif
 }
diff --git a/drivers/net/xilinx_emaclite.c b/drivers/net/xilinx_emaclite.c
index e0b6ce5..cbf82d9 100644
--- a/drivers/net/xilinx_emaclite.c
+++ b/drivers/net/xilinx_emaclite.c
@@ -346,7 +346,7 @@ static int emaclite_recv(struct eth_device *dev)
 
 }
 
-int xilinx_emaclite_initialize (bd_t *bis, int base_addr)
+int xilinx_emaclite_initialize (bd_t *bis, int base_addr, int txpp, int rxpp)
 {
        struct eth_device *dev;
        struct xemaclite *emaclite;
@@ -363,12 +363,8 @@ int xilinx_emaclite_initialize (bd_t *bis, int base_addr)
 
        dev->priv = emaclite;
 
-#ifdef CONFIG_XILINX_EMACLITE_TX_PING_PONG
-       emaclite->txpp = 1;
-#endif
-#ifdef CONFIG_XILINX_EMACLITE_RX_PING_PONG
-       emaclite->rxpp = 1;
-#endif
+       emaclite->txpp = txpp;
+       emaclite->rxpp = rxpp;
 
        sprintf(dev->name, "Xelite.%x", base_addr);
 
diff --git a/include/netdev.h b/include/netdev.h
index 6f0a971..5abafbc 100644
--- a/include/netdev.h
+++ b/include/netdev.h
@@ -90,7 +90,7 @@ int smc91111_initialize(u8 dev_num, int base_addr);
 int tsi108_eth_initialize(bd_t *bis);
 int uec_standard_init(bd_t *bis);
 int uli526x_initialize(bd_t *bis);
-int xilinx_emaclite_initialize (bd_t *bis, int base_addr);
+int xilinx_emaclite_initialize (bd_t *bis, int base_addr, int txpp, int rxpp);
 int sh_eth_initialize(bd_t *bis);
 int dm9000_initialize(bd_t *bis);
 int fecmxc_initialize(bd_t *bis);
-- 
1.5.5.6

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to