Patchwork [U-Boot] xilinx_emaclite.c ping-pong macro names

login
register
mail settings
Submitter alain.peteut@space.unibe.ch
Date April 15, 2011, 10:48 a.m.
Message ID <20110415124815.1253591nkjx5al4f@mail.unibe.ch>
Download mbox | patch
Permalink /patch/91350/
State Changes Requested
Headers show

Comments

alain.peteut@space.unibe.ch - April 15, 2011, 10:48 a.m.
Dear all,

The macro name configuring  Ping/Pong didn't match. It has been  
checked on a Spartan3e Starterkit.

Kind regards,
Alain
Wolfgang Denk - April 15, 2011, 11:05 a.m.
Dear alain.peteut@space.unibe.ch,

In message <20110415124815.1253591nkjx5al4f@mail.unibe.ch> you wrote:
> 
> The macro name configuring  Ping/Pong didn't match. It has been  
> checked on a Spartan3e Starterkit.

This should probably be part of the commit message.


Your patch has a number of coding style issues: indentation not by
TAB, trailing white space, etc.  Please fix, then verify by ruinning
through checkpatch, and resubmit.

Thanks.

Best regards,

Wolfgang Denk

Patch

From 35b00080dd397dfa4d8dae2d84423c36a34fe061 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Alain=20P=C3=A9teut?= <peteut@space.unibe.ch>
Date: Fri, 15 Apr 2011 12:44:37 +0200
Subject: [PATCH] xilinx_emaclite.c ping-pong fix
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit


Signed-off-by: Alain Péteut <peteut@space.unibe.ch>
---
 drivers/net/xilinx_emaclite.c |   21 ++++++++++++---------
 1 files changed, 12 insertions(+), 9 deletions(-)

diff --git a/drivers/net/xilinx_emaclite.c b/drivers/net/xilinx_emaclite.c
index 76af939..523f41a 100644
--- a/drivers/net/xilinx_emaclite.c
+++ b/drivers/net/xilinx_emaclite.c
@@ -138,7 +138,9 @@  static int emaclite_init(struct eth_device *dev, bd_t *bis)
 	debug ("EmacLite Initialization Started\n");
 	memset (&emaclite, 0, sizeof (xemaclite));
 	emaclite.baseaddress = dev->iobase;
-
+  
+  emaclite.nexttxbuffertouse = 0;
+  emaclite.nextrxbuffertouse = 0;
 /*
  * TX - TX_PING & TX_PONG initialization
  */
@@ -155,12 +157,13 @@  static int emaclite_init(struct eth_device *dev, bd_t *bis)
 	while ((in_be32 (emaclite.baseaddress + XEL_TSR_OFFSET) &
 		XEL_TSR_PROG_MAC_ADDR) != 0) ;
 
-#ifdef CONFIG_XILINX_EMACLITE_TX_PING_PONG
+#ifdef XILINX_EMACLITE_TX_PING_PONG
 	/* The same operation with PONG TX */
 	out_be32 (emaclite.baseaddress + XEL_TSR_OFFSET + XEL_BUFFER_OFFSET, 0);
 	xemaclite_alignedwrite (dev->enetaddr, emaclite.baseaddress +
 		XEL_BUFFER_OFFSET, ENET_ADDR_LENGTH);
-	out_be32 (emaclite.baseaddress + XEL_TPLR_OFFSET, ENET_ADDR_LENGTH);
+	out_be32 (emaclite.baseaddress + XEL_TPLR_OFFSET + XEL_BUFFER_OFFSET, 
+    ENET_ADDR_LENGTH);
 	out_be32 (emaclite.baseaddress + XEL_TSR_OFFSET + XEL_BUFFER_OFFSET,
 		XEL_TSR_PROG_MAC_ADDR);
 	while ((in_be32 (emaclite.baseaddress + XEL_TSR_OFFSET +
@@ -172,7 +175,7 @@  static int emaclite_init(struct eth_device *dev, bd_t *bis)
  */
 	/* Write out the value to flush the RX buffer */
 	out_be32 (emaclite.baseaddress + XEL_RSR_OFFSET, XEL_RSR_RECV_IE_MASK);
-#ifdef CONFIG_XILINX_EMACLITE_RX_PING_PONG
+#ifdef XILINX_EMACLITE_RX_PING_PONG
 	out_be32 (emaclite.baseaddress + XEL_RSR_OFFSET + XEL_BUFFER_OFFSET,
 		XEL_RSR_RECV_IE_MASK);
 #endif
@@ -222,7 +225,7 @@  static int emaclite_send (struct eth_device *dev, volatile void *ptr, int len)
 		printf ("Error: Timeout waiting for ethernet TX buffer\n");
 		/* Restart PING TX */
 		out_be32 (emaclite.baseaddress + XEL_TSR_OFFSET, 0);
-#ifdef CONFIG_XILINX_EMACLITE_TX_PING_PONG
+#ifdef XILINX_EMACLITE_TX_PING_PONG
 		out_be32 (emaclite.baseaddress + XEL_TSR_OFFSET +
 		XEL_BUFFER_OFFSET, 0);
 #endif
@@ -238,7 +241,7 @@  static int emaclite_send (struct eth_device *dev, volatile void *ptr, int len)
 		&& ((in_be32 ((baseaddress) + XEL_TSR_OFFSET)
 			& XEL_TSR_XMIT_ACTIVE_MASK) == 0)) {
 
-#ifdef CONFIG_XILINX_EMACLITE_TX_PING_PONG
+#ifdef XILINX_EMACLITE_TX_PING_PONG
 		emaclite.nexttxbuffertouse ^= XEL_BUFFER_OFFSET;
 #endif
 		debug ("Send packet from 0x%x\n", baseaddress);
@@ -254,7 +257,7 @@  static int emaclite_send (struct eth_device *dev, volatile void *ptr, int len)
 		out_be32 (baseaddress + XEL_TSR_OFFSET, reg);
 		return 1;
 	}
-#ifdef CONFIG_XILINX_EMACLITE_TX_PING_PONG
+#ifdef XILINX_EMACLITE_TX_PING_PONG
 	/* Switch to second buffer */
 	baseaddress ^= XEL_BUFFER_OFFSET;
 	/* Determine if the expected buffer address is empty */
@@ -290,11 +293,11 @@  static int emaclite_recv(struct eth_device *dev)
 	reg = in_be32 (baseaddress + XEL_RSR_OFFSET);
 	debug ("Testing data at address 0x%x\n", baseaddress);
 	if ((reg & XEL_RSR_RECV_DONE_MASK) == XEL_RSR_RECV_DONE_MASK) {
-#ifdef CONFIG_XILINX_EMACLITE_RX_PING_PONG
+#ifdef XILINX_EMACLITE_RX_PING_PONG
 		emaclite.nextrxbuffertouse ^= XEL_BUFFER_OFFSET;
 #endif
 	} else {
-#ifndef CONFIG_XILINX_EMACLITE_RX_PING_PONG
+#ifndef XILINX_EMACLITE_RX_PING_PONG
 		debug ("No data was available - address 0x%x\n", baseaddress);
 		return 0;
 #else
-- 
1.7.2.5