2011/12/7 Mark Brown broonie@opensource.wolfsonmicro.com:
Your above code has no references to dai_fmt. Have you looked at the dai_fmt field in the dai_link structure or at the existing examples of its use?
Still I can't understand your saying. Let me clarify.
Firstly, the above "dai_link structure" means below ? If yes, there is no member "dai_fmt", right ? 697 struct snd_soc_dai_link { 698 /* config - must be set by machine driver */ 699 const char *name; /* Codec name */ 700 const char *stream_name; /* Stream name */ 701 const char *codec_name; /* for multi-codec */ 702 const char *platform_name; /* for multi-platform */ 703 const char *cpu_dai_name; 704 const char *codec_dai_name; 705 706 /* Keep DAI active over suspend */ 707 unsigned int ignore_suspend:1; 708 709 /* Symmetry requirements */ 710 unsigned int symmetric_rates:1; 711 712 /* codec/machine specific init - e.g. add machine controls */ 713 int (*init)(struct snd_soc_pcm_runtime *rtd); 714 715 /* machine stream operations */ 716 struct snd_soc_ops *ops; 717
ret = snd_soc_dai_set_fmt(codec_dai, SND_SOC_DAIFMT_I2S |
SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_CBS_CFS);
At the above point, do you mean I shouldn't set these formats( SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_CBS_CFS) directly ?
Anyway,let me know your best reference driver obeys your saying about it.
thanks, tomoya