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!
next prev parent 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