mirror of
https://github.com/torvalds/linux.git
synced 2024-11-22 04:38:03 +00:00
pwm: Use guards for pwm_lookup_lock instead of explicity mutex_lock + mutex_unlock
With the compiler caring for unlocking the mutex several functions can be simplified. Benefit from that. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@baylibre.com> Link: https://lore.kernel.org/r/28807cb5d9dbce66860f74829c0f57cd9c01373e.1719520143.git.u.kleine-koenig@baylibre.com Signed-off-by: Uwe Kleine-König <ukleinek@kernel.org>
This commit is contained in:
parent
4c50c71c69
commit
0007fa1292
@ -1343,14 +1343,12 @@ static LIST_HEAD(pwm_lookup_list);
|
|||||||
*/
|
*/
|
||||||
void pwm_add_table(struct pwm_lookup *table, size_t num)
|
void pwm_add_table(struct pwm_lookup *table, size_t num)
|
||||||
{
|
{
|
||||||
mutex_lock(&pwm_lookup_lock);
|
guard(mutex)(&pwm_lookup_lock);
|
||||||
|
|
||||||
while (num--) {
|
while (num--) {
|
||||||
list_add_tail(&table->list, &pwm_lookup_list);
|
list_add_tail(&table->list, &pwm_lookup_list);
|
||||||
table++;
|
table++;
|
||||||
}
|
}
|
||||||
|
|
||||||
mutex_unlock(&pwm_lookup_lock);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1360,14 +1358,12 @@ void pwm_add_table(struct pwm_lookup *table, size_t num)
|
|||||||
*/
|
*/
|
||||||
void pwm_remove_table(struct pwm_lookup *table, size_t num)
|
void pwm_remove_table(struct pwm_lookup *table, size_t num)
|
||||||
{
|
{
|
||||||
mutex_lock(&pwm_lookup_lock);
|
guard(mutex)(&pwm_lookup_lock);
|
||||||
|
|
||||||
while (num--) {
|
while (num--) {
|
||||||
list_del(&table->list);
|
list_del(&table->list);
|
||||||
table++;
|
table++;
|
||||||
}
|
}
|
||||||
|
|
||||||
mutex_unlock(&pwm_lookup_lock);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1428,37 +1424,34 @@ struct pwm_device *pwm_get(struct device *dev, const char *con_id)
|
|||||||
* Then we take the most specific entry - with the following order
|
* Then we take the most specific entry - with the following order
|
||||||
* of precedence: dev+con > dev only > con only.
|
* of precedence: dev+con > dev only > con only.
|
||||||
*/
|
*/
|
||||||
mutex_lock(&pwm_lookup_lock);
|
scoped_guard(mutex, &pwm_lookup_lock)
|
||||||
|
list_for_each_entry(p, &pwm_lookup_list, list) {
|
||||||
|
match = 0;
|
||||||
|
|
||||||
list_for_each_entry(p, &pwm_lookup_list, list) {
|
if (p->dev_id) {
|
||||||
match = 0;
|
if (!dev_id || strcmp(p->dev_id, dev_id))
|
||||||
|
continue;
|
||||||
|
|
||||||
if (p->dev_id) {
|
match += 2;
|
||||||
if (!dev_id || strcmp(p->dev_id, dev_id))
|
}
|
||||||
continue;
|
|
||||||
|
|
||||||
match += 2;
|
if (p->con_id) {
|
||||||
|
if (!con_id || strcmp(p->con_id, con_id))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
match += 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (match > best) {
|
||||||
|
chosen = p;
|
||||||
|
|
||||||
|
if (match != 3)
|
||||||
|
best = match;
|
||||||
|
else
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (p->con_id) {
|
|
||||||
if (!con_id || strcmp(p->con_id, con_id))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
match += 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (match > best) {
|
|
||||||
chosen = p;
|
|
||||||
|
|
||||||
if (match != 3)
|
|
||||||
best = match;
|
|
||||||
else
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
mutex_unlock(&pwm_lookup_lock);
|
|
||||||
|
|
||||||
if (!chosen)
|
if (!chosen)
|
||||||
return ERR_PTR(-ENODEV);
|
return ERR_PTR(-ENODEV);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user