Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit efb0de55 authored by Shobhit Kumar's avatar Shobhit Kumar Committed by Thierry Reding
Browse files

pwm: Add support to remove registered consumer lookup tables



In case some drivers are unloading, they can remove lookup tables which
they had registered during their load time to avoid redundant entries if
loaded again.

CC: Samuel Ortiz <sameo@linux.intel.com>
Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: Alexandre Courbot <gnurou@gmail.com>
Cc: Thierry Reding <thierry.reding@gmail.com>
Signed-off-by: default avatarShobhit Kumar <shobhit.kumar@intel.com>
Signed-off-by: default avatarThierry Reding <thierry.reding@gmail.com>
parent b787f68c
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -585,6 +585,23 @@ void pwm_add_table(struct pwm_lookup *table, size_t num)
	mutex_unlock(&pwm_lookup_lock);
}

/**
 * pwm_remove_table() - unregister PWM device consumers
 * @table: array of consumers to unregister
 * @num: number of consumers in table
 */
void pwm_remove_table(struct pwm_lookup *table, size_t num)
{
	mutex_lock(&pwm_lookup_lock);

	while (num--) {
		list_del(&table->list);
		table++;
	}

	mutex_unlock(&pwm_lookup_lock);
}

/**
 * pwm_get() - look up and request a PWM device
 * @dev: device for PWM consumer
+5 −0
Original line number Diff line number Diff line
@@ -290,10 +290,15 @@ struct pwm_lookup {

#if IS_ENABLED(CONFIG_PWM)
void pwm_add_table(struct pwm_lookup *table, size_t num);
void pwm_remove_table(struct pwm_lookup *table, size_t num);
#else
static inline void pwm_add_table(struct pwm_lookup *table, size_t num)
{
}

static inline void pwm_remove_table(struct pwm_lookup *table, size_t num)
{
}
#endif

#ifdef CONFIG_PWM_SYSFS