mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-10-31 16:54:21 +00:00 
			
		
		
		
	Merge remote-tracking branch 'asoc/fix/dapm' into asoc-next
This commit is contained in:
		
						commit
						a36b32402a
					
				
					 2 changed files with 15 additions and 0 deletions
				
			
		|  | @ -488,6 +488,7 @@ struct snd_soc_dapm_path { | |||
| 	/* status */ | ||||
| 	u32 connect:1;	/* source and sink widgets are connected */ | ||||
| 	u32 walked:1;	/* path has been walked */ | ||||
| 	u32 walking:1;  /* path is in the process of being walked */ | ||||
| 	u32 weak:1;	/* path ignored for power management */ | ||||
| 
 | ||||
| 	int (*connected)(struct snd_soc_dapm_widget *source, | ||||
|  |  | |||
|  | @ -831,6 +831,9 @@ static int is_connected_output_ep(struct snd_soc_dapm_widget *widget, | |||
| 		if (path->weak) | ||||
| 			continue; | ||||
| 
 | ||||
| 		if (path->walking) | ||||
| 			return 1; | ||||
| 
 | ||||
| 		if (path->walked) | ||||
| 			continue; | ||||
| 
 | ||||
|  | @ -838,6 +841,7 @@ static int is_connected_output_ep(struct snd_soc_dapm_widget *widget, | |||
| 
 | ||||
| 		if (path->sink && path->connect) { | ||||
| 			path->walked = 1; | ||||
| 			path->walking = 1; | ||||
| 
 | ||||
| 			/* do we need to add this widget to the list ? */ | ||||
| 			if (list) { | ||||
|  | @ -847,11 +851,14 @@ static int is_connected_output_ep(struct snd_soc_dapm_widget *widget, | |||
| 					dev_err(widget->dapm->dev, | ||||
| 						"ASoC: could not add widget %s\n", | ||||
| 						widget->name); | ||||
| 					path->walking = 0; | ||||
| 					return con; | ||||
| 				} | ||||
| 			} | ||||
| 
 | ||||
| 			con += is_connected_output_ep(path->sink, list); | ||||
| 
 | ||||
| 			path->walking = 0; | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
|  | @ -931,6 +938,9 @@ static int is_connected_input_ep(struct snd_soc_dapm_widget *widget, | |||
| 		if (path->weak) | ||||
| 			continue; | ||||
| 
 | ||||
| 		if (path->walking) | ||||
| 			return 1; | ||||
| 
 | ||||
| 		if (path->walked) | ||||
| 			continue; | ||||
| 
 | ||||
|  | @ -938,6 +948,7 @@ static int is_connected_input_ep(struct snd_soc_dapm_widget *widget, | |||
| 
 | ||||
| 		if (path->source && path->connect) { | ||||
| 			path->walked = 1; | ||||
| 			path->walking = 1; | ||||
| 
 | ||||
| 			/* do we need to add this widget to the list ? */ | ||||
| 			if (list) { | ||||
|  | @ -947,11 +958,14 @@ static int is_connected_input_ep(struct snd_soc_dapm_widget *widget, | |||
| 					dev_err(widget->dapm->dev, | ||||
| 						"ASoC: could not add widget %s\n", | ||||
| 						widget->name); | ||||
| 					path->walking = 0; | ||||
| 					return con; | ||||
| 				} | ||||
| 			} | ||||
| 
 | ||||
| 			con += is_connected_input_ep(path->source, list); | ||||
| 
 | ||||
| 			path->walking = 0; | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Mark Brown
						Mark Brown