From patchwork Fri Apr 15 12:49:08 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: alain.peteut@space.unibe.ch X-Patchwork-Id: 91355 X-Patchwork-Delegate: wd@denx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from theia.denx.de (theia.denx.de [85.214.87.163]) by ozlabs.org (Postfix) with ESMTP id 2EAAEB6FC1 for ; Fri, 15 Apr 2011 22:49:27 +1000 (EST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 75C9728410; Fri, 15 Apr 2011 14:49:20 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at theia.denx.de Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id G2zEQjX7TZUx; Fri, 15 Apr 2011 14:49:20 +0200 (CEST) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id EBEAE283C3; Fri, 15 Apr 2011 14:49:17 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 8195E283C3 for ; Fri, 15 Apr 2011 14:49:15 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at theia.denx.de Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id a0sOeouu+4KL for ; Fri, 15 Apr 2011 14:49:13 +0200 (CEST) X-policyd-weight: NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5 NOT_IN_BL_NJABL=-1.5 (only DNSBL check requested) Received: from mailhub-lb2.unibe.ch (mailhub-lb2.unibe.ch [130.92.0.83]) by theia.denx.de (Postfix) with ESMTPS id 03FE3283A5 for ; Fri, 15 Apr 2011 14:49:11 +0200 (CEST) Received: from localhost (scanhub.unibe.ch [130.92.5.66]) by mailhub-lb2.unibe.ch (Postfix) with ESMTP id CE48880C1E for ; Fri, 15 Apr 2011 14:49:10 +0200 (CEST) X-Virus-Scanned: by University of Bern - Mailgateway Received: from mailhub-lb2.unibe.ch ([130.92.0.83]) by localhost (scanhub-lb2.unibe.ch [130.92.5.66]) (amavisd-new, port 10024) with LMTP id uOBPUDewa+uX for ; Fri, 15 Apr 2011 14:49:09 +0200 (CEST) Received: from lenny.unibe.ch (lenny.unibe.ch [130.92.4.150]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by mailhub-lb2.unibe.ch (Postfix) with ESMTPS id 315E680C64 for ; Fri, 15 Apr 2011 14:49:09 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by lenny.unibe.ch (Postfix) with ESMTP id 1494678C05F for ; Fri, 15 Apr 2011 14:49:09 +0200 (CEST) X-Virus-checked: by University of Bern - smtp out Received: from lenny.unibe.ch ([127.0.0.1]) by localhost (lenny.unibe.ch [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 4STwlkXiuE1Z for ; Fri, 15 Apr 2011 14:49:09 +0200 (CEST) Received: from localhost (bane [130.92.4.132]) by lenny.unibe.ch (Postfix) with ESMTP id D615B78C05B for ; Fri, 15 Apr 2011 14:49:08 +0200 (CEST) Received: from donar.unibe.ch (donar.unibe.ch [130.92.145.76]) by mail.unibe.ch (Horde Framework) with HTTP; Fri, 15 Apr 2011 14:49:08 +0200 Message-ID: <20110415144908.16476jnz1wxcpps4@mail.unibe.ch> Date: Fri, 15 Apr 2011 14:49:08 +0200 From: alain.peteut@space.unibe.ch To: u-boot@lists.denx.de References: <20110415124815.1253591nkjx5al4f@mail.unibe.ch> <20110415110527.0205E14F02E@gemini.denx.de> In-Reply-To: <20110415110527.0205E14F02E@gemini.denx.de> MIME-Version: 1.0 User-Agent: Internet Messaging Program (IMP) H3 (4.3.4) Subject: Re: [U-Boot] [PATCH] xilinx_emaclite.c ping-pong macro names X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.9 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: u-boot-bounces@lists.denx.de Errors-To: u-boot-bounces@lists.denx.de Please find attached the checked patch. Sorry for the inconvenience. Kind regards, Alain Quoting Wolfgang Denk : > 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 > > -- > DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel > HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany > Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de > Children are natural mimics who act like their parents despite every > effort to teach them good manners. > From 3de8fc98d5bc133e94092f5171eac1c57f3572b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alain=20P=C3=A9teut?= Date: Fri, 15 Apr 2011 14:40:52 +0200 Subject: [PATCH] xilinx_emaclite.c: Ping/Pong fixes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixed macro names for Ping/Pong implementation. Initialisation for emaclite.nexttxbuffertouse and emaclite.nextrxbuffertouse added. Fixed a missed offset (XEL_BUFFER_OFFSET). Signed-off-by: Alain Péteut --- 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..bc081d3 100644 --- a/drivers/net/xilinx_emaclite.c +++ b/drivers/net/xilinx_emaclite.c @@ -139,8 +139,10 @@ static int emaclite_init(struct eth_device *dev, bd_t *bis) memset (&emaclite, 0, sizeof (xemaclite)); emaclite.baseaddress = dev->iobase; + emaclite.nexttxbuffertouse = 0x0; + emaclite.nextrxbuffertouse = 0x0; /* - * TX - TX_PING & TX_PONG initialization + TX - TX_PING & TX_PONG initialization */ /* Restart PING TX */ out_be32 (emaclite.baseaddress + XEL_TSR_OFFSET, 0); @@ -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