가끔 AC97 의 리셋이 안되는 것 같습니다.

정상적인 경우에 부팅 로그는 다음과 같이 출력됩니다.

Advanced Linux Sound Architecture Driver Version 1.0.18rc3.

ASoC version 0.13.2

WM9713/WM9714 SoC Audio Codec 0.15

playback: 1, capture : 1

asoc: AC97 HiFi <-> s3c64xx-ac97 mapping ok

mmc0: new high speed SDHC card at address b368

mmcblk0: mmc0:b368 SDC   30.2 GiB

 mmcblk0: p1

wm9713: init volume.

ALSA device list:

  #0: SMDK6400 (WM9713)



그리고 오류가 날 경우의 부팅 로그는 이렇게 나옵니다.

Advanced Linux Sound Architecture Driver Version 1.0.18rc3.

ASoC version 0.13.2

WM9713/WM9714 SoC Audio Codec 0.15

playback: 1, capture : 1

asoc: AC97 HiFi <-> s3c64xx-ac97 mapping ok

mmc0: new high speed SDHC card at address b368

mmcblk0: mmc0:b368 SDC   30.2 GiB

 mmcblk0: p1

AC97 link error

soc-audio: probe of soc-audio failed with error -5

ALSA device list:

  No soundcards found.


이 경우 sound char device가 생성되지 않습니다.
하지만 reboot 명령으로 리붓하게 되면 정상적으로 동작합니다.

이것은 무려 한달에 한 두번 볼까 말까 한 에러메시지입니다.
아마도 Cable 문제가 아닐까 추측해 봅니다.

에러를 찍는 라인은 여기입니다.

kernel/sound/soc/codecs/wm9713.c
1
2
3
4
5
6
7
8
9
10
11
12
13
static int wm9713_soc_probe(struct platform_device *pdev)
{
//...중략... 
    /* do a cold reset for the controller and then try
     * a warm reset followed by an optional cold reset for codec */
    wm9713_reset(codec, 0);
    ret = wm9713_reset(codec, 1);
    if (ret < 0) { 
        printk(KERN_ERR "AC97 link error\n");
        goto reset_err;
    }    
//...중략... 
}  

 
 

+ Recent posts