struct snd_soc_dobj dobj;
struct of_phandle_args *dai_args;
- /* DAI driver callbacks */
- int (*probe)(struct snd_soc_dai *dai);
- int (*remove)(struct snd_soc_dai *dai);
- /* compress dai */
- int (*compress_new)(struct snd_soc_pcm_runtime *rtd, int num);
- /* Optional Callback used at pcm creation*/
- int (*pcm_new)(struct snd_soc_pcm_runtime *rtd,
- struct snd_soc_dai *dai);
-
/* ops */
const struct snd_soc_dai_ops *ops;
const struct snd_soc_cdai_ops *cops;
unsigned int symmetric_rate:1;
unsigned int symmetric_channels:1;
unsigned int symmetric_sample_bits:1;
-
- /* probe ordering - for components with runtime dependencies */
- int probe_order;
- int remove_order;
};
/* for Playback/Capture */
{
struct device *dev = component->dev;
struct snd_soc_dai *dai;
- struct snd_soc_dai_ops *ops; /* REMOVE ME */
lockdep_assert_held(&client_mutex);
if (!dai->name)
return NULL;
- /* REMOVE ME */
- if (dai_drv->probe ||
- dai_drv->remove ||
- dai_drv->compress_new ||
- dai_drv->pcm_new ||
- dai_drv->probe_order ||
- dai_drv->remove_order) {
-
- ops = devm_kzalloc(dev, sizeof(struct snd_soc_dai_ops), GFP_KERNEL);
- if (!ops)
- return NULL;
- if (dai_drv->ops)
- memcpy(ops, dai_drv->ops, sizeof(struct snd_soc_dai_ops));
-
- ops->probe = dai_drv->probe;
- ops->remove = dai_drv->remove;
- ops->compress_new = dai_drv->compress_new;
- ops->pcm_new = dai_drv->pcm_new;
- ops->probe_order = dai_drv->probe_order;
- ops->remove_order = dai_drv->remove_order;
-
- dai_drv->ops = ops;
- }
-
dai->component = component;
dai->dev = dev;
dai->driver = dai_drv;