X-Git-Url: http://git.openwrt.org/?a=blobdiff_plain;f=target%2Flinux%2Fbrcm2708%2Fpatches-4.19%2F950-0279-pwm-Send-a-uevent-on-the-pwmchip-device-upon-channel.patch;fp=target%2Flinux%2Fbrcm2708%2Fpatches-4.19%2F950-0279-pwm-Send-a-uevent-on-the-pwmchip-device-upon-channel.patch;h=0000000000000000000000000000000000000000;hb=c2308a7e4adbb2acc8ff149f91d1ca46801c135e;hp=8136e3ffa0ee446c88509abc215d356b7a4bb066;hpb=67dcc43f3a22dc3a7ac07a7065971b426feeb043;p=openwrt%2Fstaging%2Fdedeckeh.git diff --git a/target/linux/brcm2708/patches-4.19/950-0279-pwm-Send-a-uevent-on-the-pwmchip-device-upon-channel.patch b/target/linux/brcm2708/patches-4.19/950-0279-pwm-Send-a-uevent-on-the-pwmchip-device-upon-channel.patch deleted file mode 100644 index 8136e3ffa0..0000000000 --- a/target/linux/brcm2708/patches-4.19/950-0279-pwm-Send-a-uevent-on-the-pwmchip-device-upon-channel.patch +++ /dev/null @@ -1,86 +0,0 @@ -From 20a5b38305df30e25b4429e0e34e35235dd57228 Mon Sep 17 00:00:00 2001 -From: Fabrice Gasnier -Date: Mon, 1 Oct 2018 15:23:57 +0200 -Subject: [PATCH] pwm: Send a uevent on the pwmchip device upon channel - sysfs (un)export -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -commit 552c02e3e7cfe2744b59de285aaea70021ae95c9 upstream. - -This patch sends a uevent (KOBJ_CHANGE) on the pwmchipN device, -everytime a pwmX channel has been exported/unexported via sysfs. This -allows udev to implement rules on such events, like: - -SUBSYSTEM=="pwm*", PROGRAM="/bin/sh -c '\ - chown -R root:gpio /sys/class/pwm && chmod -R 770 /sys/class/pwm;\ - chown -R root:gpio -/sys/devices/platform/soc/*.pwm/pwm/pwmchip* && chmod -R 770 -/sys/devices/platform/soc/*.pwm/pwm/pwmchip*\ -'" - -This is a replacement patch for commit 7e5d1fd75c3d ("pwm: Set class for -exported channels in sysfs"), see [1]. - -basic testing: -$ udevadm monitor --environment & -$ echo 0 > /sys/class/pwm/pwmchip0/export -KERNEL[197.321736] change /devices/.../pwm/pwmchip0 (pwm) -ACTION=change -DEVPATH=/devices/.../pwm/pwmchip0 -EXPORT=pwm0 -SEQNUM=2045 -SUBSYSTEM=pwm - -[1] https://lkml.org/lkml/2018/9/25/713 - -Signed-off-by: Fabrice Gasnier -Tested-by: Gottfried Haider -Tested-by: Michal Vokáč -Signed-off-by: Thierry Reding ---- - drivers/pwm/sysfs.c | 11 +++++++++++ - 1 file changed, 11 insertions(+) - ---- a/drivers/pwm/sysfs.c -+++ b/drivers/pwm/sysfs.c -@@ -249,6 +249,7 @@ static void pwm_export_release(struct de - static int pwm_export_child(struct device *parent, struct pwm_device *pwm) - { - struct pwm_export *export; -+ char *pwm_prop[2]; - int ret; - - if (test_and_set_bit(PWMF_EXPORTED, &pwm->flags)) -@@ -276,6 +277,10 @@ static int pwm_export_child(struct devic - export = NULL; - return ret; - } -+ pwm_prop[0] = kasprintf(GFP_KERNEL, "EXPORT=pwm%u", pwm->hwpwm); -+ pwm_prop[1] = NULL; -+ kobject_uevent_env(&parent->kobj, KOBJ_CHANGE, pwm_prop); -+ kfree(pwm_prop[0]); - - return 0; - } -@@ -288,6 +293,7 @@ static int pwm_unexport_match(struct dev - static int pwm_unexport_child(struct device *parent, struct pwm_device *pwm) - { - struct device *child; -+ char *pwm_prop[2]; - - if (!test_and_clear_bit(PWMF_EXPORTED, &pwm->flags)) - return -ENODEV; -@@ -296,6 +302,11 @@ static int pwm_unexport_child(struct dev - if (!child) - return -ENODEV; - -+ pwm_prop[0] = kasprintf(GFP_KERNEL, "UNEXPORT=pwm%u", pwm->hwpwm); -+ pwm_prop[1] = NULL; -+ kobject_uevent_env(&parent->kobj, KOBJ_CHANGE, pwm_prop); -+ kfree(pwm_prop[0]); -+ - /* for device_find_child() */ - put_device(child); - device_unregister(child);