From: Sugar Zhang Date: Thu, 2 Jul 2015 11:26:27 +0000 (+0800) Subject: HDMI: add a helper function for config hdmi audio. X-Git-Tag: firefly_0821_release~3953 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=6e7b61dec169561780265d84b5967e93e6206213;p=firefly-linux-kernel-4.4.55.git HDMI: add a helper function for config hdmi audio. Signed-off-by: Sugar Zhang --- diff --git a/drivers/video/rockchip/hdmi/rockchip-hdmi-core.c b/drivers/video/rockchip/hdmi/rockchip-hdmi-core.c index 1844372c2514..b2400175cf02 100644 --- a/drivers/video/rockchip/hdmi/rockchip-hdmi-core.c +++ b/drivers/video/rockchip/hdmi/rockchip-hdmi-core.c @@ -1,4 +1,5 @@ #include +#include #include "rockchip-hdmi.h" #include "rockchip-hdmi-cec.h" @@ -598,6 +599,54 @@ int hdmi_config_audio(struct hdmi_audio *audio) return 0; } +#ifdef CONFIG_RK_HDMI +int snd_config_hdmi_audio(struct snd_pcm_hw_params *params) +{ + struct hdmi_audio audio_cfg; + u32 rate; + + switch (params_rate(params)) { + case 32000: + rate = HDMI_AUDIO_FS_32000; + break; + case 44100: + rate = HDMI_AUDIO_FS_44100; + break; + case 48000: + rate = HDMI_AUDIO_FS_48000; + break; + case 88200: + rate = HDMI_AUDIO_FS_88200; + break; + case 96000: + rate = HDMI_AUDIO_FS_96000; + break; + case 176400: + rate = HDMI_AUDIO_FS_176400; + break; + case 192000: + rate = HDMI_AUDIO_FS_192000; + break; + default: + pr_err("rate %d unsupport.", params_rate(params)); + rate = HDMI_AUDIO_FS_44100; + } + + audio_cfg.rate = rate; + + if (HW_PARAMS_FLAG_NLPCM == params->flags) + audio_cfg.type = HDMI_AUDIO_NLPCM; + else + audio_cfg.type = HDMI_AUDIO_LPCM; + + audio_cfg.channel = params_channels(params); + audio_cfg.word_length = HDMI_AUDIO_WORD_LENGTH_16bit; + + return hdmi_config_audio(&audio_cfg); +} +EXPORT_SYMBOL(snd_config_hdmi_audio); +#endif + void hdmi_audio_mute(int mute) { int i;