Supsend 모드로 진입시.. 로그를 보면 pm-exynos4.c 파일에서 exynos4_cpu_suspend 함수 내에 exynos_smc(SMC_CMD_SLEEP, 0, 0, 0); 의 함수를 호출 하면 suspend 상태로 진입했다가 특정 이벤트가 발생하면 깨어 나야 할듯한데요. 마이크로비젼에서 제공한 BSP 소스를 컴파일하여서 보드에 올리면, 해당 함수 호출과 동시에 슬립 모드로 진입을 하지 않고 바로 깨어 나는 현상이 발생하고 있습니다. 로그 메세지는 아래와 같습니다. CPU1: shutdown request_suspend_state: sleep (0->3) at 286010590682 (2013-05-15 06:33:01.091194537 UTC) ==> suspend 모드 진입 .. s3cfb_early_suspend is called ==> 각 디바이스 별 early_suspend 함수 호출 ... PM: pm_suspend mem sleep(3) => 커널 suspned 모드 진입 시작 ... [HDMI] s5p_tvout_suspend(): => 각 디바이스별 suspned 함수 호출 ... PM: suspend of devices complete after 744.481 msecs exynos4_pm_prepare ==> exyons4 suspend 모드 진입 exynos4_pm_prepare: S5P_CENTRAL_SEQ_OPTION 16842752 ==> 로그 추가 사항 exynos4_pm_prepare: S5P_CENTRAL_SEQ_CONFIGURATION 65536 ==> 로그 추가 사항 PM: late suspend of devices complete after 485.394 msecs CPU2: shutdown CPU3: shutdown exynos4_clock_suspend ARM_COREx_STATUS CORE1[0x00070000], CORE2[0x00070000], CORE3[0x00070000] exynos4_cpu_suspend: S5P_CENTRAL_SEQ_OPTION 50528256 exynos4_cpu_suspend: S5P_CENTRAL_SEQ_CONFIGURATION 0 Resume caused by wakeup_stat=0x00000000 ==> 로그 추가 사항 wakeup_state 레지스터 체크 SMC_CMD_SLEEP ==> exynos_smc(SMC_CMD_SLEEP, 0, 0, 0); 함수 호출 WAKE_UP ret:-1 ==> 호출 즉시 -1의 에러값을 리턴하고 깨어 나기 시작함. Resume caused by wakeup_stat=0x00000000 ==> 깨어나기 시작 했을때 wakeup_state 레지스터 체크 했지만 값 변화 없음 exynos4_clock_resume Enabling non-boot CPUs ... CPU2 is up CPU3 is up PM: early resume of devices complete after 465.157 msecs PM: resume of devices complete after 953.456 msecs PM: Finishing wakeup. PM: pm_suspend mem sleep(3) 위 사항을 계속해서 반복 하고 있습니다. 이렇게 스립모드 진했다가 깨어났다가 하는것이 정상인지요? exynos_smc(SMC_CMD_SLEEP, 0, 0, 0); 함수에서 대기 상태로 빠지지 않는 이유는 무엇인지요?
관련 포스트
|