g***@sukzessiv.net
2017-09-26 11:59:51 UTC
Notifications for devices without bus or class set get dropped by
dev_uevent_filter. Adding the class to the exported child matches
what the gpio subsystem is doing.
With this change exporting a channel triggers a udev event, which
gives userspace a chance to fixup permissions and makes it possible
for non-root users to make use of the pwm subsystem.
Signed-off-by: Gottfried Haider <***@gmail.com>
CC: Thierry Reding <***@gmail.com>
CC: H Hartley Sweeten <***@visionengravers.com>
CC: linux-***@vger.kernel.org
CC: linux-arm-***@lists.infradead.org
CC: linux-rpi-***@lists.infradead.org
---
drivers/pwm/sysfs.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/pwm/sysfs.c b/drivers/pwm/sysfs.c
index a813239..83f2b0b 100644
--- a/drivers/pwm/sysfs.c
+++ b/drivers/pwm/sysfs.c
@@ -263,6 +263,7 @@ static int pwm_export_child(struct device *parent, struct pwm_device *pwm)
export->pwm = pwm;
mutex_init(&export->lock);
+ export->child.class = parent->class;
export->child.release = pwm_export_release;
export->child.parent = parent;
export->child.devt = MKDEV(0, 0);
dev_uevent_filter. Adding the class to the exported child matches
what the gpio subsystem is doing.
With this change exporting a channel triggers a udev event, which
gives userspace a chance to fixup permissions and makes it possible
for non-root users to make use of the pwm subsystem.
Signed-off-by: Gottfried Haider <***@gmail.com>
CC: Thierry Reding <***@gmail.com>
CC: H Hartley Sweeten <***@visionengravers.com>
CC: linux-***@vger.kernel.org
CC: linux-arm-***@lists.infradead.org
CC: linux-rpi-***@lists.infradead.org
---
drivers/pwm/sysfs.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/pwm/sysfs.c b/drivers/pwm/sysfs.c
index a813239..83f2b0b 100644
--- a/drivers/pwm/sysfs.c
+++ b/drivers/pwm/sysfs.c
@@ -263,6 +263,7 @@ static int pwm_export_child(struct device *parent, struct pwm_device *pwm)
export->pwm = pwm;
mutex_init(&export->lock);
+ export->child.class = parent->class;
export->child.release = pwm_export_release;
export->child.parent = parent;
export->child.devt = MKDEV(0, 0);