summaryrefslogtreecommitdiffstats
path: root/kernel/drivers/pwm/sysfs.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/drivers/pwm/sysfs.c')
-rw-r--r--kernel/drivers/pwm/sysfs.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/kernel/drivers/pwm/sysfs.c b/kernel/drivers/pwm/sysfs.c
index 9c90886f4..375008e2b 100644
--- a/kernel/drivers/pwm/sysfs.c
+++ b/kernel/drivers/pwm/sysfs.c
@@ -350,6 +350,26 @@ 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);
+ }
+
+ put_device(parent);
+}
+
static int __init pwm_sysfs_init(void)
{
return class_register(&pwm_class);