Patchwork [U-Boot,2/3,v2] net: emaclite: Move RX/TX ping pong initialization to

login
register
mail settings
Submitter Michal Simek
Date Oct. 13, 2011, 9:23 a.m.
Message ID <1318497803-21874-3-git-send-email-monstr@monstr.eu>
Download mbox | patch
Permalink /patch/119394/
State Accepted
Commit c1044a1ec182be4c9c0b64d42ac9bf8f623d3f68
Headers show

Comments

Michal Simek - Oct. 13, 2011, 9:23 a.m.
Init RX/TX ping pong directly from board not in the driver.

Signed-off-by: Michal Simek <monstr@monstr.eu>

---
v2: Fix merge confict - no function change
---
 .../xilinx/microblaze-generic/microblaze-generic.c |   18 ++++++++++++------
 drivers/net/xilinx_emaclite.c                      |   11 ++++-------
 include/netdev.h                                   |    3 ++-
 3 files changed, 18 insertions(+), 14 deletions(-)
Wolfgang Denk - Oct. 23, 2011, 8:16 p.m.
Dear Michal Simek,

In message <1318497803-21874-3-git-send-email-monstr@monstr.eu> you wrote:
> Init RX/TX ping pong directly from board not in the driver.
> 
> Signed-off-by: Michal Simek <monstr@monstr.eu>
> 
> ---
> v2: Fix merge confict - no function change
> ---
>  .../xilinx/microblaze-generic/microblaze-generic.c |   18 ++++++++++++------
>  drivers/net/xilinx_emaclite.c                      |   11 ++++-------
>  include/netdev.h                                   |    3 ++-
>  3 files changed, 18 insertions(+), 14 deletions(-)

Applied, thanks.

Best regards,

Wolfgang Denk

Patch

diff --git a/board/xilinx/microblaze-generic/microblaze-generic.c b/board/xilinx/microblaze-generic/microblaze-generic.c
index 183e4dc..9b2952f 100644
--- a/board/xilinx/microblaze-generic/microblaze-generic.c
+++ b/board/xilinx/microblaze-generic/microblaze-generic.c
@@ -71,12 +71,18 @@  int fsl_init2 (void) {
 
 int board_eth_init(bd_t *bis)
 {
-	/*
-	 * This board either has PCI NICs or uses the CPU's TSECs
-	 * pci_eth_init() will return 0 if no NICs found, so in that case
-	 * returning -1 will force cpu_eth_init() to be called.
-	 */
+	int ret = 0;
 #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
+	ret |= xilinx_emaclite_initialize(bis, XILINX_EMACLITE_BASEADDR,
+			txpp, rxpp);
 #endif
+	return ret;
 }
diff --git a/drivers/net/xilinx_emaclite.c b/drivers/net/xilinx_emaclite.c
index ac3dae1..9791b9a 100644
--- a/drivers/net/xilinx_emaclite.c
+++ b/drivers/net/xilinx_emaclite.c
@@ -342,7 +342,8 @@  static int emaclite_recv(struct eth_device *dev)
 
 }
 
-int xilinx_emaclite_initialize(bd_t *bis, unsigned long base_addr)
+int xilinx_emaclite_initialize(bd_t *bis, unsigned long base_addr,
+							int txpp, int rxpp)
 {
 	struct eth_device *dev;
 	struct xemaclite *emaclite;
@@ -359,12 +360,8 @@  int xilinx_emaclite_initialize(bd_t *bis, unsigned long 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.%lx", base_addr);
 
diff --git a/include/netdev.h b/include/netdev.h
index a624677..54b52a5 100644
--- a/include/netdev.h
+++ b/include/netdev.h
@@ -97,7 +97,8 @@  int uli526x_initialize(bd_t *bis);
 int armada100_fec_register(unsigned long base_addr);
 int xilinx_axiemac_initialize(bd_t *bis, unsigned long base_addr,
 							unsigned long dma_addr);
-int xilinx_emaclite_initialize(bd_t *bis, unsigned long base_addr);
+int xilinx_emaclite_initialize(bd_t *bis, unsigned long base_addr,
+							int txpp, int rxpp);
 
 /* Boards with PCI network controllers can call this from their board_eth_init()
  * function to initialize whatever's on board.