Commit 1054e4dd authored by Jernej Skrabec's avatar Jernej Skrabec Committed by Maxime Ripard

clk: sunxi-ng: nkmp: Explain why zero width check is needed

Add an explanation why zero width check is needed when generating factor
mask using GENMASK() macro.
Signed-off-by: default avatarJernej Skrabec <jernej.skrabec@siol.net>
Signed-off-by: default avatarMaxime Ripard <maxime.ripard@bootlin.com>
parent 2abc330c
...@@ -186,6 +186,12 @@ static int ccu_nkmp_set_rate(struct clk_hw *hw, unsigned long rate, ...@@ -186,6 +186,12 @@ static int ccu_nkmp_set_rate(struct clk_hw *hw, unsigned long rate,
ccu_nkmp_find_best(parent_rate, rate, &_nkmp); ccu_nkmp_find_best(parent_rate, rate, &_nkmp);
/*
* If width is 0, GENMASK() macro may not generate expected mask (0)
* as it falls under undefined behaviour by C standard due to shifts
* which are equal or greater than width of left operand. This can
* be easily avoided by explicitly checking if width is 0.
*/
if (nkmp->n.width) if (nkmp->n.width)
n_mask = GENMASK(nkmp->n.width + nkmp->n.shift - 1, n_mask = GENMASK(nkmp->n.width + nkmp->n.shift - 1,
nkmp->n.shift); nkmp->n.shift);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment