Lines Matching defs:dai
2760 static int madera_set_fmt(struct snd_soc_dai *dai, unsigned int fmt)
2762 struct snd_soc_component *component = dai->component;
2767 base = dai->driver->base;
2779 madera_aif_err(dai, "DSP_B not valid in slave mode\n");
2790 madera_aif_err(dai, "LEFT_J not valid in slave mode\n");
2796 madera_aif_err(dai, "Unsupported DAI format %d\n",
2815 madera_aif_err(dai, "Unsupported master mode %d\n",
2834 madera_aif_err(dai, "Unsupported invert mode %d\n",
2940 struct snd_soc_dai *dai)
2942 struct snd_soc_component *component = dai->component;
2944 struct madera_dai_priv *dai_priv = &priv->dai[dai->id - 1];
2993 struct snd_soc_dai *dai)
2995 struct snd_soc_component *component = dai->component;
2997 struct madera_dai_priv *dai_priv = &priv->dai[dai->id - 1];
2998 int base = dai->driver->base;
3008 madera_aif_err(dai, "Unsupported sample rate %dHz\n",
3036 madera_aif_err(dai, "Invalid clock %d\n", dai_priv->clk);
3049 madera_aif_err(dai, "Failed to check rate: %d\n", ret);
3059 madera_aif_warn(dai, "Cannot change rate while active\n");
3099 struct snd_soc_dai *dai)
3101 struct snd_soc_component *component = dai->component;
3104 int base = dai->driver->base;
3111 madera->pdata.codec.max_channels_clocked[dai->id - 1];
3112 int tdm_width = priv->tdm_width[dai->id - 1];
3113 int tdm_slots = priv->tdm_slots[dai->id - 1];
3129 madera_aif_dbg(dai, "Configuring for %d %d bit TDM slots\n",
3139 madera_aif_dbg(dai, "Limiting to %d channels\n", chan_limit);
3148 madera_aif_dbg(dai, "Forcing stereo mode\n");
3161 madera_aif_err(dai, "Unsupported sample rate %dHz\n", rate);
3167 madera_aif_dbg(dai, "BCLK %dHz LRCLK %dHz\n",
3189 ret = madera_hw_params_rate(substream, params, dai);
3239 static int madera_dai_set_sysclk(struct snd_soc_dai *dai,
3242 struct snd_soc_component *component = dai->component;
3246 struct madera_dai_priv *dai_priv = &priv->dai[dai->id - 1];
3259 if (snd_soc_dai_active(dai)) {
3261 dai->id);
3265 dev_dbg(component->dev, "Setting AIF%d to %s\n", dai->id,
3273 routes[0].sink = dai->driver->capture.stream_name;
3274 routes[1].sink = dai->driver->playback.stream_name;
3288 static int madera_set_tristate(struct snd_soc_dai *dai, int tristate)
3290 struct snd_soc_component *component = dai->component;
3291 int base = dai->driver->base;
3309 static void madera_set_channels_to_mask(struct snd_soc_dai *dai,
3313 struct snd_soc_component *component = dai->component;
3329 madera_aif_warn(dai, "Too many channels in TDM mask\n");
3332 static int madera_set_tdm_slot(struct snd_soc_dai *dai, unsigned int tx_mask,
3335 struct snd_soc_component *component = dai->component;
3337 int base = dai->driver->base;
3338 int rx_max_chan = dai->driver->playback.channels_max;
3339 int tx_max_chan = dai->driver->capture.channels_max;
3342 if (dai->id > MADERA_MAX_AIF)
3350 madera_set_channels_to_mask(dai, base + MADERA_AIF_FRAME_CTRL_3,
3352 madera_set_channels_to_mask(dai, base + MADERA_AIF_FRAME_CTRL_11,
3355 priv->tdm_width[dai->id - 1] = slot_width;
3356 priv->tdm_slots[dai->id - 1] = slots;
3380 struct madera_dai_priv *dai_priv = &priv->dai[id];