Commit 51f01e4c authored by Thierry Reding's avatar Thierry Reding

Merge branch 'for-4.9/core' into for-next

parents 29b4817d 0733424c
...@@ -339,6 +339,8 @@ int pwmchip_remove(struct pwm_chip *chip) ...@@ -339,6 +339,8 @@ int pwmchip_remove(struct pwm_chip *chip)
unsigned int i; unsigned int i;
int ret = 0; int ret = 0;
pwmchip_sysfs_unexport_children(chip);
mutex_lock(&pwm_lock); mutex_lock(&pwm_lock);
for (i = 0; i < chip->npwm; i++) { for (i = 0; i < chip->npwm; i++) {
......
...@@ -409,6 +409,24 @@ void pwmchip_sysfs_unexport(struct pwm_chip *chip) ...@@ -409,6 +409,24 @@ void pwmchip_sysfs_unexport(struct pwm_chip *chip)
} }
} }
void pwmchip_sysfs_unexport_children(struct pwm_chip *chip)
{
struct device *parent;
unsigned int i;
parent = class_find_device(&pwm_class, NULL, chip,
pwmchip_sysfs_match);
if (!parent)
return;
for (i = 0; i < chip->npwm; i++) {
struct pwm_device *pwm = &chip->pwms[i];
if (test_bit(PWMF_EXPORTED, &pwm->flags))
pwm_unexport_child(parent, pwm);
}
}
static int __init pwm_sysfs_init(void) static int __init pwm_sysfs_init(void)
{ {
return class_register(&pwm_class); return class_register(&pwm_class);
......
...@@ -641,6 +641,7 @@ static inline void pwm_remove_table(struct pwm_lookup *table, size_t num) ...@@ -641,6 +641,7 @@ static inline void pwm_remove_table(struct pwm_lookup *table, size_t num)
#ifdef CONFIG_PWM_SYSFS #ifdef CONFIG_PWM_SYSFS
void pwmchip_sysfs_export(struct pwm_chip *chip); void pwmchip_sysfs_export(struct pwm_chip *chip);
void pwmchip_sysfs_unexport(struct pwm_chip *chip); void pwmchip_sysfs_unexport(struct pwm_chip *chip);
void pwmchip_sysfs_unexport_children(struct pwm_chip *chip);
#else #else
static inline void pwmchip_sysfs_export(struct pwm_chip *chip) static inline void pwmchip_sysfs_export(struct pwm_chip *chip)
{ {
...@@ -649,6 +650,10 @@ static inline void pwmchip_sysfs_export(struct pwm_chip *chip) ...@@ -649,6 +650,10 @@ static inline void pwmchip_sysfs_export(struct pwm_chip *chip)
static inline void pwmchip_sysfs_unexport(struct pwm_chip *chip) static inline void pwmchip_sysfs_unexport(struct pwm_chip *chip)
{ {
} }
static inline void pwmchip_sysfs_unexport_children(struct pwm_chip *chip)
{
}
#endif /* CONFIG_PWM_SYSFS */ #endif /* CONFIG_PWM_SYSFS */
#endif /* __LINUX_PWM_H */ #endif /* __LINUX_PWM_H */
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