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

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

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

parents 29b4817d 0733424c
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -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++) {
+18 −0
Original line number Diff line number Diff line
@@ -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);
+5 −0
Original line number Diff line number Diff line
@@ -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)
{
@@ -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 */