[U-Boot] [PATCH v2 1/3] mmc: uniphier: add driver for UniPhier SD/MMC host controller

Marek Vasut marex at denx.de
Tue Feb 16 13:51:38 CET 2016


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!



More information about the U-Boot mailing list