本文整理匯總了C++中AudDrv_Clk_On函數的典型用法代碼示例。如果您正苦於以下問題:C++ AudDrv_Clk_On函數的具體用法?C++ AudDrv_Clk_On怎麽用?C++ AudDrv_Clk_On使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。
在下文中一共展示了AudDrv_Clk_On函數的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C++代碼示例。
示例1: mtk_voice_extint_pm_ops_suspend
//supend and resume function
static int mtk_voice_extint_pm_ops_suspend(struct device *device)
{
// if now in phone call state, not suspend!!
bool b_modem1_speech_on;
bool b_modem2_speech_on;
AudDrv_Clk_On();//should enable clk for access reg
b_modem1_speech_on = (bool)(Afe_Get_Reg(PCM2_INTF_CON) & 0x1);
b_modem2_speech_on = (bool)(Afe_Get_Reg(PCM_INTF_CON) & 0x1);
AudDrv_Clk_Off();//should enable clk for access reg
if (b_modem1_speech_on == true || b_modem2_speech_on == true)
{
clkmux_sel(MT_MUX_AUDINTBUS, 0, "AUDIO"); //select 26M
return 0;
}
return 0;
}
示例2: mtk_voice_pm_ops_resume
static int mtk_voice_pm_ops_resume(struct device *device)
{
bool b_modem1_speech_on;
bool b_modem2_speech_on;
AudDrv_Clk_On();//should enable clk for access reg
b_modem1_speech_on = (bool)(Afe_Get_Reg(PCM2_INTF_CON) & 0x1);
b_modem2_speech_on = (bool)(Afe_Get_Reg(PCM_INTF_CON) & 0x1);
AudDrv_Clk_Off();
if (b_modem1_speech_on == true || b_modem2_speech_on == true)
{
clkmux_sel(MT_MUX_AUDINTBUS, 1, "AUDIO"); //mainpll
return 0;
}
return 0;
}
示例3: mtk_dl1_awb_pcm_open
static int mtk_dl1_awb_pcm_open(struct snd_pcm_substream *substream)
{
struct snd_pcm_runtime *runtime = substream->runtime;
int ret = 0;
printk("mtk_dl1_awb_pcm_open\n");
Dl1_AWB_Control_context = Get_Mem_ControlT(Soc_Aud_Digital_Block_MEM_AWB);
runtime->hw = mtk_dl1_awb_hardware;
memcpy((void *)(&(runtime->hw)), (void *)&mtk_dl1_awb_hardware , sizeof(struct snd_pcm_hardware));
ret = snd_pcm_hw_constraint_list(runtime, 0, SNDRV_PCM_HW_PARAM_RATE,
&dl1_awb_constraints_sample_rates);
ret = snd_pcm_hw_constraint_integer(runtime, SNDRV_PCM_HW_PARAM_PERIODS);
if (ret < 0)
{
printk("snd_pcm_hw_constraint_integer failed\n");
}
// here open audio clocks
AudDrv_Clk_On();
//print for hw pcm information
printk("mtk_dl1_awb_pcm_open runtime rate = %d channels = %d \n", runtime->rate, runtime->channels);
runtime->hw.info |= SNDRV_PCM_INFO_INTERLEAVED;
runtime->hw.info |= SNDRV_PCM_INFO_NONINTERLEAVED;
runtime->hw.info |= SNDRV_PCM_INFO_MMAP_VALID;
if (substream->stream == SNDRV_PCM_STREAM_CAPTURE)
{
printk("SNDRV_PCM_STREAM_CAPTURE \n");
}
else
{
return -1;
}
if (ret < 0)
{
printk("mtk_dl1_awb_pcm_close\n");
mtk_dl1_awb_pcm_close(substream);
return ret;
}
AudDrv_Emi_Clk_On();
printk("mtk_dl1_awb_pcm_open return\n");
return 0;
}
示例4: mtk_voice_md2_bt_pm_ops_resume
static int mtk_voice_md2_bt_pm_ops_resume(struct device *device)
{
bool b_modem1_speech_on;
bool b_modem2_speech_on;
AudDrv_Clk_On();//should enable clk for access reg
b_modem1_speech_on = (bool)(Afe_Get_Reg(PCM2_INTF_CON) & 0x1);
b_modem2_speech_on = (bool)(Afe_Get_Reg(PCM_INTF_CON) & 0x1);
AudDrv_Clk_Off();
if (b_modem1_speech_on == true || b_modem2_speech_on == true)
{
//clkmux_sel(MT_MUX_AUDINTBUS, 0, "AUDIO");
SetClkCfg(AUDIO_CLK_CFG_4, 0x1000000, 0x1000000);
return 0;
}
return 0;
}
示例5: mtk_voice_pm_ops_resume
static int mtk_voice_pm_ops_resume(struct device *device)
{
bool b_modem1_speech_on;
bool b_modem2_speech_on;
AudDrv_Clk_On(); /* should enable clk for access reg */
b_modem1_speech_on = (bool) (Afe_Get_Reg(PCM2_INTF_CON) & 0x1);
b_modem2_speech_on = (bool) (Afe_Get_Reg(PCM_INTF_CON) & 0x1);
AudDrv_Clk_Off();
if (b_modem1_speech_on == true || b_modem2_speech_on == true) {
/* mainpll */
clkmux_sel(MT_CLKMUX_AUD_HF_26M_SEL, MT_CG_SYS_TEMP, "AUDIO ");
clkmux_sel(MT_CLKMUX_AUD_INTBUS_SEL, MT_CG_MPLL_D12, "AUDIO ");
return 0;
}
return 0;
}
示例6: mtk_voice_pcm_open
static int mtk_voice_pcm_open(struct snd_pcm_substream *substream)
{
struct snd_pcm_runtime *runtime = substream->runtime;
int err = 0;
int ret = 0;
AudDrv_Clk_On();
AudDrv_ADC_Clk_On();
pr_warn("mtk_voice_pcm_open\n");
if (substream->stream == SNDRV_PCM_STREAM_CAPTURE) {
pr_warn("%s with SNDRV_PCM_STREAM_CAPTURE\n", __func__);
runtime->rate = 16000;
return 0;
}
runtime->hw = mtk_pcm_hardware;
memcpy((void *)(&(runtime->hw)), (void *)&mtk_pcm_hardware,
sizeof(struct snd_pcm_hardware));
ret = snd_pcm_hw_constraint_list(runtime, 0, SNDRV_PCM_HW_PARAM_RATE,
&constraints_sample_rates);
ret = snd_pcm_hw_constraint_integer(runtime, SNDRV_PCM_HW_PARAM_PERIODS);
if (ret < 0)
pr_warn("snd_pcm_hw_constraint_integer failed\n");
/* print for hw pcm information */
pr_warn("mtk_voice_pcm_open runtime rate = %d channels = %d\n", runtime->rate,
runtime->channels);
runtime->hw.info |= SNDRV_PCM_INFO_INTERLEAVED;
runtime->hw.info |= SNDRV_PCM_INFO_NONINTERLEAVED;
if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
pr_warn("SNDRV_PCM_STREAM_PLAYBACK mtkalsa_voice_constraints\n");
runtime->rate = 16000;
}
if (err < 0) {
pr_warn("mtk_voice_close\n");
mtk_voice_close(substream);
return err;
}
pr_warn("mtk_voice_pcm_open return\n");
return 0;
}
示例7: mtk_voice_bt1_prepare
static int mtk_voice_bt1_prepare(struct snd_pcm_substream *substream)
{
struct snd_pcm_runtime *runtimeStream = substream->runtime;
pr_debug("mtk_alsa_prepare rate = %d channels = %d period_size = %lu\n",
runtimeStream->rate, runtimeStream->channels, runtimeStream->period_size);
if (substream->stream == SNDRV_PCM_STREAM_CAPTURE) {
pr_err("%s with SNDRV_PCM_STREAM_CAPTURE\n", __func__);
return 0;
}
AudDrv_ANA_Clk_On();
AudDrv_Clk_On();
/* here start digital part */
SetConnection(Soc_Aud_InterCon_Connection, Soc_Aud_InterConnectionInput_I02,
Soc_Aud_InterConnectionOutput_O17);
SetConnection(Soc_Aud_InterCon_Connection, Soc_Aud_InterConnectionInput_I02,
Soc_Aud_InterConnectionOutput_O18);
SetConnection(Soc_Aud_InterCon_Connection, Soc_Aud_InterConnectionInput_I14,
Soc_Aud_InterConnectionOutput_O02);
SetConnection(Soc_Aud_InterCon_Connection, Soc_Aud_InterConnectionInput_I21,
Soc_Aud_InterConnectionOutput_O08);
if (GetMemoryPathEnable(Soc_Aud_Digital_Block_DAI_BT) == false) {
/* set merge interface */
SetMemoryPathEnable(Soc_Aud_Digital_Block_DAI_BT, true);
} else
SetMemoryPathEnable(Soc_Aud_Digital_Block_DAI_BT, true);
/* now use samplerate 8000 */
SetModemSpeechDAIBTAttribute(runtimeStream->rate);
SetDaiBtEnable(true);
voice_bt1Pcm.mPcmModeWidebandSel =
(runtimeStream->rate ==
8000) ? Soc_Aud_PCM_MODE_PCM_MODE_8K : Soc_Aud_PCM_MODE_PCM_MODE_16K;
voice_bt1Pcm.mAsyncFifoSel = Soc_Aud_BYPASS_SRC_SLAVE_USE_ASYNC_FIFO;
SetModemPcmConfig(MODEM_1, voice_bt1Pcm);
SetModemPcmEnable(MODEM_1, true);
EnableAfe(true);
voice_bt_Status = true;
return 0;
}
示例8: mtk_pcm_fmtx_open
static int mtk_pcm_fmtx_open(struct snd_pcm_substream *substream)
{
int ret = 0;
struct snd_pcm_runtime *runtime = substream->runtime;
PRINTK_AUD_FMTX("mtk_pcm_fmtx_open\n");
AudDrv_Clk_On();
// get dl1 memconptrol and record substream
pMemControl = Get_Mem_ControlT(Soc_Aud_Digital_Block_MEM_DL1);
runtime->hw = mtk_fmtx_hardware;
memcpy((void *)(&(runtime->hw)), (void *)&mtk_fmtx_hardware , sizeof(struct snd_pcm_hardware));
//PRINTK_AUDDRV("runtime->hw->rates= 0x%x mtk_pcm_hardware = = 0x%x\n ", runtime->hw.rates, &mtk_pcm_hardware);
ret = snd_pcm_hw_constraint_list(runtime, 0, SNDRV_PCM_HW_PARAM_RATE,
&constraints_fmtx_sample_rates);
ret = snd_pcm_hw_constraint_integer(runtime, SNDRV_PCM_HW_PARAM_PERIODS);
if (ret < 0)
{
PRINTK_AUD_FMTX("[mtk_pcm_fmtx_open]snd_pcm_hw_constraint_integer failed\n");
}
//print for hw pcm information
PRINTK_AUD_FMTX("[mtk_pcm_fmtx_open] runtime rate = %d channels = %d substream->pcm->device = %d\n",
runtime->rate, runtime->channels, substream->pcm->device);
if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
{
PRINTK_AUD_FMTX("[mtk_pcm_fmtx_open]SNDRV_PCM_FMTX_PLAYBACK mtkalsa_playback_constraints\n");
}
else
{
}
if (ret < 0)
{
PRINTK_AUD_FMTX("[mtk_pcm_fmtx_open]mtk_pcm_fmtx_close\n");
mtk_pcm_fmtx_close(substream);
return ret;
}
//PRINTK_AUDDRV("mtk_pcm_open return\n");
return 0;
}
示例9: mtk_pcm_fm_i2s_open
static int mtk_pcm_fm_i2s_open(struct snd_pcm_substream *substream)
{
struct snd_pcm_runtime *runtime = substream->runtime;
int ret = 0;
AudDrv_Clk_On();
AudDrv_I2S_Clk_On();
printk("mtk_pcm_fm_i2s_open\n");
runtime->hw = mtk_fm_i2s_hardware;
memcpy((void *)(&(runtime->hw)), (void *)&mtk_fm_i2s_hardware , sizeof(struct snd_pcm_hardware));
ret = snd_pcm_hw_constraint_list(runtime, 0, SNDRV_PCM_HW_PARAM_RATE,
&fm_i2s_constraints_sample_rates);
ret = snd_pcm_hw_constraint_integer(runtime, SNDRV_PCM_HW_PARAM_PERIODS);
if (ret < 0)
{
printk("snd_pcm_hw_constraint_integer failed\n");
}
printk("mtk_pcm_fm_i2s_open runtime rate = %d channels = %d substream->pcm->device = %d\n",
runtime->rate, runtime->channels, substream->pcm->device);
if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
{
printk("SNDRV_PCM_STREAM_PLAYBACK mtkalsa_fm_i2s_playback_constraints\n");
}
else
{
}
if (ret < 0)
{
printk("mtk_pcm_fm_i2s_close\n");
mtk_pcm_fm_i2s_close(substream);
return ret;
}
SetFMEnableFlag(true);
printk("mtk_pcm_fm_i2s_open return\n");
return 0;
}
示例10: Audio_I2S0dl1_hdoutput_Set
static int Audio_I2S0dl1_hdoutput_Set(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{
printk("%s()\n", __func__);
if (ucontrol->value.enumerated.item[0] > ARRAY_SIZE(I2S0dl1_HD_output))
{
printk("return -EINVAL\n");
return -EINVAL;
}
mI2S0dl1_hdoutput_control = ucontrol->value.integer.value[0];
if (GetMemoryPathEnable(Soc_Aud_Digital_Block_MEM_HDMI) == true )
{
printk("return HDMI enabled\n");
return 0;
}
if (mI2S0dl1_hdoutput_control)
{
// set APLL clock setting
AudDrv_Clk_On();
EnableApll1(true);
EnableApll2(true);
EnableI2SDivPower(AUDIO_APLL1_DIV0, true);
EnableI2SDivPower(AUDIO_APLL2_DIV0, true);
AudDrv_APLL1Tuner_Clk_On();
AudDrv_APLL2Tuner_Clk_On();
}
else
{
// set APLL clock setting
EnableApll1(false);
EnableApll2(false);
EnableI2SDivPower(AUDIO_APLL1_DIV0, false);
EnableI2SDivPower(AUDIO_APLL2_DIV0, false);
AudDrv_APLL1Tuner_Clk_Off();
AudDrv_APLL2Tuner_Clk_Off();
AudDrv_Clk_Off();
}
return 0;
}
示例11: mtk_pcm_dl2_open
static int mtk_pcm_dl2_open(struct snd_pcm_substream *substream)
{
int ret = 0;
struct snd_pcm_runtime *runtime = substream->runtime;
PRINTK_AUDDRV("mtk_pcm_dl2_open\n");
mtk_pcm_dl2_hardware.buffer_bytes_max = GetPLaybackDramLowLatencySize();
mPlaybackSramState = SRAM_STATE_PLAYBACKDRAM;
mPlaybackUseSram = false;
if (mPlaybackSramState == SRAM_STATE_PLAYBACKDRAM)
AudDrv_Emi_Clk_On();
pr_warn("mtk_pcm_dl2_hardware.buffer_bytes_max = %zu mPlaybackSramState = %d\n",
mtk_pcm_dl2_hardware.buffer_bytes_max, mPlaybackSramState);
runtime->hw = mtk_pcm_dl2_hardware;
AudDrv_Clk_On();
memcpy((void *)(&(runtime->hw)), (void *)&mtk_pcm_dl2_hardware,
sizeof(struct snd_pcm_hardware));
pMemControl = Get_Mem_ControlT(Soc_Aud_Digital_Block_MEM_DL2);
ret = snd_pcm_hw_constraint_list(runtime, 0, SNDRV_PCM_HW_PARAM_RATE,
&constraints_sample_rates);
if (ret < 0)
pr_err("snd_pcm_hw_constraint_integer failed\n");
if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
pr_warn("SNDRV_PCM_STREAM_PLAYBACK mtkalsa_dl2playback_constraints\n");
else
pr_warn("SNDRV_PCM_STREAM_CAPTURE mtkalsa_dl2playback_constraints\n");
if (ret < 0) {
pr_err("ret < 0 mtk_soc_pcm_dl2_close\n");
mtk_soc_pcm_dl2_close(substream);
return ret;
}
/* PRINTK_AUDDRV("mtk_pcm_dl2_open return\n"); */
return 0;
}
示例12: mtk_mrgrx_awb_pcm_open
static int mtk_mrgrx_awb_pcm_open(struct snd_pcm_substream *substream)
{
struct snd_pcm_runtime *runtime = substream->runtime;
int ret = 0;
printk("mtk_mrgrx_awb_pcm_open\n");
Mrgrx_AWB_Control_context = Get_Mem_ControlT(Soc_Aud_Digital_Block_MEM_AWB);
runtime->hw = mtk_mgrrx_awb_hardware;
memcpy((void *)(&(runtime->hw)), (void *)&mtk_mgrrx_awb_hardware , sizeof(struct snd_pcm_hardware));
ret = snd_pcm_hw_constraint_list(runtime, 0, SNDRV_PCM_HW_PARAM_RATE,
&mrgrx_awb_constraints_sample_rates);
ret = snd_pcm_hw_constraint_integer(runtime, SNDRV_PCM_HW_PARAM_PERIODS);
if (ret < 0)
{
printk("snd_pcm_hw_constraint_integer failed\n");
}
printk("mtk_mrgrx_awb_pcm_open runtime rate = %d channels = %d \n", runtime->rate, runtime->channels);
if (substream->stream == SNDRV_PCM_STREAM_CAPTURE)
{
printk("SNDRV_PCM_STREAM_CAPTURE \n");
}
else
{
return -1;
}
// here open audio clocks
AudDrv_Clk_On();
AudDrv_I2S_Clk_On();
if (ret < 0)
{
printk("mtk_mrgrx_awb_pcm_close\n");
mtk_mrgrx_awb_pcm_close(substream);
return ret;
}
printk("mtk_mrgrx_awb_pcm_open return\n");
return 0;
}
示例13: mtk_voice_pm_ops_suspend
/* supend and resume function */
static int mtk_voice_pm_ops_suspend(struct device *device)
{
/* if now in phone call state, not suspend!! */
bool b_modem1_speech_on;
bool b_modem2_speech_on;
AudDrv_Clk_On(); /* should enable clk for access reg */
b_modem1_speech_on = (bool) (Afe_Get_Reg(PCM2_INTF_CON) & 0x1);
b_modem2_speech_on = (bool) (Afe_Get_Reg(PCM_INTF_CON) & 0x1);
AudDrv_Clk_Off(); /* should enable clk for access reg */
pr_warn
("mtk_voice_pm_ops_suspend, b_modem1_speech_on=%d, b_modem2_speech_on=%d, speech_md_usage_control=%d\n",
b_modem1_speech_on, b_modem2_speech_on, speech_md_usage_control);
if (b_modem1_speech_on == true || b_modem2_speech_on == true
|| speech_md_usage_control == true) {
/* select 26M */
clkmux_sel(MT_CLKMUX_AUD_HF_26M_SEL, MT_CG_SYS_26M, "AUDIO ");
clkmux_sel(MT_CLKMUX_AUD_INTBUS_SEL, MT_CG_SYS_26M, "AUDIO ");
return 0;
}
return 0;
}
示例14: mtk_voice_bt_pm_ops_resume
static int mtk_voice_bt_pm_ops_resume(struct device *device)
{
bool b_modem1_speech_on;
bool b_modem2_speech_on;
AudDrv_ANA_Clk_On();
AudDrv_Clk_On(); /* should enable clk for access reg */
b_modem1_speech_on = (bool) (Afe_Get_Reg(PCM2_INTF_CON) & 0x1);
b_modem2_speech_on = (bool) (Afe_Get_Reg(PCM_INTF_CON) & 0x1);
AudDrv_Clk_Off();
AudDrv_ANA_Clk_Off();
if (b_modem1_speech_on == true || b_modem2_speech_on == true) {
#ifdef CONFIG_MTK_CLKMGR
clkmux_sel(MT_MUX_AUDINTBUS, 1, "AUDIO"); /* mainpll */
#endif
return 0;
}
return 0;
}
示例15: Audio_Hpr_Offset_Get
static int Audio_Hpr_Offset_Get(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{
#ifndef EFUSE_HP_TRIM
printk("%s \n", __func__);
AudDrv_Clk_On();
if (mHprCalibrated == false)
{
GetAudioTrimOffset(AUDIO_OFFSET_TRIM_MUX_HPR);
SetHprTrimOffset(mHprOffset);
SetHplTrimOffset(mHplOffset);
mHplCalibrated = true;
mHprCalibrated = true;
}
ucontrol->value.integer.value[0] = mHprOffset;
AudDrv_Clk_Off();
#else
ucontrol->value.integer.value[0] = 2048;
#endif
return 0;
}