From patchwork Fri May 24 12:45:34 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rajeshwari Shinde X-Patchwork-Id: 17197 Return-Path: X-Original-To: linaro@patches.linaro.org Delivered-To: linaro@patches.linaro.org Received: from mail-vb0-f72.google.com (mail-vb0-f72.google.com [209.85.212.72]) by ip-10-151-82-157.ec2.internal (Postfix) with ESMTPS id 69B69238FC for ; Fri, 24 May 2013 12:40:24 +0000 (UTC) Received: by mail-vb0-f72.google.com with SMTP id w15sf3726319vbf.3 for ; Fri, 24 May 2013 05:39:26 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:x-beenthere:x-forwarded-to:x-forwarded-for :delivered-to:x-auditid:from:to:cc:subject:date:message-id:x-mailer :x-brightmail-tracker:x-brightmail-tracker:dlp-filter:x-mtr :x-cfilter-loop:x-gm-message-state:x-original-sender :x-original-authentication-results:precedence:mailing-list:list-id :x-google-group-id:list-post:list-help:list-archive:list-unsubscribe; bh=k3yHooWTgaMsXqy6rxIYNch6tP9gXlc0DEFe4XMesWg=; b=Z36XYnfuHBzhqgPI5Z4s6jySHt7yZOXCsgNEam9Ad8+b/j4chhj2sScoqtZ9JSqVbp uLeJASS8ujCJpLVjVtGGg2pC6Xp9TwthOncn6F8iKWeeG+NF/fEzmqEkpRAVx+Vo1ZYX HZT4PT3plNy6ovKn0Pomy0LnmLgmqDeTVSZQji2DuObPIVssA/L/NHKia4VXhsybwkEZ MCOIp9hSzi070nwjaynVymud5v4uaYV18TIlIxXVPDyJHfQukBftmTwUNcpzMoB6N3HC HhnQ8CUvMdc+5Qn2o4nz/lMntAJ8jCG0dTSEMGijqIobMx58PYHN6UtKf6FZtYfQY/sK KlhA== X-Received: by 10.236.68.164 with SMTP id l24mr8543970yhd.19.1369399166160; Fri, 24 May 2013 05:39:26 -0700 (PDT) MIME-Version: 1.0 X-BeenThere: patchwork-forward@linaro.org Received: by 10.49.70.164 with SMTP id n4ls1848693qeu.64.gmail; Fri, 24 May 2013 05:39:26 -0700 (PDT) X-Received: by 10.52.66.229 with SMTP id i5mr7085998vdt.131.1369399166010; Fri, 24 May 2013 05:39:26 -0700 (PDT) Received: from mail-vc0-f169.google.com (mail-vc0-f169.google.com [209.85.220.169]) by mx.google.com with ESMTPS id p8si9321750vdv.96.2013.05.24.05.39.25 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Fri, 24 May 2013 05:39:26 -0700 (PDT) Received-SPF: neutral (google.com: 209.85.220.169 is neither permitted nor denied by best guess record for domain of patch+caf_=patchwork-forward=linaro.org@linaro.org) client-ip=209.85.220.169; Received: by mail-vc0-f169.google.com with SMTP id kw10so3118200vcb.28 for ; Fri, 24 May 2013 05:39:25 -0700 (PDT) X-Received: by 10.58.172.67 with SMTP id ba3mr8202134vec.58.1369399165822; Fri, 24 May 2013 05:39:25 -0700 (PDT) X-Forwarded-To: patchwork-forward@linaro.org X-Forwarded-For: patch@linaro.org patchwork-forward@linaro.org Delivered-To: patches@linaro.org Received: by 10.220.126.138 with SMTP id c10csp99457vcs; Fri, 24 May 2013 05:39:25 -0700 (PDT) X-Received: by 10.68.164.196 with SMTP id ys4mr11704164pbb.170.1369399164438; Fri, 24 May 2013 05:39:24 -0700 (PDT) Received: from mailout3.samsung.com (mailout3.samsung.com. [203.254.224.33]) by mx.google.com with ESMTP id pw6si5897762pac.182.2013.05.24.05.39.23 for ; Fri, 24 May 2013 05:39:24 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of rajeshwari.s@samsung.com designates 203.254.224.33 as permitted sender) client-ip=203.254.224.33; Received: from epcpsbgr2.samsung.com (u142.gpu120.samsung.co.kr [203.254.230.142]) by mailout3.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0MNA008HQZ48T4U0@mailout3.samsung.com> for patches@linaro.org; Fri, 24 May 2013 21:38:32 +0900 (KST) Received: from epcpsbgm1.samsung.com ( [172.20.52.125]) by epcpsbgr2.samsung.com (EPCPMTA) with SMTP id BB.23.08825.84F5F915; Fri, 24 May 2013 21:38:32 +0900 (KST) X-AuditID: cbfee68e-b7f276d000002279-aa-519f5f48ebfc Received: from epmmp1.local.host ( [203.254.227.16]) by epcpsbgm1.samsung.com (EPCPMTA) with SMTP id E6.DE.28381.84F5F915; Fri, 24 May 2013 21:38:32 +0900 (KST) Received: from rajeshwari-linux.sisodomain.com ([107.108.215.115]) by mmp1.samsung.com (Oracle Communications Messaging Server 7u4-24.01(7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTPA id <0MNA005HFZ2HNG70@mmp1.samsung.com>; Fri, 24 May 2013 21:38:32 +0900 (KST) From: Rajeshwari Shinde To: u-boot@lists.denx.de Cc: patches@linaro.org, sjg@chromium.org, mk7.kang@samsung.com, afleming@gmail.com, jh80.chung@samsung.com, jagannadh.teki@gmail.com, u-boot-review@google.com Subject: [PATCH V2] MMC: DWMMC: Fix FIFO_DEPTH calculation Date: Fri, 24 May 2013 18:15:34 +0530 Message-id: <1369399534-30320-1-git-send-email-rajeshwari.s@samsung.com> X-Mailer: git-send-email 1.7.4.4 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrFLMWRmVeSWpSXmKPExsWyRsSkVtcjfn6gweRL8hY3rv9ks9i1tYXV 4savNlaLjiMtjBZTDn9hsfi2ZRujxfLXG9kt3u7tZHfg8JjdcJHFY+esu+weCzaVety5tofN 4+ydHYwefVtWMQawRXHZpKTmZJalFunbJXBltP1cz1LwSqBix7lp7A2Mf3i7GDk5JARMJK6c +csEYYtJXLi3nq2LkYtDSGApo0TH+/1sMEUzZm1jgkgsYpQ4NuM4VNVEJonOzfPB2tkEjCS2 npzGCGKLCEhI/Oq/yghSxAzSsW3zA7BRwgJWEs82nAKzWQRUJZ6+X8UCYvMKeEhM2fwO6g4F iWNTv7KCNEsI9LNLnNzRzgzRICDxbfIhoAYOoISsxKYDzBD1khIHV9xgmcAouICRYRWjaGpB ckFxUnqRkV5xYm5xaV66XnJ+7iZGYDif/vesbwfjzQPWhxiTgcZNZJYSTc4HxkNeSbyhsZmR hamJqbGRuaUZacJK4rxqLdaBQgLpiSWp2ampBalF8UWlOanFhxiZODilGhhFZj6envj0x7yt mmfXK+c7Sl5uP1L0RqT8GLf6lYaGCFuGWJ8v5db5C/n625S3PAl383gQ81ZTNI1p+r18iSSe rLIHO1cwqDY0FX4s9zrAfDtF80Hy9/jEb2vuP225vtruNUPMoRfzLr3sXDan96Kub++l5U9D rtzdrfxZ5JdCb0Wjdd7+p5OVWIozEg21mIuKEwHYSJGbfQIAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrOIsWRmVeSWpSXmKPExsVy+t9jAV2P+PmBBic2iFncuP6TzWLX1hZW ixu/2lgtOo60MFpMOfyFxeLblm2MFstfb2S3eLu3k92Bw2N2w0UWj52z7rJ7LNhU6nHn2h42 j7N3djB69G1ZxRjAFtXAaJORmpiSWqSQmpecn5KZl26r5B0c7xxvamZgqGtoaWGupJCXmJtq q+TiE6DrlpkDdJGSQlliTilQKCCxuFhJ3w7ThNAQN10LmMYIXd+QILgeIwM0kLCGMaPt53qW glcCFTvOTWNvYPzD28XIySEhYCIxY9Y2JghbTOLCvfVsXYxcHEICixgljs04DuVMZJLo3Dwf rIpNwEhi68lpjCC2iICExK/+q4wgRcwgHds2P2ADSQgLWEk823AKzGYRUJV4+n4VC4jNK+Ah MWXzO6h1ChLHpn5lncDIvYCRYRWjaGpBckFxUnquoV5xYm5xaV66XnJ+7iZGcLQ8k9rBuLLB 4hCjAAejEg/vDJ15gUKsiWXFlbmHGCU4mJVEeNeFzA8U4k1JrKxKLcqPLyrNSS0+xJgMtH0i s5Rocj4wkvNK4g2NTcxNjU0tTSxMzCxJE1YS5z3Qah0oJJCeWJKanZpakFoEs4WJg1OqgXE3 0+TaeTpvFZx23ZVdeNb6R3Ku//KHLr/LhVwPt4c+Trl9jbEo8KkKY8+5a9oubz8I7r+x5Dhr 3rkLyZ8Zs64KTtgwbd1kR9abaQt2L5xaLcsvaPBZK1LEuldg/uvVm6YILNOdvuL19cWKOn7W p5fLnDnYWST3wUJS5nmn/MvPiUdljkjLnFqgxFKckWioxVxUnAgA1Xj3GdoCAAA= DLP-Filter: Pass X-MTR: 20000000000000000@CPGS X-CFilter-Loop: Reflected X-Gm-Message-State: ALoCoQlyXhe1KyjjMOxkX3di/3Io5Sf51cCYPwxfWcxgZDwmlm05t1U88Q7i2JMt8R7CMRrVG6qY X-Original-Sender: rajeshwari.s@samsung.com X-Original-Authentication-Results: mx.google.com; spf=neutral (google.com: 209.85.220.169 is neither permitted nor denied by best guess record for domain of patch+caf_=patchwork-forward=linaro.org@linaro.org) smtp.mail=patch+caf_=patchwork-forward=linaro.org@linaro.org Precedence: list Mailing-list: list patchwork-forward@linaro.org; contact patchwork-forward+owners@linaro.org List-ID: X-Google-Group-Id: 836684582541 List-Post: , List-Help: , List-Archive: List-Unsubscribe: , Current DWMMC driver used to give FIFO underrun/overrun error every 3rd time for mmc rescan command. In current code FIFO_DEPTH is getting calculated after reading the default FIFOTH register and extracting the RX_WMARK bits from it i.e (RX_WMARK = FIFO_DEPTH/2 -1). Instead of storing the correct value, we were recalculating the FIFO_DEPT each time which is not correct. Based on "[PATCH V9 3/9] DWMMC: Initialise dwmci and resolve EMMC read write issues" http://permalink.gmane.org/gmane.comp.boot-loaders.u-boot/160247 Signed-off-by: Hatim Ali Signed-off-by: Rajeshwari Shinde Acked-by: Simon Glass Tested-by: Simon Glass Acked-by: Jaehoon Chung Acked-by: Andy Fleming --- Changes in V2: - remove fifoth_val local variable - Rebased on top of "[PATCH V9 3/9] DWMMC: Initialise dwmci and resolve EMMC read write issues". drivers/mmc/dw_mmc.c | 14 ++++++-------- 1 files changed, 6 insertions(+), 8 deletions(-) diff --git a/drivers/mmc/dw_mmc.c b/drivers/mmc/dw_mmc.c index 1307b12..5da20ed 100644 --- a/drivers/mmc/dw_mmc.c +++ b/drivers/mmc/dw_mmc.c @@ -312,7 +312,7 @@ static void dwmci_set_ios(struct mmc *mmc) static int dwmci_init(struct mmc *mmc) { struct dwmci_host *host = (struct dwmci_host *)mmc->priv; - u32 fifo_size, fifoth_val; + u32 fifo_size; dwmci_writel(host, DWMCI_PWREN, 1); @@ -332,15 +332,13 @@ static int dwmci_init(struct mmc *mmc) dwmci_writel(host, DWMCI_IDINTEN, 0); dwmci_writel(host, DWMCI_BMOD, 1); - fifo_size = dwmci_readl(host, DWMCI_FIFOTH); - fifo_size = ((fifo_size & RX_WMARK_MASK) >> RX_WMARK_SHIFT) + 1; - if (host->fifoth_val) { - fifoth_val = host->fifoth_val; - } else { - fifoth_val = MSIZE(0x2) | RX_WMARK(fifo_size / 2 - 1) | + if (!host->fifoth_val) { + fifo_size = dwmci_readl(host, DWMCI_FIFOTH); + fifo_size = ((fifo_size & RX_WMARK_MASK) >> RX_WMARK_SHIFT) + 1; + host->fifoth_val = MSIZE(0x2) | RX_WMARK(fifo_size / 2 - 1) | TX_WMARK(fifo_size / 2); } - dwmci_writel(host, DWMCI_FIFOTH, fifoth_val); + dwmci_writel(host, DWMCI_FIFOTH, host->fifoth_val); dwmci_writel(host, DWMCI_CLKENA, 0); dwmci_writel(host, DWMCI_CLKSRC, 0);