Hi Marek,

2017-08-06 4:23 GMT+09:00 Marek Vasut <marek.va...@gmail.com>:
> On 08/03/2017 02:36 PM, Masahiro Yamada wrote:
>> Hi Marek,
> Hi,
> [...]
>>> +static u32 uniphier_sd_readl(struct uniphier_sd_priv *priv, const u32 reg)
>> "const" is unneeded here.
> Why? The function should not modify reg , so it is const.

Because "const" is useless here.

The "reg" is not a pointer, so it is obvious
that there is no impact to the callers.

Moreover, whether "reg" is constant or not
depends on how you implement the function.

If you force "const" to the argument, the only choice for the implementation
will be as follows:

static u32 uniphier_sd_readl(struct uniphier_sd_priv *priv, const u32 reg)
      if (priv->caps & UNIPHIER_SD_CAP_64BIT)
             return readl(priv->regbase + (reg << 1));
             return readl(priv->regbase + reg);

If you want to implement the function as follows, you need to drop "const".

static u32 uniphier_sd_readl(struct uniphier_sd_priv *priv, u32 reg)
      if (priv->caps & UNIPHIER_SD_CAP_64BIT)
              reg <<= 1;

      return readl(priv->regbase + reg);

>> Also, could you use "unsigned int" or "int" for reg?
> Why?

Because "unsigned int" or "int" is more natural.

No reason to use a fixed width variable for the address offset.

Best Regards
Masahiro Yamada
U-Boot mailing list

Reply via email to