mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	ASoC: soc-core: add snd_soc_of_parse_node_prefix()
Current ASoC has snd_soc_of_parse_audio_prefix() to get codec_conf settings from DT which is used to avoid DAI naming conflict when CPU/Codec matching. Currently, it is parsing from "top node", but, we want to parse from "each sub node" if sound card had multi cpus/codecs. This patch adds new snd_soc_of_parse_node_prefix() to allow parsing settings from selected node. It is keeping existing snd_soc_of_parse_audio_prefix() by using macro. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
		
							parent
							
								
									6debd01a74
								
							
						
					
					
						commit
						3b7103562c
					
				
					 2 changed files with 10 additions and 7 deletions
				
			
		| 
						 | 
				
			
			@ -1477,10 +1477,14 @@ int snd_soc_of_parse_tdm_slot(struct device_node *np,
 | 
			
		|||
			      unsigned int *rx_mask,
 | 
			
		||||
			      unsigned int *slots,
 | 
			
		||||
			      unsigned int *slot_width);
 | 
			
		||||
void snd_soc_of_parse_audio_prefix(struct snd_soc_card *card,
 | 
			
		||||
void snd_soc_of_parse_node_prefix(struct device_node *np,
 | 
			
		||||
				   struct snd_soc_codec_conf *codec_conf,
 | 
			
		||||
				   struct device_node *of_node,
 | 
			
		||||
				   const char *propname);
 | 
			
		||||
#define snd_soc_of_parse_audio_prefix(card, conf, node, name) \
 | 
			
		||||
	snd_soc_of_parse_node_prefix((card)->dev->of_node,    \
 | 
			
		||||
				     (conf), (node), (name))
 | 
			
		||||
 | 
			
		||||
int snd_soc_of_parse_audio_routing(struct snd_soc_card *card,
 | 
			
		||||
				   const char *propname);
 | 
			
		||||
unsigned int snd_soc_of_parse_daifmt(struct device_node *np,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3484,12 +3484,11 @@ int snd_soc_of_parse_tdm_slot(struct device_node *np,
 | 
			
		|||
}
 | 
			
		||||
EXPORT_SYMBOL_GPL(snd_soc_of_parse_tdm_slot);
 | 
			
		||||
 | 
			
		||||
void snd_soc_of_parse_audio_prefix(struct snd_soc_card *card,
 | 
			
		||||
				   struct snd_soc_codec_conf *codec_conf,
 | 
			
		||||
				   struct device_node *of_node,
 | 
			
		||||
				   const char *propname)
 | 
			
		||||
void snd_soc_of_parse_node_prefix(struct device_node *np,
 | 
			
		||||
				  struct snd_soc_codec_conf *codec_conf,
 | 
			
		||||
				  struct device_node *of_node,
 | 
			
		||||
				  const char *propname)
 | 
			
		||||
{
 | 
			
		||||
	struct device_node *np = card->dev->of_node;
 | 
			
		||||
	const char *str;
 | 
			
		||||
	int ret;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -3502,7 +3501,7 @@ void snd_soc_of_parse_audio_prefix(struct snd_soc_card *card,
 | 
			
		|||
	codec_conf->of_node	= of_node;
 | 
			
		||||
	codec_conf->name_prefix	= str;
 | 
			
		||||
}
 | 
			
		||||
EXPORT_SYMBOL_GPL(snd_soc_of_parse_audio_prefix);
 | 
			
		||||
EXPORT_SYMBOL_GPL(snd_soc_of_parse_node_prefix);
 | 
			
		||||
 | 
			
		||||
int snd_soc_of_parse_audio_routing(struct snd_soc_card *card,
 | 
			
		||||
				   const char *propname)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue