ASoC: core: Add compat ioctl support for listen driver

Change adds compat ioctl to listen driver for supporting 32 bit userspace
client when kernel is compiled for 64 bit.

Change-Id: Ie6a6fb1f2b6ea569e03b02bc520ef79b95c1009c
Signed-off-by: Gopikrishnaiah Anandan <agopik@codeaurora.org>
Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org>
Signed-off-by: Meng Wang <mwang@codeaurora.org>
This commit is contained in:
Banajit Goswami 2014-08-21 18:49:04 -07:00 • committed by Meng Wang
commit 5d57141aeb
2 changed files with 11 additions and 3 deletions

View file

@ -56,7 +56,7 @@ struct snd_pcm_ops {
unsigned int cmd, void *arg);
#ifdef CONFIG_AUDIO_QGKI
int (*compat_ioctl)(struct snd_pcm_substream *substream,
unsigned int cmd, void *arg);
unsigned int cmd, void __user *arg);
#endif
int (*hw_params)(struct snd_pcm_substream *substream,
struct snd_pcm_hw_params *params);

View file

@ -654,6 +654,15 @@ static int snd_compressed_ioctl32(struct snd_pcm_substream *substream,
pr_debug("%s called with cmd = %d\n", __func__, cmd);
return err;
}
static int snd_pcm_ioctl32_compat(struct snd_pcm_substream *substream,
unsigned int cmd, void __user *arg)
{
if (_IOC_TYPE(cmd) == 'C' || _IOC_TYPE(cmd) == 'U')
return snd_compressed_ioctl32(substream, cmd, arg);
return 0;
}
#endif
static long snd_pcm_ioctl_compat(struct file *file, unsigned int cmd, unsigned long arg)
@ -735,8 +744,7 @@ static long snd_pcm_ioctl_compat(struct file *file, unsigned int cmd, unsigned l
#endif /* CONFIG_X86_X32 */
#ifdef CONFIG_AUDIO_QGKI
default:
if (_IOC_TYPE(cmd) == 'C')
return snd_compressed_ioctl32(substream, cmd, argp);
return snd_pcm_ioctl32_compat(substream, cmd, argp);
#endif
}