ASoC: pcm: Add support for compat mode
When kernel is compiled for 64 bit and userspace client is in 32 bit mode compat ioctl path will be taken.If platform driver supports compat mode asoc framework should call compat function pointers. Change adds support in asoc framework to support compat mode. Change-Id: I4929bc89c2ad467cdc83f5a00fe9d38e425c3ca2 Signed-off-by: Gopikrishnaiah Anand <agopik@codeaurora.org>
This commit is contained in:
parent
53aea8efd3
commit
edf8d7c336
1 changed files with 15 additions and 0 deletions
|
@ -2217,6 +2217,19 @@ out:
|
|||
return ret;
|
||||
}
|
||||
|
||||
static int soc_pcm_compat_ioctl(struct snd_pcm_substream *substream,
|
||||
unsigned int cmd, void *arg)
|
||||
{
|
||||
struct snd_soc_pcm_runtime *rtd = substream->private_data;
|
||||
struct snd_soc_platform *platform = rtd->platform;
|
||||
|
||||
if (platform->driver->ops->compat_ioctl)
|
||||
return platform->driver->ops->compat_ioctl(substream,
|
||||
cmd, arg);
|
||||
pr_debug("%s: compat mode not supported\n", __func__);
|
||||
return -ENOIOCTLCMD;
|
||||
}
|
||||
|
||||
static int soc_pcm_ioctl(struct snd_pcm_substream *substream,
|
||||
unsigned int cmd, void *arg)
|
||||
{
|
||||
|
@ -2674,6 +2687,7 @@ int soc_new_pcm(struct snd_soc_pcm_runtime *rtd, int num)
|
|||
rtd->ops.close = dpcm_fe_dai_close;
|
||||
rtd->ops.pointer = soc_pcm_pointer;
|
||||
rtd->ops.ioctl = soc_pcm_ioctl;
|
||||
rtd->ops.compat_ioctl = soc_pcm_compat_ioctl;
|
||||
} else {
|
||||
rtd->ops.open = soc_pcm_open;
|
||||
rtd->ops.hw_params = soc_pcm_hw_params;
|
||||
|
@ -2683,6 +2697,7 @@ int soc_new_pcm(struct snd_soc_pcm_runtime *rtd, int num)
|
|||
rtd->ops.close = soc_pcm_close;
|
||||
rtd->ops.pointer = soc_pcm_pointer;
|
||||
rtd->ops.ioctl = soc_pcm_ioctl;
|
||||
rtd->ops.ioctl = soc_pcm_compat_ioctl;
|
||||
}
|
||||
|
||||
if (platform->driver->ops) {
|
||||
|
|
Loading…
Add table
Reference in a new issue