regulator: Support driver probe deferral
If we fail to locate a requested regulator return -EPROBE_DEFER. If drivers pass this error code through to their caller (which they really should) then this will ensure that the probe is retried later when further devices become available. In the unusual case where a driver doesn't want this it can override the default behaviour. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Grant Likely <grant.likely@secretlab.ca> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
		
					parent
					
						
							
								263a5c8e16
							
						
					
				
			
			
				commit
				
					
						04bf30115f
					
				
			
		
					 1 changed files with 2 additions and 2 deletions
				
			
		|  | @ -1210,7 +1210,7 @@ static struct regulator *_regulator_get(struct device *dev, const char *id, | ||||||
| { | { | ||||||
| 	struct regulator_dev *rdev; | 	struct regulator_dev *rdev; | ||||||
| 	struct regulator_map *map; | 	struct regulator_map *map; | ||||||
| 	struct regulator *regulator = ERR_PTR(-ENODEV); | 	struct regulator *regulator = ERR_PTR(-EPROBE_DEFER); | ||||||
| 	const char *devname = NULL; | 	const char *devname = NULL; | ||||||
| 	int ret; | 	int ret; | ||||||
| 
 | 
 | ||||||
|  | @ -2834,7 +2834,7 @@ struct regulator_dev *regulator_register(struct regulator_desc *regulator_desc, | ||||||
| 
 | 
 | ||||||
| 		if (!r) { | 		if (!r) { | ||||||
| 			dev_err(dev, "Failed to find supply %s\n", supply); | 			dev_err(dev, "Failed to find supply %s\n", supply); | ||||||
| 			ret = -ENODEV; | 			ret = -EPROBE_DEFER; | ||||||
| 			goto scrub; | 			goto scrub; | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Mark Brown
				Mark Brown