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 <rahsha@codeaurora.org>
This commit is contained in:
Rahul Sharma 2018-11-19 15:45:27 +05:30 • committed by Gerrit - the friendly Code Review server
commit a070ce5bc8
4 changed files with 73 additions and 1 deletions

View file

@ -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

36
asoc/machine_615x_init.c Normal file
View file

@ -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 <linux/kernel.h>
#include <linux/module.h>
#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");

23
asoc/machine_615x_init.h Normal file
View file

@ -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

View file

@ -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");