Skip to content

Commit

Permalink
pwm: Add support to remove registered consumer lookup tables
Browse files Browse the repository at this point in the history
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: Shobhit Kumar <shobhit.kumar@intel.com>
Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
  • Loading branch information
Shobhit Kumar authored and Thierry Reding committed May 6, 2015
1 parent b787f68 commit efb0de5
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 0 deletions.
17 changes: 17 additions & 0 deletions drivers/pwm/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
5 changes: 5 additions & 0 deletions include/linux/pwm.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit efb0de5

Please sign in to comment.