
Observed pop noise on TDM SPK AMP in the disable sequence. To resolve the pop noise, TDM clock should be turned OFF after digital mute ,which is done in machine driver for the disable sequence. Change-Id: I9c8b5ef820cd8ec1e9a7d022e1938d53e2f401a1 Signed-off-by: Prasad Kumpatla <pkumpatl@codeaurora.org>
66 lines
1.8 KiB
C
66 lines
1.8 KiB
C
/* Copyright (c) 2020-2021, 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 _MSM_COMMON_H_
|
|
#define _MSM_COMMON_H_
|
|
|
|
#include <sound/soc.h>
|
|
#include <sound/pcm.h>
|
|
|
|
enum {
|
|
MI2S = 0,
|
|
TDM,
|
|
AUXPCM,
|
|
};
|
|
|
|
enum {
|
|
PRI_MI2S_TDM_AUXPCM = 0,
|
|
SEC_MI2S_TDM_AUXPCM,
|
|
TER_MI2S_TDM_AUXPCM,
|
|
QUAT_MI2S_TDM_AUXPCM,
|
|
QUIN_MI2S_TDM_AUXPCM,
|
|
SEN_MI2S_TDM_AUXPCM,
|
|
MI2S_TDM_AUXPCM_MAX,
|
|
};
|
|
|
|
struct msm_common_pdata {
|
|
uint8_t *aud_dev_state;
|
|
struct kobject aud_dev_kobj;
|
|
uint8_t dsp_sessions_closed;
|
|
uint32_t num_aud_devs;
|
|
struct device_node *mi2s_gpio_p[MI2S_TDM_AUXPCM_MAX];
|
|
struct mutex lock[MI2S_TDM_AUXPCM_MAX];
|
|
atomic_t mi2s_gpio_ref_cnt[MI2S_TDM_AUXPCM_MAX];
|
|
};
|
|
|
|
int snd_card_notify_user(int card_status);
|
|
struct msm_common_pdata *msm_common_get_pdata(struct snd_soc_card *card);
|
|
|
|
void msm_common_set_pdata(struct snd_soc_card *card,
|
|
struct msm_common_pdata *pdata);
|
|
|
|
int snd_card_sysfs_init(void);
|
|
|
|
int msm_common_snd_hw_params(struct snd_pcm_substream *substream,
|
|
struct snd_pcm_hw_params *params);
|
|
|
|
int msm_common_snd_startup(struct snd_pcm_substream *substream);
|
|
|
|
void msm_common_snd_shutdown(struct snd_pcm_substream *substream);
|
|
|
|
int msm_common_snd_init(struct platform_device *pdev,
|
|
struct snd_soc_card *card);
|
|
|
|
void msm_common_snd_deinit(struct msm_common_pdata *pdata);
|
|
|
|
int msm_common_dai_link_init(struct snd_soc_pcm_runtime *rtd);
|
|
#endif
|