From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jaehoon Chung Date: Thu, 25 Jun 2015 10:58:11 +0900 Subject: [U-Boot] [PATCH v3 32/54] mmc: Calculate dwmmc FIFO threshold size if not provided In-Reply-To: <1435095556-15924-33-git-send-email-sjg@chromium.org> References: <1435095556-15924-1-git-send-email-sjg@chromium.org> <1435095556-15924-33-git-send-email-sjg@chromium.org> Message-ID: <558B6033.2030601@gmail.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi, Simon. On 06/24/2015 06:38 AM, Simon Glass wrote: > We can calculate this. Add code to do this if it is not provided. Did you consider the kernel side? Best Regards, Jaehoon Chung > > Signed-off-by: Simon Glass > --- > > Changes in v3: None > Changes in v2: None > > drivers/mmc/dw_mmc.c | 10 ++++++++-- > 1 file changed, 8 insertions(+), 2 deletions(-) > > diff --git a/drivers/mmc/dw_mmc.c b/drivers/mmc/dw_mmc.c > index a034c3f..cce2a5d 100644 > --- a/drivers/mmc/dw_mmc.c > +++ b/drivers/mmc/dw_mmc.c > @@ -355,9 +355,15 @@ static int dwmci_init(struct mmc *mmc) > dwmci_writel(host, DWMCI_IDINTEN, 0); > dwmci_writel(host, DWMCI_BMOD, 1); > > - if (host->fifoth_val) { > - dwmci_writel(host, DWMCI_FIFOTH, host->fifoth_val); > + if (!host->fifoth_val) { > + uint32_t fifo_size; > + > + 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, host->fifoth_val); > > dwmci_writel(host, DWMCI_CLKENA, 0); > dwmci_writel(host, DWMCI_CLKSRC, 0); >