ASoC: soc-component: add snd_soc_pcm_component_ioctrl()
[sfrench/cifs-2.6.git] / sound / soc / soc-pcm.c
index 020e1d275076ca9ddd349d07296c97085da821a8..12377b8d41c2307c534d9c78de595a0ed10b88af 100644 (file)
@@ -2453,27 +2453,6 @@ out:
        return ret;
 }
 
-static int soc_pcm_ioctl(struct snd_pcm_substream *substream,
-                    unsigned int cmd, void *arg)
-{
-       struct snd_soc_pcm_runtime *rtd = substream->private_data;
-       struct snd_soc_component *component;
-       struct snd_soc_rtdcom_list *rtdcom;
-
-       for_each_rtdcom(rtd, rtdcom) {
-               component = rtdcom->component;
-
-               if (!component->driver->ops ||
-                   !component->driver->ops->ioctl)
-                       continue;
-
-               /* FIXME: use 1st ioctl */
-               return component->driver->ops->ioctl(substream, cmd, arg);
-       }
-
-       return snd_pcm_lib_ioctl(substream, cmd, arg);
-}
-
 static int dpcm_run_update_shutdown(struct snd_soc_pcm_runtime *fe, int stream)
 {
        struct snd_pcm_substream *substream =
@@ -3013,7 +2992,7 @@ int soc_new_pcm(struct snd_soc_pcm_runtime *rtd, int num)
                rtd->ops.hw_free        = dpcm_fe_dai_hw_free;
                rtd->ops.close          = dpcm_fe_dai_close;
                rtd->ops.pointer        = soc_pcm_pointer;
-               rtd->ops.ioctl          = soc_pcm_ioctl;
+               rtd->ops.ioctl          = snd_soc_pcm_component_ioctl;
        } else {
                rtd->ops.open           = soc_pcm_open;
                rtd->ops.hw_params      = soc_pcm_hw_params;
@@ -3022,7 +3001,7 @@ int soc_new_pcm(struct snd_soc_pcm_runtime *rtd, int num)
                rtd->ops.hw_free        = soc_pcm_hw_free;
                rtd->ops.close          = soc_pcm_close;
                rtd->ops.pointer        = soc_pcm_pointer;
-               rtd->ops.ioctl          = soc_pcm_ioctl;
+               rtd->ops.ioctl          = snd_soc_pcm_component_ioctl;
        }
 
        for_each_rtdcom(rtd, rtdcom) {