public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Marek Vasut <marex@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2 1/3] mmc: uniphier: add driver for UniPhier SD/MMC host controller
Date: Tue, 16 Feb 2016 13:51:38 +0100	[thread overview]
Message-ID: <56C31B5A.60902@denx.de> (raw)
In-Reply-To: <CAK7LNAS_Yy3UZRZ1cdCCrOk7ZO-dR0ajC3aNqqJk+Lo-vgQ97g@mail.gmail.com>

On 02/16/2016 09:18 AM, Masahiro Yamada wrote:
> Hi Marek,

Hi!

[...]

>>> +static int uniphier_sd_wait_irq(struct uniphier_sd_priv *priv,
>>> +                             unsigned int reg, u32 flag)
>>> +{
>>> +     long wait = 1000000;
>>> +     int ret;
>>
>> Replace this with wait_for_bit() please .
> 
> 
> It cannot check error during the loop.
> 
> I want to check the error flags in the loop
> because no reason to wait for the time-out
> if some error happens.

You have a point there.

I wonder if it'd make sense to extend the wait_for_bit with some
callback maybe ?

>>> +     while (!(readl(priv->regbase + reg) & flag)) {
>>> +             if (wait-- < 0) {
>>> +                     pr_err("timeout\n");
>>> +                     return -ETIMEDOUT;
>>> +             }
>>> +
>>> +             ret = uniphier_sd_check_error(priv);
>>> +             if (ret)
>>> +                     return ret;
>>> +
>>> +             udelay(1);
>>> +     }
>>> +
>>> +     return 0;
>>> +}
>>
>> [...]
>>
>>> +static void uniphier_sd_dma_start(struct uniphier_sd_priv *priv,
>>> +                               dma_addr_t dma_addr)
>>> +{
>>> +     u32 tmp;
>>> +
>>> +     writel(0, priv->regbase + UNIPHIER_SD_DMA_INFO1);
>>> +     writel(0, priv->regbase + UNIPHIER_SD_DMA_INFO2);
>>> +
>>> +     /* enable DMA */
>>> +     tmp = readl(priv->regbase + UNIPHIER_SD_EXTMODE);
>>> +     tmp |= UNIPHIER_SD_EXTMODE_DMA_EN;
>>> +     writel(tmp, priv->regbase + UNIPHIER_SD_EXTMODE);
>>
>> I'd say, use setbits_le32(), but could it be that this driver is kept in
>> sync with Linux ?
> 
> Yes, I am developing the MMC driver
> for Linux as well as U-Boot at the same time.
> 
> This is the U-Boot counter-part,
> although the Linux one has not been upstreamed yet.
> 
> It can save my time to copy-paste code snippets between the two.
> 
> I want to sync as much code as possible.

Understood, thanks!

  reply	other threads:[~2016-02-16 12:51 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-10 13:28 [U-Boot] [PATCH v2 0/3] UniPhier SD/eMMC controller driver Masahiro Yamada
2016-02-10 13:28 ` [U-Boot] [PATCH v2 1/3] mmc: uniphier: add driver for UniPhier SD/MMC host controller Masahiro Yamada
2016-02-10 13:45   ` Marek Vasut
2016-02-16  8:18     ` Masahiro Yamada
2016-02-16 12:51       ` Marek Vasut [this message]
2016-02-10 13:28 ` [U-Boot] [PATCH v2 2/3] ARM: uniphier: enable UniPhier SD/MMC host driver Masahiro Yamada
2016-02-10 13:28 ` [U-Boot] [PATCH v2 3/3] ARM: dts: uniphier: add SD/MMC host controller nodes Masahiro Yamada

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=56C31B5A.60902@denx.de \
    --to=marex@denx.de \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox