From a070ce5bc81a74ecf137ce04fd6b1c2c054bb436 Mon Sep 17 00:00:00 2001 From: Rahul Sharma Date: Mon, 19 Nov 2018 15:45:27 +0530 Subject: [PATCH] asoc: Add machine driver changes for sa6155 Add machine driver interface for 615x to support dynamic loading of kernel module. Change-Id: I5691c2730d31390d6f6b4ce30794182421dc1861 Signed-off-by: Rahul Sharma --- asoc/Kbuild | 2 ++ asoc/machine_615x_init.c | 36 ++++++++++++++++++++++++++++++++++++ asoc/machine_615x_init.h | 23 +++++++++++++++++++++++ asoc/sm6150.c | 13 ++++++++++++- 4 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 asoc/machine_615x_init.c create mode 100644 asoc/machine_615x_init.h diff --git a/asoc/Kbuild b/asoc/Kbuild index 5ff12c61c14a..afbda8ba4e43 100644 --- a/asoc/Kbuild +++ b/asoc/Kbuild @@ -86,6 +86,8 @@ endif # for SM6150 sound card driver ifdef CONFIG_SND_SOC_SM6150 MACHINE_OBJS += sm6150.o + MACHINE_OBJS += sa8155.o + MACHINE_OBJS += machine_615x_init.o endif # for qcs405 sound card driver diff --git a/asoc/machine_615x_init.c b/asoc/machine_615x_init.c new file mode 100644 index 000000000000..cf5013826bc8 --- /dev/null +++ b/asoc/machine_615x_init.c @@ -0,0 +1,36 @@ +/* +* Copyright (c) 2018, The Linux Foundation. All rights reserved. +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License version 2 and +* only version 2 as published by the Free Software Foundation. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +*/ + +#include +#include +#include "machine_615x_init.h" + +static int __init audio_machine_615x_init(void) +{ + sm6150_init(); + sa8155_init(); + return 0; +} + +static void audio_machine_615x_exit(void) +{ + sm6150_exit(); + sa8155_exit(); +} + +module_init(audio_machine_615x_init); +module_exit(audio_machine_615x_exit); + +MODULE_DESCRIPTION("Audio Machine 615X Driver"); +MODULE_LICENSE("GPL v2"); diff --git a/asoc/machine_615x_init.h b/asoc/machine_615x_init.h new file mode 100644 index 000000000000..36565e46bb10 --- /dev/null +++ b/asoc/machine_615x_init.h @@ -0,0 +1,23 @@ +/* +* Copyright (c) 2018, The Linux Foundation. All rights reserved. +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License version 2 and +* only version 2 as published by the Free Software Foundation. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +*/ + +#ifndef __MACHINE_615X_INIT_H__ +#define __MACHINE_615X_INIT_H__ +int sm6150_init(void); +int sa8155_init(void); + +void sm6150_exit(void); +void sa8155_exit(void); +#endif + diff --git a/asoc/sm6150.c b/asoc/sm6150.c index 49902c875b36..e41fe49caeaf 100644 --- a/asoc/sm6150.c +++ b/asoc/sm6150.c @@ -9302,7 +9302,18 @@ static struct platform_driver sm6150_asoc_machine_driver = { .probe = msm_asoc_machine_probe, .remove = msm_asoc_machine_remove, }; -module_platform_driver(sm6150_asoc_machine_driver); + +int __init sm6150_init(void) +{ + pr_debug("%s\n", __func__); + return platform_driver_register(&sm6150_asoc_machine_driver); +} + +void sm6150_exit(void) +{ + pr_debug("%s\n", __func__); + platform_driver_unregister(&sm6150_asoc_machine_driver); +} MODULE_DESCRIPTION("ALSA SoC SM6150 Machine driver"); MODULE_LICENSE("GPL v2");