diff options
Diffstat (limited to 'drivers/misc/audio_io_dev/ste_audio_io_dev.c')
-rw-r--r-- | drivers/misc/audio_io_dev/ste_audio_io_dev.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/drivers/misc/audio_io_dev/ste_audio_io_dev.c b/drivers/misc/audio_io_dev/ste_audio_io_dev.c index 8b677909104..edea31e4315 100644 --- a/drivers/misc/audio_io_dev/ste_audio_io_dev.c +++ b/drivers/misc/audio_io_dev/ste_audio_io_dev.c @@ -484,6 +484,24 @@ static int process_fir_coeffs_ctrl_cmd(unsigned int cmd, unsigned long arg) return retval; } +static int process_clk_select_cmd(unsigned int cmd, unsigned long arg) +{ + int retval; + struct audioio_clk_select_t *cmd_data; + cmd_data = kmalloc(sizeof(struct audioio_clk_select_t), + GFP_KERNEL); + if (!cmd_data) + return -ENOMEM; + if (copy_from_user(cmd_data, (void __user *)arg, + sizeof(struct audioio_clk_select_t))) { + kfree(cmd_data); + return -EFAULT; + } + retval = ste_audio_io_core_clk_select_control(cmd_data); + kfree(cmd_data); + return retval; +} + static int ste_audio_io_cmd_parser(unsigned int cmd, unsigned long arg) { int retval = 0; @@ -568,6 +586,9 @@ static int ste_audio_io_cmd_parser(unsigned int cmd, unsigned long arg) case AUDIOIO_FIR_COEFFS_CTRL: retval = process_fir_coeffs_ctrl_cmd(cmd, arg); break; + case AUDIOIO_CLK_SELECT_CTRL: + retval = process_clk_select_cmd(cmd, arg); + break; } return retval; } |