Commit 4034e594 authored by Uwe Kleine-König's avatar Uwe Kleine-König Committed by Thierry Reding

pwm: Mark free pwm IDs as used in alloc_pwms()

alloc_pwms() only identified a free range of IDs and this range was marked
as used only later by pwmchip_add(). Instead let alloc_pwms() already do
the marking (which makes the function actually allocating the range and so
justifies the function name). This way access to the allocated_pwms
bitfield is limited to two functions only.
Reviewed-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20221117211143.3817381-4-u.kleine-koenig@pengutronix.deSigned-off-by: default avatarUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: default avatarThierry Reding <thierry.reding@gmail.com>
parent c8135b51
...@@ -51,6 +51,8 @@ static int alloc_pwms(unsigned int count) ...@@ -51,6 +51,8 @@ static int alloc_pwms(unsigned int count)
if (start + count > MAX_PWMS) if (start + count > MAX_PWMS)
return -ENOSPC; return -ENOSPC;
bitmap_set(allocated_pwms, start, count);
return start; return start;
} }
...@@ -297,8 +299,6 @@ int pwmchip_add(struct pwm_chip *chip) ...@@ -297,8 +299,6 @@ int pwmchip_add(struct pwm_chip *chip)
radix_tree_insert(&pwm_tree, pwm->pwm, pwm); radix_tree_insert(&pwm_tree, pwm->pwm, pwm);
} }
bitmap_set(allocated_pwms, chip->base, chip->npwm);
INIT_LIST_HEAD(&chip->list); INIT_LIST_HEAD(&chip->list);
list_add(&chip->list, &pwm_chips); list_add(&chip->list, &pwm_chips);
......
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