mirror of
				https://github.com/Ysurac/openmptcprouter.git
				synced 2025-03-09 15:40:20 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			68 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From 7f838c5c5229eb7531112fe0aa5539076878fb88 Mon Sep 17 00:00:00 2001
 | |
| From: Fabrice Gasnier <fabrice.gasnier@st.com>
 | |
| Date: Mon, 1 Oct 2018 15:23:56 +0200
 | |
| Subject: [PATCH 310/432] Revert "pwm: Set class for exported channels in
 | |
|  sysfs"
 | |
| MIME-Version: 1.0
 | |
| Content-Type: text/plain; charset=UTF-8
 | |
| Content-Transfer-Encoding: 8bit
 | |
| 
 | |
| commit c289d6625237aa785b484b4e94c23b3b91ea7e60 upstream.
 | |
| 
 | |
| This reverts commit 7e5d1fd75c3dde9fc10c4472b9368089d1b81d00 ("pwm: Set
 | |
| class for exported channels in sysfs") as it causes regression with
 | |
| multiple pwm chip[1], when exporting a pwm channel (echo X > export):
 | |
| 
 | |
| - ABI (Documentation/ABI/testing/sysfs-class-pwm) states pwmX should be
 | |
|   created in /sys/class/pwm/pwmchipN/pwmX
 | |
| - Reverted patch causes new entry to be also created directly in
 | |
|   /sys/class/pwm/pwmX
 | |
| - 1st time, exporting pwmX will create an entry in /sys/class/pwm/pwmX
 | |
| - class attributes are added under pwmX folder, such as export, unexport
 | |
|   npwm, symlinks. This is wrong as it belongs to pwmchipN. It may cause
 | |
|   bad behavior and report wrong values.
 | |
| - when another export happens on another pwmchip, it can't be created
 | |
|   (e.g. -EEXIST). This is causing the issue with multiple pwmchip.
 | |
| 
 | |
| Example on stm32 (stm32429i-eval) platform:
 | |
| $ ls /sys/class/pwm
 | |
| pwmchip0 pwmchip4
 | |
| 
 | |
| $ cd /sys/class/pwm/pwmchip0/
 | |
| $ echo 0 > export
 | |
| $ ls /sys/class/pwm
 | |
| pwm0 pwmchip0 pwmchip4
 | |
| 
 | |
| $ cd /sys/class/pwm/pwmchip4/
 | |
| $ echo 0 > export
 | |
| sysfs: cannot create duplicate filename '/class/pwm/pwm0'
 | |
| ...Exception stack follows...
 | |
| 
 | |
| This is also seen on other platform [2]
 | |
| 
 | |
| [1] https://lkml.org/lkml/2018/9/25/713
 | |
| [2] https://lkml.org/lkml/2018/9/25/447
 | |
| 
 | |
| Signed-off-by: Fabrice Gasnier <fabrice.gasnier@st.com>
 | |
| Tested-by: Gottfried Haider <gottfried.haider@gmail.com>
 | |
| Tested-by: Michal Vokáč <michal.vokac@ysoft.com>
 | |
| Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
 | |
| ---
 | |
|  drivers/pwm/sysfs.c | 1 -
 | |
|  1 file changed, 1 deletion(-)
 | |
| 
 | |
| diff --git a/drivers/pwm/sysfs.c b/drivers/pwm/sysfs.c
 | |
| index 7c71cdb8a9d8..4726d43aaa0c 100644
 | |
| --- a/drivers/pwm/sysfs.c
 | |
| +++ b/drivers/pwm/sysfs.c
 | |
| @@ -263,7 +263,6 @@ 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);
 | |
| -- 
 | |
| 2.19.1
 | |
| 
 |