Hi Glen Fine,
Here is the log when i make a Voice call and shift it to Speaker mode
D/CallController( 2310): placeCall()... intent = Intent { act=android.intent.action.CALL dat=tel:xxxxxxxxxx (has extras) }
D/OtaUtils( 2310): isOtaspCallIntent(Intent { act=android.intent.action.CALL dat=tel:xxxxxxxxxx (has extras) })...
D/OpenGLRenderer( 2418): Flushing caches (mode 0)
D/AudioHardwareInterface( 2072): setMode(IN_CALL)
W/iMXALSA ( 2072): s_close-- android::status_t android_audio_legacy::s_close(android_audio_legacy::alsa_handle_t*)
D/iMXALSA ( 2072): android::status_t android_audio_legacy::s_open(android_audio_legacy::alsa_handle_t*, uint32_t, int) open called for devices 00000001 in mode 2...
D/iMXALSA ( 2072): const char* android_audio_legacy::deviceName(android_audio_legacy::alsa_handle_t*, uint32_t, int, int) **** List of PLAYBACK Hardware Devices ****
D/iMXALSA ( 2072): const char* android_audio_legacy::deviceName(android_audio_legacy::alsa_handle_t*, uint32_t, int, int) card 0: wm8958audio [wm8958-audio], device 0: HiFi wm8994-aif1-0 []
D/iMXALSA ( 2072): const char* android_audio_legacy::deviceName(android_audio_legacy::alsa_handle_t*, uint32_t, int, int) device have=HiFi wm8994-aif1-0
D/iMXALSA ( 2072): const char* android_audio_legacy::deviceName(android_audio_legacy::alsa_handle_t*, uint32_t, int, int) card 0: wm8958audio [wm8958-audio], device 1: Voice wm8994-aif2-1 []
D/iMXALSA ( 2072): const char* android_audio_legacy::deviceName(android_audio_legacy::alsa_handle_t*, uint32_t, int, int) device have=Voice wm8994-aif2-1
D/iMXALSA ( 2072): const char* android_audio_legacy::deviceName(android_audio_legacy::alsa_handle_t*, uint32_t, int, int) selected device =1
W/iMXALSA ( 2072): Don't enable MMAP access for PCM
W/iMXALSA ( 2072): Set sample rate to 8000 HZ
W/iMXALSA ( 2072): Buffer size: 4096
W/iMXALSA ( 2072): Latency: 512000
I/iMXALSA ( 2072): android::status_t android_audio_legacy::s_open(android_audio_legacy::alsa_handle_t*, uint32_t, int) Initialized ALSA PLAYBACK device hw:0,1
D/iMXALSA ( 2072): const char* android_audio_legacy::deviceName(android_audio_legacy::alsa_handle_t*, uint32_t, int, int) **** List of PLAYBACK Hardware Devices ****
D/iMXALSA ( 2072): const char* android_audio_legacy::deviceName(android_audio_legacy::alsa_handle_t*, uint32_t, int, int) card 0: wm8958audio [wm8958-audio], device 0: HiFi wm8994-aif1-0 []
D/iMXALSA ( 2072): const char* android_audio_legacy::deviceName(android_audio_legacy::alsa_handle_t*, uint32_t, int, int) device have=HiFi wm8994-aif1-0
D/iMXALSA ( 2072): const char* android_audio_legacy::deviceName(android_audio_legacy::alsa_handle_t*, uint32_t, int, int) card 0: wm8958audio [wm8958-audio], device 1: Voice wm8994-aif2-1 []
D/iMXALSA ( 2072): const char* android_audio_legacy::deviceName(android_audio_legacy::alsa_handle_t*, uint32_t, int, int) device have=Voice wm8994-aif2-1
D/iMXALSA ( 2072): const char* android_audio_legacy::deviceName(android_audio_legacy::alsa_handle_t*, uint32_t, int, int) selected device =1
D/iMXALSA ( 2072): void android_audio_legacy::setDefaultControls(uint32_t, int, const char*) setDefaultControls set card: hw:00
D/iMXALSA ( 2072): mode == AudioSystem::MODE_IN_CALL
D/iMXALSA ( 2072): *********Inside Earpiece*************
I/AudioService( 2161): AudioFocus requestAudioFocus() from AudioFocus_For_Phone_Ring_And_Calls
I/ActivityManager( 2161): START {act=android.intent.action.MAIN flg=0x10840000 cmp=com.android.phone/.InCallScreen} from pid 2310
D/Bluetooth HS/HF( 2310): CDMA call state: SINGLE_ACTIVE prev state:IDLE
D/PhoneStatusBar( 2233): disable: < expand icons ALERTS* ticker system_info back home recent clock >
D/Bluetooth HS/HF( 2310): CDMA call state: SINGLE_ACTIVE prev state:IDLE
D/InCallScreen( 2310): onNewIntent: intent = Intent { act=android.intent.action.MAIN flg=0x10c40000 cmp=com.android.phone/.InCallScreen }, phone state = OFFHOOK
D/PhoneStatusBar( 2233): disable: < EXPAND* icons ALERTS ticker system_info back home recent clock >
V/CRL-TESTING( 2310): - startDialerSession: mLocalToneEnabled = false
I/power ( 2161): *** set_screen_state 1
E/SurfaceTexture( 2069): [com.android.phone/com.android.phone.InCallScreen] dequeueBuffer: can't dequeue multiple buffers without setting the buffer count
D/Bluetooth HS/HF( 2310): CDMA call state: SINGLE_ACTIVE prev state:IDLE
W/InputManagerService( 2161): Starting input on non-focused client com.android.internal.view.IInputMethodClient$Stub$Proxy@414267f0 (uid=10000 pid=2418)
D/Bluetooth HS/HF( 2310): CDMA call state: SINGLE_ACTIVE prev state:IDLE
E/DefaultVoicemailNotifier( 2418): No voicemails to notify about: clear the notification.
D/Bluetooth HS/HF( 2310): CDMA call state: SINGLE_ACTIVE prev state:IDLE
D/CallNotifier( 2310): SignalInfoTonePlayer.run(toneId = 98)...
W/AudioHardwareALSA( 2072): badstate and do recovery.....
D/InCallScreen( 2310): toggleSpeaker(): newSpeakerState = true
So when I press LoudSpeaker Button on phone app the above line will come immediately. but after 10-15 seconds following log will come.
W/AudioHardwareALSA( 2072): underrun and do recovery.....
W/AudioFlinger( 2072): write blocked for 19999 msecs, 4 delayed writes, thread 0xf43290
D/iMXALSA ( 2072): const char* android_audio_legacy::deviceName(android_audio_legacy::alsa_handle_t*, uint32_t, int, int) **** List of PLAYBACK Hardware Devices ****
D/iMXALSA ( 2072): const char* android_audio_legacy::deviceName(android_audio_legacy::alsa_handle_t*, uint32_t, int, int) card 0: wm8958audio [wm8958-audio], device 0: HiFi wm8994-aif1-0 []
D/iMXALSA ( 2072): const char* android_audio_legacy::deviceName(android_audio_legacy::alsa_handle_t*, uint32_t, int, int) device have=HiFi wm8994-aif1-0
D/iMXALSA ( 2072): const char* android_audio_legacy::deviceName(android_audio_legacy::alsa_handle_t*, uint32_t, int, int) card 0: wm8958audio [wm8958-audio], device 1: Voice wm8994-aif2-1 []
D/iMXALSA ( 2072): const char* android_audio_legacy::deviceName(android_audio_legacy::alsa_handle_t*, uint32_t, int, int) device have=Voice wm8994-aif2-1
D/iMXALSA ( 2072): const char* android_audio_legacy::deviceName(android_audio_legacy::alsa_handle_t*, uint32_t, int, int) selected device =1
D/iMXALSA ( 2072): void android_audio_legacy::setDefaultControls(uint32_t, int, const char*) setDefaultControls set card: hw:00
D/iMXALSA ( 2072): mode == AudioSystem::MODE_IN_CALL
D/iMXALSA ( 2072): devices & AudioSystem::DEVICE_OUT_SPEAKER
D/dalvikvm( 2532): GC_CONCURRENT freed 444K, 6% free 9094K/9671K, paused 2ms+2ms
^C
130|root@android:/ # ps | busybox grep 2072
media 2072 1 34872 7504 ffffffff 400df690 S /system/bin/mediaserver
root@android:/ #
So mediaserver is creating problem?