Loading drivers/pwm/core.c +2 −0 Original line number Diff line number Diff line Loading @@ -339,6 +339,8 @@ int pwmchip_remove(struct pwm_chip *chip) unsigned int i; int ret = 0; pwmchip_sysfs_unexport_children(chip); mutex_lock(&pwm_lock); for (i = 0; i < chip->npwm; i++) { Loading drivers/pwm/sysfs.c +18 −0 Original line number Diff line number Diff line Loading @@ -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) { return class_register(&pwm_class); Loading include/linux/pwm.h +5 −0 Original line number Diff line number Diff line Loading @@ -641,6 +641,7 @@ static inline void pwm_remove_table(struct pwm_lookup *table, size_t num) #ifdef CONFIG_PWM_SYSFS void pwmchip_sysfs_export(struct pwm_chip *chip); void pwmchip_sysfs_unexport(struct pwm_chip *chip); void pwmchip_sysfs_unexport_children(struct pwm_chip *chip); #else static inline void pwmchip_sysfs_export(struct pwm_chip *chip) { Loading @@ -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_children(struct pwm_chip *chip) { } #endif /* CONFIG_PWM_SYSFS */ #endif /* __LINUX_PWM_H */ Loading
drivers/pwm/core.c +2 −0 Original line number Diff line number Diff line Loading @@ -339,6 +339,8 @@ int pwmchip_remove(struct pwm_chip *chip) unsigned int i; int ret = 0; pwmchip_sysfs_unexport_children(chip); mutex_lock(&pwm_lock); for (i = 0; i < chip->npwm; i++) { Loading
drivers/pwm/sysfs.c +18 −0 Original line number Diff line number Diff line Loading @@ -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) { return class_register(&pwm_class); Loading
include/linux/pwm.h +5 −0 Original line number Diff line number Diff line Loading @@ -641,6 +641,7 @@ static inline void pwm_remove_table(struct pwm_lookup *table, size_t num) #ifdef CONFIG_PWM_SYSFS void pwmchip_sysfs_export(struct pwm_chip *chip); void pwmchip_sysfs_unexport(struct pwm_chip *chip); void pwmchip_sysfs_unexport_children(struct pwm_chip *chip); #else static inline void pwmchip_sysfs_export(struct pwm_chip *chip) { Loading @@ -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_children(struct pwm_chip *chip) { } #endif /* CONFIG_PWM_SYSFS */ #endif /* __LINUX_PWM_H */