기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.
TCC 8930 칩을 사용하는 보드에 ALC5622 코덱을 사용하고 있습니다.
안드로이드와 사운드 연결은 다 되어 소리 출력과 마이크 입력이 되기는 하는데요.
Sound Recoder로 녹음을 시작하면 8초 후에 마이크 입력이 끊어 집니다.
커널 로그에서는 route에 연결한 출력쪽 콜백함수가 호출 되었다고 나오면서 I2C 포트 출력을 하는것이 확인 됩니다.
[ 626.340000] == alsa-debug-alc5622 == [mic_event] <= Sound Recoder 녹음 시작
[ 629.380000] == alc5622-debug == [alc5623_mute]
[ 629.380000] i2c i2c-0: master_xfer[0] W, addr=0x1a, len=3
[ 634.410000] == alsa-debug-alc5622 == [linejack_event] <= 마이크 입력이 끊어지는 부분
[ 634.410000] == alsa-debug-alc5622 == [speaker_event]
[ 634.420000] i2c i2c-0: master_xfer[0] W, addr=0x1a, len=3
[ 634.440000] i2c i2c-0: master_xfer[0] W, addr=0x1a, len=3
[ 634.460000] i2c i2c-0: master_xfer[0] W, addr=0x1a, len=3
[ 634.480000] i2c i2c-0: master_xfer[0] W, addr=0x1a, len=3
[ 634.500000] i2c i2c-0: master_xfer[0] W, addr=0x1a, len=3
안드로이드 쪽에서 뭔가 이벤트를 발생시키는것 같은데 어디를 봐야 할지 도저히 찾을수가 없네요.
혹시 도움을 좀 받을 수 있을지요..
말씀하시는 것으로 봐서는 위에서 제가 말씀드린 5631 에서 발생하는 문제와 거의 동일할 듯 하네요.
만행을 저지르는게 DAPM widget control시 이루어지는 듯 하네요.
이거 잡기 그지같이 힘듭니다....ㅠ.ㅠ
저희는 driver 소스를 있는대로 다 받아다가 테스트해서 잡았습니다.
5631 드라이버 소스가 대여섯가지는 되는 듯 하네요.
참고로, 5631의 경우는 realtek에서 주는 guide문서대로 동작되지 않았습니다.
다른 칩도 그럴 가능성이 있을겁니다.
최후의 방법으로는 dapm을 전혀 안쓰는 드라이버 코드로 작업하는 것인데
난이도가 워낙 커서 비추입니다.
(저는 가끔 하긴 합니다....팝업노이즈 잡을때는)
근래 realtek의 audio codec이 아마도 wolfson style의 제어를 따라가면서
driver들의 동작이 애매하게 됩니다.
제가 근래 realtek 것을 쓰다가 양산용으로 2개 밀어넣었다가 2주 동안 식음을 전폐(?)
할 정도로 스트레스 받았습니다.
mic 때문에요. 덕분에 제 밑의 audio 담당자도 3주 정도 멘붕이 왔고요.
어찌어찌 해결은 했는데, 동작이 정말 이상합니다.
android에서 alc5631q를 작업하면서 mic관련 부분 중 이상한 증상은 다음과 같습니다.
1. mic만 동작이 안된다. 즉, play를 하면서 mic를 동작하면 일부 되는 경우가 있습니다.
이것도 특정상황은 되는데, gloomyday 님과 같은 증상이 나옵니다.
2. mic만 only 동작되도록 코딩을 해서 작업하면 play & record가 동시에 되지 않는다.
제가 nxp4330 board에 akm을 쓴 이유가 이런 상황을 함 겪고 나서입니다.
그리고, 더 웃긴 것은 한세대 이전의 codec인 alc5625는 괜찮다는 것이죠.
그리고 몇가지 조언을 좀 더 해드리면
alsa xrun debug 를 활용하도록 준비하시고
기본 기능 테스트는 console을 이용하여 ( tinyalsa 추천 )
테스트 해 보세요 ( android 에서도 가능 )
그래야 커널 문젠지 안드로이드 문제인지 분간 할 수 있을 것 같습니다.
대신 콘솔로 하면 5622의 path 컨트롤을 좀 할 수 있어야 하구요(tinymix)
datasheet 한번 살펴 봤는데 블록도 보면 그렇게 복잡하지는 않네요..
할수 있을겁니다!! 화이팅
마지막으로.. TCC 면 기술지원 받으시면 되지 않나요? ㅎㅎㅎ
아... 왜 8초가 녹음되는지 이제여 알겠네요
ㅋㅋㅋ
안드로이드 버튼 클릭 하면서 playback path가 켜집니다.
근데! 안드로이는 pop 제거를 위해 3초 zero padding data를 playback으로 내 보냅니다
(music stop을 눌러도 3초 동은 코덱으로 0으로 된 pcm을 내보낸다는 것)
이때 녹음이 시작 하고 3초가 녹음이 됩니다.
그럼 5초는? 위에 설명 드렸다 싶이 playback pcm 이 close 되면, 5초 후에 ( 위에 제가 10초로 수정하라고 한것 )
codec을 끕니다.
이래서 8초가 녹음이 되는군요.. ㅎㅎㅎ
일단 path 문제가 제일 커 보이는데
Codec 이 Master 모드 입니까? AP가 Master 입니까?
MCLK의 공급원은 어디서 나오죠? AP로 부터? 외부 클럭을 달아서?
코덱은 slave로 동작을 하구요 mclk는 AP에서 공급 받습니다.
아..정말 혼자서 하다 보면 생각못하는게 많아 지는군요.
왜 긴 음악을 플레이 해놓고 녹음할 생각을 못했는지 모르겠습니다..
보여달라고 하신 문자열들입니다.
1.
Number of controls: 57
ctl type num name value
0 BOOL 1 Main I2S Enable On
1 INT 2 Speaker Playback Volume 25 25
2 BOOL 2 Speaker Playback Switch On On
3 INT 2 Line Playback Volume 31 31
4 BOOL 2 Line Playback Switch On On
5 INT 2 Auxout Playback Volume 25 25
6 BOOL 2 Auxout Playback Switch On On
7 BOOL 1 Auxout Amp Switch Off
8 INT 2 PCM Playback Volume 25 25
9 INT 2 AuxI Capture Volume 31 31
10 INT 2 LineIn Capture Volume 31 31
11 BOOL 1 Mic1 Bias On
12 INT 1 Mic1 Capture Volume 25
13 INT 1 Mic2 Capture Volume 0
14 INT 2 Rec Capture Volume 25 25
15 INT 1 Mic 1 Boost Volume 1
16 INT 1 Mic 2 Boost Volume 0
17 INT 1 Digital Boost Volume 0
18 ENUM 1 AB-D Amp Mux AB Amp
19 BOOL 1 Right Capture Mix Mic1 Capture Switch On
20 BOOL 1 Right Capture Mix Mic2 Capture Switch Off
21 BOOL 1 Right Capture Mix LineInR Capture Switch On
22 BOOL 1 Right Capture Mix Right AuxI Capture Switch On
23 BOOL 1 Right Capture Mix HPMixerR Capture Switch On
24 BOOL 1 Right Capture Mix SPKMixer Capture Switch On
25 BOOL 1 Right Capture Mix MonoMixer Capture Switch On
26 BOOL 1 Left Capture Mix Mic1 Capture Switch On
27 BOOL 1 Left Capture Mix Mic2 Capture Switch Off
28 BOOL 1 Left Capture Mix LineInL Capture Switch On
29 BOOL 1 Left Capture Mix Left AuxI Capture Switch On
30 BOOL 1 Left Capture Mix HPMixerL Capture Switch On
31 BOOL 1 Left Capture Mix SPKMixer Capture Switch On
32 BOOL 1 Left Capture Mix MonoMixer Capture Switch On
33 BOOL 1 Speaker Mix LI2SPK Playback Switch Off
34 BOOL 1 Speaker Mix AUXI2SPK Playback Switch Off
35 BOOL 1 Speaker Mix MIC12SPK Playback Switch Off
36 BOOL 1 Speaker Mix MIC22SPK Playback Switch Off
37 BOOL 1 Speaker Mix DAC2SPK Playback Switch On
38 BOOL 1 Mono Mix ADC2MONO_L Playback Switch On
39 BOOL 1 Mono Mix ADC2MONO_R Playback Switch On
40 BOOL 1 Mono Mix LI2MONO Playback Switch On
41 BOOL 1 Mono Mix AUXI2MONO Playback Switch On
42 BOOL 1 Mono Mix MIC12MONO Playback Switch On
43 BOOL 1 Mono Mix MIC22MONO Playback Switch On
44 BOOL 1 Mono Mix DAC2MONO Playback Switch On
45 BOOL 1 HPL Mix ADC2HP_L Playback Switch On
46 BOOL 1 HPR Mix ADC2HP_R Playback Switch On
47 BOOL 1 HP Mix LI2HP Playback Switch On
48 BOOL 1 HP Mix AUXI2HP Playback Switch On
49 BOOL 1 HP Mix MIC12HP Playback Switch On
50 BOOL 1 HP Mix MIC22HP Playback Switch On
51 BOOL 1 HP Mix DAC2HP Playback Switch On
52 ENUM 1 SpeakerOut N Mux LN/-R
53 ENUM 1 Right Headphone Mux Vmid
54 ENUM 1 Left Headphone Mux Vmid
55 ENUM 1 SpeakerOut Mux Speaker Mix
56 ENUM 1 AuxOut Mux Speaker Mix
2.
AB Amp
AB-D Amp Mux
AUXINL
AUXINR
AUXOUTL
AUXOUTR
AuxI Mix
AuxOut Mux
D Amp
HP Mix
HPL
HPL Mix
HPOut Mix
HPR
HPR Mix
I2S Mix
LINEINL
LINEINR
Left ADC
Left AuxI
Left AuxOut
Left Capture Mix
Left DAC
Left Headphone
Left Headphone Mux
Left LineIn
Line Mix
Lineout
MIC1
MIC1 PGA
MIC1 Pre Amp
MIC2
MIC2 PGA
MIC2 Pre Amp
Mic
Mic Bias1
Mono Mix
Right ADC
Right AuxI
Right AuxOut
Right Capture Mix
Right DAC
Right Headphone
Right Headphone Mux
Right LineIn
SPKOUT
SPKOUTN
Speaker
Speaker Mix
SpeakerOut
SpeakerOut Mux
SpeakerOut N Mux
Vmid
bias_level
3.
bias_level
일단 대기 상태와 녹음상태 마이크 끊어진 상태로 확인을 해봤는데요.
마이크가 끊어질때 상태는 분명 On인데 몇개가 in이 2개 줄어 듭니다.
대기상태
MIC1: Off in 2 out 0
in "static" "Mic"
in "static" "Mic"
out "static" "MIC1 Pre Amp"
MIC1 Pre Amp: Off in 2 out 0 - R62(0x3e) bit 1
in "static" "MIC1"
out "static" "MIC1 PGA"
out "Mic1 Capture Switch" "Right Capture Mix"
out "Mic1 Capture Switch" "Left Capture Mix"
Left Capture Mix: Off in 11 out 0 - R60(0x3c) bit 1
in "MonoMixer Capture Switch" "Mono Mix"
in "SPKMixer Capture Switch" "Speaker Mix"
in "HPMixerL Capture Switch" "HPL Mix"
in "Mic1 Capture Switch" "MIC1 Pre Amp"
in "Left AuxI Capture Switch" "AUXINL"
in "LineInL Capture Switch" "LINEINL"
out "static" "Left ADC"
out "ADC2MONO_L Playback Switch" "Mono Mix"
out "ADC2HP_L Playback Switch" "HPL Mix"
Right Capture Mix: Off in 11 out 0 - R60(0x3c) bit 0
in "MonoMixer Capture Switch" "Mono Mix"
in "SPKMixer Capture Switch" "Speaker Mix"
in "HPMixerR Capture Switch" "HPR Mix"
in "Mic1 Capture Switch" "MIC1 Pre Amp"
in "Right AuxI Capture Switch" "AUXINR"
in "LineInR Capture Switch" "LINEINR"
out "static" "Right ADC"
out "ADC2MONO_R Playback Switch" "Mono Mix"
out "ADC2HP_R Playback Switch" "HPR Mix"
Left ADC: Off in 11 out 0 - R60(0x3c) bit 7
stream Left HiFi Capture inactive
in "static" "Left Capture Mix"
Right ADC: Off in 11 out 0 - R60(0x3c) bit 6
stream Right HiFi Capture inactive
in "static" "Right Capture Mix"
녹음
MIC1: On in 2 out 2
in "static" "Mic"
in "static" "Mic"
out "static" "MIC1 Pre Amp"
MIC1 Pre Amp: On in 2 out 2 - R62(0x3e) bit 1
in "static" "MIC1"
out "static" "MIC1 PGA"
out "Mic1 Capture Switch" "Right Capture Mix"
out "Mic1 Capture Switch" "Left Capture Mix"
Left Capture Mix: On in 13 out 2 - R60(0x3c) bit 1
in "MonoMixer Capture Switch" "Mono Mix"
in "SPKMixer Capture Switch" "Speaker Mix"
in "HPMixerL Capture Switch" "HPL Mix"
in "Mic1 Capture Switch" "MIC1 Pre Amp"
in "Left AuxI Capture Switch" "AUXINL"
in "LineInL Capture Switch" "LINEINL"
out "static" "Left ADC"
out "ADC2MONO_L Playback Switch" "Mono Mix"
out "ADC2HP_L Playback Switch" "HPL Mix"
Right Capture Mix: On in 13 out 2 - R60(0x3c) bit 0
in "MonoMixer Capture Switch" "Mono Mix"
in "SPKMixer Capture Switch" "Speaker Mix"
in "HPMixerR Capture Switch" "HPR Mix"
in "Mic1 Capture Switch" "MIC1 Pre Amp"
in "Right AuxI Capture Switch" "AUXINR"
in "LineInR Capture Switch" "LINEINR"
out "static" "Right ADC"
out "ADC2MONO_R Playback Switch" "Mono Mix"
out "ADC2HP_R Playback Switch" "HPR Mix"
Left ADC: On in 13 out 1 - R60(0x3c) bit 7
stream Left HiFi Capture active
in "static" "Left Capture Mix"
Right ADC: On in 13 out 1 - R60(0x3c) bit 6
stream Right HiFi Capture active
in "static" "Right Capture Mix"
안될 때
MIC1: On in 2 out 2
in "static" "Mic"
in "static" "Mic"
out "static" "MIC1 Pre Amp"
MIC1 Pre Amp: On in 2 out 2 - R62(0x3e) bit 1
in "static" "MIC1"
out "static" "MIC1 PGA"
out "Mic1 Capture Switch" "Right Capture Mix"
out "Mic1 Capture Switch" "Left Capture Mix"
Left Capture Mix: On in 11 out 2 - R60(0x3c) bit 1
in "MonoMixer Capture Switch" "Mono Mix"
in "SPKMixer Capture Switch" "Speaker Mix"
in "HPMixerL Capture Switch" "HPL Mix"
in "Mic1 Capture Switch" "MIC1 Pre Amp"
in "Left AuxI Capture Switch" "AUXINL"
in "LineInL Capture Switch" "LINEINL"
out "static" "Left ADC"
out "ADC2MONO_L Playback Switch" "Mono Mix"
out "ADC2HP_L Playback Switch" "HPL Mix"
Right Capture Mix: On in 11 out 2 - R60(0x3c) bit 0
in "MonoMixer Capture Switch" "Mono Mix"
in "SPKMixer Capture Switch" "Speaker Mix"
in "HPMixerR Capture Switch" "HPR Mix"
in "Mic1 Capture Switch" "MIC1 Pre Amp"
in "Right AuxI Capture Switch" "AUXINR"
in "LineInR Capture Switch" "LINEINR"
out "static" "Right ADC"
out "ADC2MONO_R Playback Switch" "Mono Mix"
out "ADC2HP_R Playback Switch" "HPR Mix"
Left ADC: On in 11 out 1 - R60(0x3c) bit 7
stream Left HiFi Capture active
in "static" "Left Capture Mix"
Right ADC: On in 11 out 1 - R60(0x3c) bit 6
stream Right HiFi Capture active
in "static" "Right Capture Mix"
playback 스트림이 살아 있을 때 마이크 입력이 되는 이유는
ALSA DAPM 상 MIC 부터 HP 나 SPK 까지 모두 연결이 되어 있기 때문에
Left ADC power, Left Mixer power 를 키기 때문에 녹음이 가능 합니다.
playback 스트림이 끝나면 더이상 DAPM 상 연결이 모두 끊기기 때문에
power를 down 시켜서 녹음이 안되는 것입니다.
DAPM 이 IN->OUT 연결 체결 되었을때 녹음이 이상없으므로 codec register를
잘못 설정해 주고 있지는 않은것 같습니다.
커널 버젼 얼마나 사용하시는지는 잘 모르나.. 현재 가장 가능성 있는 부분은
SND_SOC_DAPM_ADC("Left ADC", "Left HiFi Capture", ALC5623_PWR_MANAG_ADD2, 7, 0),
SND_SOC_DAPM_ADC("Right ADC", "Right HiFi Capture", ALC5623_PWR_MANAG_ADD2, 6, 0),
static struct snd_soc_dai_driver alc5623_dai = {
.capture = {
.stream_name = "Capture",
.
}
};
이 부분입니다.
논리적으로 DAPM 이 연결이 안되기 때문에 power 가 안들어가는 것인데
... 아무튼 건투를 빕니다~
올려 주신걸 보면 이부분은 아니네요 active 상태입니다...
와.... 그럼 답 안나오는데요?;;;;;;...... ㅡ.ㅡ;;;;;
데이타 쉬트 5page 의 audio path 를 보시고
ls /d/asoc/YourSoundCardName"/"Codec device Name"/dapm
전체 덤프를 뜨셔서 한번 비교해 보세요.
제 느낌은 아무래도 codec driver를 작성한 사람이(Arnaud Patard <[email protected]>)
DAPM map 을 구성하면서 capture에 필요한 power(?) 를 빼먹었고
playback을 하면 capture에 필요한 power가 들어가서 녹음이 되고 playback이 끝나면 power가 꺼져서
그런듯 싶습니다. 그러니깐
playback 할때 켜지는 power reg bit 가 capture 할때도 필요한 power reg bit 인데
dapm 상 play 할 때만 켜지도록 구성 되어 있다는 느낌.
그 reg bit를 찾은 뒤에 dapm 을 조금 손보셔서 capture dapm 시퀀스에도 추가를 해야 한다...
라는 제 생각 입니다.
(안될 때 올려 주신거 보면 현재 capture dapm 구성으로 reg나 bit 가 모두 on 되어 있습니다)
금요일 밤에 수고 많은십니다. 수고하세요!
0x3A, 15bit, Main I2S 가 맞는거 같네요
(실제 안될때 0x3a ,15bit 를 강제로 1로 변경 해 보시면 바로 확인 하실수 있음)
일단 수정을 다음과 같이 한번 해 보시죠
---------------------------------------------------------------------------------
-SND_SOC_DAPM_MIXER("I2S Mix", ALC5623_PWR_MANAG_ADD1, 15, 0, NULL, 0),
+SND_SOC_DAPM_MIXER("I2S Mix", SND_SOC_NOPM, 0, 0, NULL, 0),
+static int open_count;
+int alc5623_pcm_startup(struct snd_pcm_substream substream, struct snd_soc_dai *codec_dai)
+{
+ struct snd_soc_codec *codec = codec_dai->codec;
+ u16 ctl;
+ if (!open_count) {
+ ctl = snd_soc_read(codec, ALC5623_PWR_MANAG_ADD1);
+ ctl |= ALC5623_PWR_ADD1_MAIN_I2S_EN ;
+ snd_soc_write(codec, ALC5623_PWR_MANAG_ADD1, ctl);
+ }
+
+ open_count++;
+}
+void alc5623_pcm_shutdown(struct snd_pcm_substream substream, struct snd_soc_dai *codec_dai)
+{
+ struct snd_soc_codec *codec = codec_dai->codec;
+ u16 ctl;
+ open_count--;
+ if (!open_count) {
+ ctl = snd_soc_read(codec, ALC5623_PWR_MANAG_ADD1);
+ ctl &= ~ALC5623_PWR_ADD1_MAIN_I2S_EN;
+ snd_soc_write(codec, ALC5623_PWR_MANAG_ADD1, ctl);
+ }
+
+}
static const struct snd_soc_dai_ops alc5623_dai_ops = {
+ .startup = alc5623_pcm_startup,
+ .shutdown = alc5623_pcm_shutdown,
.hw_params = alc5623_pcm_hw_params,
.digital_mute = alc5623_mute,
.set_fmt = alc5623_set_dai_fmt,
.set_sysclk = alc5623_set_dai_sysclk,
.set_pll = alc5623_set_dai_pll,
};
---------------------------------------------------------------------------------
I2S enable 0x3a 15bit 를 dapm 에서 빼고
open close 시 on , off 합니다.
대신 open count 로 관리하여
0이 될때만 i2s disable
1이상일때는 open 시 건들지 않음....
재일 중요한게 0x3a,15bit 를 dapm 으로 관리 안되게 뺴는 겁니다.
notepad 에서 끄적여서
테스트및 컴파일은 못했어요 ㅎㅎㅎ 에러 나면 적당히 수정하셔서... 한번 해보세요
아무래도.....레지를 순서대로 켜는것도 중요한가 봅니다.
쾌도난마님께서 작성하신 코드에 조금 수정해서 돌려보니 마이크가 아예 켜지지를 않는군요.
코드 수정은 "struct snd_soc_codec *codec = codec_dai->codec;"이 되지 않아
struct snd_soc_pcm_runtime *rtd = substream->private_data;
struct snd_soc_codec *codec = rtd->codec;
이렇게 변경 하였습니다.
일단 Capture가 활성화 되어있으면 회피 하도록 코드를 수정해서 테스트를 해봐야겠네요.
static void soc_dapm_stream_event(struct snd_soc_dapm_context *dapm,
const char *stream, int event)
{
struct snd_soc_dapm_widget *w;
+ int currentEvent = event;
+
+ if(strstr(stream, "Playback") && currentEvent == SND_SOC_DAPM_STREAM_STOP)
+ {
+ list_for_each_entry(w, &dapm->card->widgets, list)
+ {
+ if (!w->sname || w->dapm != dapm)
+ continue;
+ if(strstr(w->sname, "Capture") && w->active == 1)
+ {
+ currentEvent = SND_SOC_DAPM_STREAM_RESUME;
+ }
+ }
+ }
list_for_each_entry(w, &dapm->card->widgets, list)
{
if (!w->sname || w->dapm != dapm)
continue;
dev_dbg(w->dapm->dev, "widget %s\n %s stream %s event %d\n",
w->name, w->sname, stream, event);
if (strstr(w->sname, stream)) {
- switch(event) {
+ switch(currentEvent) {
case SND_SOC_DAPM_STREAM_START:
w->active = 1;
break;
case SND_SOC_DAPM_STREAM_STOP:
w->active = 0;
break;
case SND_SOC_DAPM_STREAM_SUSPEND:
case SND_SOC_DAPM_STREAM_RESUME:
case SND_SOC_DAPM_STREAM_PAUSE_PUSH:
case SND_SOC_DAPM_STREAM_PAUSE_RELEASE:
break;
}
}
}
dapm_power_widgets(dapm, event);
}
늦은시간까지 신경써 주셔서 감사합니다.
주말 잘 보내세요!ALSA SoC 프레임웍 소스는 이왕이면 건드리지 않으시는게... 좋은 것 같네요..;;
다시 처음으로 돌아가서 한번 확인해 보세요.
11 BOOL 1 Mic1 Bias On
12 INT 1 Mic1 Capture Volume 25
15 INT 1 Mic 1 Boost Volume 1
19 BOOL 1 Right Capture Mix Mic1 Capture Switch On
26 BOOL 1 Left Capture Mix Mic1 Capture Switch On
위 상태에서
1. tinycap 을 통해 녹음 시도 ( -> 당연 녹음 안됨 )
2. 이때 0x3a , 15bit on 시켜서 녹음 되는지 체크.
위에 1,2번이 아니면 다시 찾으셔야 될 것 같은데요?
아시겠지만
/d/asoc/YourSoundCardName"/"Codec device Name"/
어딘가에서 codec reg를 직접 제어 할 수 있습니다.
audio hal이 워낙 다양하게 구성되어 있어서 정확하게 답하기는 힘든 상황이긴 한데...
1. 소리는 녹음이 되나요?
2. sampling rate와 channel은?
hal구성과 driver의 구성에 따라서도 다른 증상이 나올 수 있습니다만,
근래, realtek audio의 경우 driver가 mic 동작이 이상한 경우가 많습니다.
예를 들어 제가 사용했던 alc5631의 경우 위와 유사한 증상이 있었습니다.
특정 시점이 지나면 녹음이 되지 않았습니다.
realtek의 alsa soc의 DAPM 방식을 많이 도입하면서 특정케이스에서
내부 block을 꺼 버리는 증상이 있습니다.
즉, mic를 꺼 버리는.......ㅠ.ㅠ