OMAP4DucatiCamera » History » Revision 21
Revision 20 (Denis 'GNUtoo' Carikli, 11/04/2012 08:26 PM) → Revision 21/41 (Denis 'GNUtoo' Carikli, 11/04/2012 08:35 PM)
h1. Omap4-tiler-Camera
The galaxy Nexus chip has a camera that accesible trough the ducati microcontroller.
h2. Plan:
We don't support YV12 in the gralloc and in the software libgl yet.
There are several approachs to solve the issue:
h3. Approach 1: Add support for it
Long and complicated
h3. Approach 2: Change format:
The Camera supports the following formats:
compile,push, and run the omap4 camera_test program:
Here for the back camera:
<pre>
Choice: E
E
E
Supported Cameras: (null)
Supported Picture Sizes: 2592x1944,2592x1728,2592x1458,2048x1536,1600x1200,1280x1024,1152x864,1280x960,640x480,320x240
Supported Picture Formats: yuv420sp,yuv420p,yuv422i-yuyv,rgb565,raw,jpeg
Supported Preview Sizes: 1920x1080,1280x720,960x720,800x480,720x576,720x480,768x576,640x480,320x240,352x288,240x160,176x144,128x96
Supported Preview Formats: yuv420sp,yuv420p,yuv422i-yuyv,yuv420p
Supported Preview Frame Rates: 30,15
Supported Thumbnail Sizes: 640x480,160x120,200x120,320x240,512x384,352x144,176x144,96x96,0x0
Supported Whitebalance Modes: auto,daylight,cloudy-daylight,fluorescent,incandescent,
Supported Effects: none,negative,solarize,sepia,mono,whiteboard,blackboard,aqua,posterize
Supported Scene Modes: auto,action,night,party,sunset
Supported Focus Modes: continuous-video,auto,macro,infinity,infinity,continuous-picture
Supported Antibanding Options: auto,50hz,60hz,off
Supported Flash Modes: off,on,auto,torch
Supported Focus Areas: 10
Focus Distances: Infinity,Infinity,Infinity
</pre>
h3. Approach 3: Workarround
<pre>
replicant-4.0/frameworks/base/libs$ git diff
diff --git a/libs/ui/GraphicBufferAllocator.cpp b/libs/ui/GraphicBufferAllocator.cpp
index f7c4f4e..766a98f 100644
--- a/libs/ui/GraphicBufferAllocator.cpp
+++ b/libs/ui/GraphicBufferAllocator.cpp
@@ -99,8 +99,8 @@ status_t GraphicBufferAllocator::alloc(uint32_t w, uint32_t h, PixelFormat forma
// we have a h/w allocator and h/w buffer is requested
status_t err;
-#ifdef MISSING_EGL_PIXEL_FORMAT_YV12
- if (format == HAL_PIXEL_FORMAT_YV12) {
+#if 1
+ if (format == HAL_PIXEL_FORMAT_YV12 || format == 0x100 ) {
format = HAL_PIXEL_FORMAT_RGBX_8888;
}
if (usage & GRALLOC_USAGE_EXTERNAL_DISP) {
diff --git a/media/libstagefright/colorconversion/SoftwareRenderer.cpp b/media/libstagefright/colorconversion/SoftwareRenderer.cpp
index 2ce8fa7..559f914 100644
--- a/media/libstagefright/colorconversion/SoftwareRenderer.cpp
+++ b/media/libstagefright/colorconversion/SoftwareRenderer.cpp
@@ -62,7 +62,9 @@ SoftwareRenderer::SoftwareRenderer(
size_t bufWidth, bufHeight;
switch (mColorFormat) {
-#ifndef MISSING_EGL_PIXEL_FORMAT_YV12
+
+#if 0
+ case 0x100:
case OMX_COLOR_FormatYUV420Planar:
case OMX_TI_COLOR_FormatYUV420PackedSemiPlanar:
{
</pre>
h2. Research
Using the camera application produces the following traces:
<pre>
[...]
V/camera ( 7834): Preview size is 960x720
V/MediaProfilesJNI( 7834): native_get_num_image_encoding_quality_levels
V/MediaProfilesJNI( 7834): native_get_image_encoding_quality_level
V/MediaProfilesJNI( 7834): native_get_image_encoding_quality_level
V/MediaProfilesJNI( 7834): native_get_image_encoding_quality_level
D/CameraSettings( 7834): Parameters: [antibanding-values=auto,50hz,60hz,off, antibanding=auto, auto-convergence-mode=, auto-convergence=, auto-exposure-lock-supported=true, auto-exposure-lock=false, auto-whitebalance-lock-supported=true, auto-whitebalance-lock=false, brightness=50, camera-mode=0, camera-name=S5K4E1GA, contrast=100, current-iso=100, effect-values=none,negative,solarize,sepia,mono,whiteboard,blackboard,aqua,posterize, effect=none, exif-make=Samsung, exif-model=Galaxy Nexus, exposure-compensation-step=0.1, exposure-compensation=0, exposure-mode-values=auto,night,backlighting,spotlight,sports,snow,beach,aperture,small-aperture,, exposure=auto, flash-mode-values=off,on,auto,torch, flash-mode=auto, focal-length=3.43, focus-distances=Infinity,Infinity,Infinity, focus-mode-values=continuous-video,auto,macro,infinity,infinity,continuous-picture, focus-mode=continuous-picture, gbce=disable, horizontal-view-angle=54.8, ipp-values=off,ldc,nsf,ldc-nsf, ipp=ldc-nsf, iso-mode-values=auto,100,200,400,800, iso=auto, jpeg-quality=95, jpeg-thumbnail-height=120, jpeg-thumbnail-quality=60, jpeg-thumbnail-size-values=640x480,160x120,200x120,320x240,512x384,352x144,176x144,96x96,0x0, jpeg-thumbnail-width=160, manual-convergence-values=, max-exposure-compensation=30, max-framerate=30, max-num-detected-faces-hw=35, max-num-detected-faces-sw=0, max-num-focus-areas=10, max-num-metering-areas=10, max-zoom=60, min-exposure-compensation=-30, min-framerate=15, picture-format-values=yuv420sp,yuv420p,yuv422i-yuyv,rgb565,raw,jpeg, picture-format=jpeg, picture-size-values=2592x1944,2592x1728,2592x1458,2048x1536,1600x1200,1280x1024,1152x864,1280x960,640x480,320x240, picture-size=2592x1944, preview-format-values=yuv420sp,yuv420p,yuv422i-yuyv,yuv420p, preview-format=yuv420sp, preview-fps-range-values=(15000,15000),(15000,30000),(24000,30000), preview-fps-range=15000,30000, preview-frame-rate-values=30,15, preview-frame-rate=30, preview-size-values=1920x1080,1280x720,960x720,800x480,720x576,720x480,768x576,640x480,320x240,352x288,240x160,176x144,128x96, preview-size=960x720, recording-hint=false, s3d-supported=, s3d2d-preview-values=, s3d2d-preview=, saturation=100, scene-mode-values=auto,action,night,party,sunset, scene-mode=auto, sensor-orientation-values=, sensor-orientation=, sharpness=100, smooth-zoom-supported=true, vertical-view-angle=42.5, video-frame-format=OMX_TI_COLOR_FormatYUV420PackedSemiPlanar, video-snapshot-supported=true, video-stabilization-supported=true, video-stabilization=false, whitebalance-values=auto,daylight,cloudy-daylight,fluorescent,incandescent,, whitebalance=auto, zoom-ratios=100,104,107,111,115,119,123,127,132,137,141,146,152,157,162,168,174,180,187,193,200,207,214,222,230,238,246,255,264,273,283,293,303,314,325,336,348,361,373,386,400,414,429,444,459,476,492,510,528,546,566,586,606,628,650,673,696,721,746,773,800, zoom-supported=true, zoom=0]
V/camera ( 7834): startPreview
I/CameraHAL( 7751): NULL ANativeWindow passed to setPreviewWindow
D/DOMX ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nParamIndex = 2130706507, pParamStruct = 0x41b5ebd4
D/DOMX ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_SetParameter:348
D/DOMX ( 7751): TRACE: Recd. omx message
D/DOMX ( 7751): TRACE: Waiting for messages from remote core
D/DOMX ( 7751): EXIT:
D/DOMX ( 7751): TRACE: Corresponding RPC function executed successfully
D/DOMX ( 7751): EXIT: eError: 0
D/DOMX ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nParamIndex = 2130706506, pParamStruct = 0x41b5ebd0
D/DOMX ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_SetParameter:348
D/DOMX ( 7751): TRACE: Recd. omx message
D/DOMX ( 7751): TRACE: Waiting for messages from remote core
D/DOMX ( 7751): EXIT:
D/DOMX ( 7751): TRACE: Corresponding RPC function executed successfully
D/DOMX ( 7751): EXIT: eError: 0
D/DOMX ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nParamIndex = 2130706548, pParamStruct = 0x41b5ebc8
D/DOMX ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_SetParameter:348
D/DOMX ( 7751): TRACE: Recd. omx message
D/DOMX ( 7751): TRACE: Waiting for messages from remote core
D/DOMX ( 7751): EXIT:
D/DOMX ( 7751): TRACE: Corresponding RPC function executed successfully
D/DOMX ( 7751): EXIT: eError: 0
D/DOMX ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nParamIndex = 2130706469, pParamStruct = 0x41b5ebd4
D/DOMX ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_SetParameter:348
D/DOMX ( 7751): TRACE: Recd. omx message
D/DOMX ( 7751): TRACE: Waiting for messages from remote core
D/DOMX ( 7751): EXIT:
D/DOMX ( 7751): TRACE: Corresponding RPC function executed successfully
D/DOMX ( 7751): EXIT: eError: 0
D/DOMX ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nConfigIndex = 2130706509, pConfigStruct = 0x41b5ebbc
D/DOMX ( 7751): ENTER:
D/DOMX ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_SetConfig:496
D/DOMX ( 7751): TRACE: Recd. omx message
D/DOMX ( 7751): TRACE: Waiting for messages from remote core
D/DOMX ( 7751): EXIT:
D/DOMX ( 7751): TRACE: Corresponding RPC function executed successfully
D/DOMX ( 7751): EXIT: eError: 0
D/DOMX ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nParamIndex = 2130706515, pParamStruct = 0x41b5ebd0
D/DOMX ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_SetParameter:348
D/DOMX ( 7751): TRACE: Recd. omx message
D/DOMX ( 7751): TRACE: Waiting for messages from remote core
D/DOMX ( 7751): EXIT:
D/DOMX ( 7751): TRACE: Corresponding RPC function executed successfully
D/DOMX ( 7751): EXIT: eError: 0
D/DOMX ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nParamIndex = 2130706514, pParamStruct = 0x41b5ebcc
D/DOMX ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_SetParameter:348
D/DOMX ( 7751): TRACE: Recd. omx message
D/DOMX ( 7751): TRACE: Waiting for messages from remote core
D/DOMX ( 7751): EXIT:
D/DOMX ( 7751): TRACE: Corresponding RPC function executed successfully
D/DOMX ( 7751): EXIT: eError: 0
D/DOMX ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nConfigIndex = 117440522, pConfigStruct = 0x41b5ebbc
D/DOMX ( 7751): ENTER:
D/DOMX ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_GetConfig:564
D/DOMX ( 7751): TRACE: Recd. omx message
D/DOMX ( 7751): TRACE: Waiting for messages from remote core
D/DOMX ( 7751): EXIT:
D/DOMX ( 7751): TRACE: Corresponding RPC function executed successfully
D/DOMX ( 7751): EXIT: eError: 0
D/DOMX ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nConfigIndex = 117440522, pConfigStruct = 0x41b5ebbc
D/DOMX ( 7751): ENTER:
D/DOMX ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_SetConfig:496
D/DOMX ( 7751): TRACE: Recd. omx message
D/DOMX ( 7751): TRACE: Waiting for messages from remote core
D/DOMX ( 7751): EXIT:
D/DOMX ( 7751): TRACE: Corresponding RPC function executed successfully
D/DOMX ( 7751): EXIT: eError: 0
D/DOMX ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nParamIndex = 33554433, pParamStruct = 0x41b5eb48
D/DOMX ( 7751): ENTER:
D/DOMX ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_GetParameter:419
D/DOMX ( 7751): TRACE: Recd. omx message
D/DOMX ( 7751): TRACE: Waiting for messages from remote core
D/DOMX ( 7751): EXIT:
D/DOMX ( 7751): TRACE: Corresponding RPC function executed successfully
D/DOMX ( 7751): EXIT: eError: 0 index: 0x2000001
D/DOMX ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nParamIndex = 2130706522, pParamStruct = 0x41b5eb14
I/Process ( 189): Sending signal. PID: 7834 SIG: 3
D/DOMX ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_SetParameter:348
I/dalvikvm( 7834): threadid=3: reacting to signal 3
D/DOMX ( 7751): TRACE: Recd. omx message
D/DOMX ( 7751): TRACE: Waiting for messages from remote core
D/DOMX ( 7751): EXIT:
D/DOMX ( 7751): TRACE: Corresponding RPC function executed successfully
D/DOMX ( 7751): EXIT: eError: 0
D/DOMX ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nParamIndex = 33554433, pParamStruct = 0x41b5eb48
D/DOMX ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_SetParameter:348
D/DOMX ( 7751): TRACE: Recd. omx message
D/DOMX ( 7751): TRACE: Waiting for messages from remote core
D/DOMX ( 7751): EXIT:
D/DOMX ( 7751): TRACE: Corresponding RPC function executed successfully
D/DOMX ( 7751): EXIT: eError: 0
D/DOMX ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nParamIndex = 33554433, pParamStruct = 0x41b5eb48
D/DOMX ( 7751): ENTER:
D/DOMX ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_GetParameter:419
D/DOMX ( 7751): TRACE: Recd. omx message
D/DOMX ( 7751): TRACE: Waiting for messages from remote core
D/DOMX ( 7751): EXIT:
D/DOMX ( 7751): TRACE: Corresponding RPC function executed successfully
D/DOMX ( 7751): EXIT: eError: 0 index: 0x2000001
D/DOMX ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nConfigIndex = 117440523, pConfigStruct = 0x41b5ebc0
D/DOMX ( 7751): ENTER:
D/DOMX ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_GetConfig:564
D/DOMX ( 7751): TRACE: Recd. omx message
D/DOMX ( 7751): TRACE: Waiting for messages from remote core
D/DOMX ( 7751): EXIT:
D/DOMX ( 7751): TRACE: Corresponding RPC function executed successfully
D/DOMX ( 7751): EXIT: eError: 0
D/DOMX ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nConfigIndex = 117440523, pConfigStruct = 0x41b5ebc0
D/DOMX ( 7751): ENTER:
D/DOMX ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_SetConfig:496
D/DOMX ( 7751): TRACE: Recd. omx message
D/DOMX ( 7751): TRACE: Waiting for messages from remote core
D/DOMX ( 7751): EXIT:
D/DOMX ( 7751): TRACE: Corresponding RPC function executed successfully
D/DOMX ( 7751): EXIT: eError: 0
D/DOMX ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nConfigIndex = 117440523, pConfigStruct = 0x41b5ebc0
D/DOMX ( 7751): ENTER:
D/DOMX ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_GetConfig:564
D/DOMX ( 7751): TRACE: Recd. omx message
D/DOMX ( 7751): TRACE: Waiting for messages from remote core
D/DOMX ( 7751): EXIT:
D/DOMX ( 7751): TRACE: Corresponding RPC function executed successfully
D/DOMX ( 7751): EXIT: eError: 0
D/DOMX ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nParamIndex = 33554433, pParamStruct = 0x41b5eb48
D/DOMX ( 7751): ENTER:
D/DOMX ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_GetParameter:419
D/DOMX ( 7751): TRACE: Recd. omx message
D/DOMX ( 7751): TRACE: Waiting for messages from remote core
D/DOMX ( 7751): EXIT:
D/DOMX ( 7751): TRACE: Corresponding RPC function executed successfully
D/DOMX ( 7751): EXIT: eError: 0 index: 0x2000001
D/DOMX ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nParamIndex = 2130706522, pParamStruct = 0x41b5eb14
D/DOMX ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_SetParameter:348
D/DOMX ( 7751): TRACE: Recd. omx message
D/DOMX ( 7751): TRACE: Waiting for messages from remote core
D/DOMX ( 7751): EXIT:
D/DOMX ( 7751): TRACE: Corresponding RPC function executed successfully
D/DOMX ( 7751): EXIT: eError: 0
D/DOMX ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nParamIndex = 33554433, pParamStruct = 0x41b5eb48
D/DOMX ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_SetParameter:348
D/DOMX ( 7751): TRACE: Recd. omx message
D/DOMX ( 7751): TRACE: Waiting for messages from remote core
D/DOMX ( 7751): EXIT:
D/DOMX ( 7751): TRACE: Corresponding RPC function executed successfully
D/DOMX ( 7751): EXIT: eError: 0
D/DOMX ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nParamIndex = 33554433, pParamStruct = 0x41b5eb48
D/DOMX ( 7751): ENTER:
D/DOMX ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_GetParameter:419
D/DOMX ( 7751): TRACE: Recd. omx message
D/DOMX ( 7751): TRACE: Waiting for messages from remote core
D/DOMX ( 7751): EXIT:
D/DOMX ( 7751): TRACE: Corresponding RPC function executed successfully
D/DOMX ( 7751): EXIT: eError: 0 index: 0x2000001
D/DOMX ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nParamIndex = 2130706519, pParamStruct = 0x41b5ebfc
D/DOMX ( 7751): ENTER:
D/DOMX ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_GetParameter:419
D/DOMX ( 7751): TRACE: Recd. omx message
D/DOMX ( 7751): TRACE: Waiting for messages from remote core
D/DOMX ( 7751): EXIT:
D/DOMX ( 7751): TRACE: Corresponding RPC function executed successfully
D/DOMX ( 7751): EXIT: eError: 0 index: 0x7f000057
I/CameraHAL( 7751): Preview not started. Preview in progress flag set
D/DOMX ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, eCmd = 2, nParam = 2, pCmdData = 0x0
D/DOMX ( 7751): ENTER:
D/DOMX ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_SendCommand:644
D/DOMX ( 7751): TRACE: Recd. omx message
D/DOMX ( 7751): TRACE: Waiting for messages from remote core
D/DOMX ( 7751): EXIT:
D/DOMX ( 7751): TRACE: Corresponding RPC function executed successfully
D/DOMX ( 7751): EXIT: eError: 0
D/DOMX ( 7751): TRACE: Recd. omx message
D/DOMX ( 7751): ENTER:
D/DOMX ( 7751): TRACE:
D/DOMX ( 7751): **__**Got eventhandler from Remote Core succesffuly - values are : **__**
D/DOMX ( 7751): TRACE: hComp :0x154e570,eEvent: 0x0,nData1: 0x2,nData2: 0x2,pEventData: 0x0
D/DOMX ( 7751): TRACE: Just Before Entering Proxy Event handler call
D/DOMX ( 7751): ENTER: hComponent=0x154e570, pCompPrv=0x1556240, eEvent=0x0, nData1=0x2, nData2=0x2, pEventData=0x0
D/DOMX ( 7751): EXIT: eError: 0
D/DOMX ( 7751): EXIT:
D/DOMX ( 7751): TRACE: Waiting for messages from remote core
D/DOMX ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, eCmd = 0, nParam = 2, pCmdData = 0x0
D/DOMX ( 7751): ENTER:
D/DOMX ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_SendCommand:644
D/DOMX ( 7751): TRACE: Recd. omx message
D/DOMX ( 7751): TRACE: Waiting for messages from remote core
D/DOMX ( 7751): EXIT:
D/DOMX ( 7751): TRACE: Corresponding RPC function executed successfully
D/DOMX ( 7751): EXIT: eError: 0
I/dalvikvm( 7834): Wrote stack traces to '/data/anr/traces.txt'
D/DOMX ( 7751): TRACE: Recd. omx message
D/DOMX ( 7751): ENTER:
D/DOMX ( 7751): TRACE:
D/DOMX ( 7751): **__**Got eventhandler from Remote Core succesffuly - values are : **__**
D/DOMX ( 7751): TRACE: hComp :0x154e570,eEvent: 0x0,nData1: 0x0,nData2: 0x2,pEventData: 0x0
D/DOMX ( 7751): TRACE: Just Before Entering Proxy Event handler call
D/DOMX ( 7751): ENTER: hComponent=0x154e570, pCompPrv=0x1556240, eEvent=0x0, nData1=0x0, nData2=0x2, pEventData=0x0
D/DOMX ( 7751): EXIT: eError: 0
D/DOMX ( 7751): EXIT:
D/DOMX ( 7751): TRACE: Waiting for messages from remote core
D/DOMX ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, eCmd = 0, nParam = 3, pCmdData = 0x0
D/DOMX ( 7751): ENTER:
D/DOMX ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_SendCommand:644
D/DOMX ( 7751): TRACE: Recd. omx message
D/DOMX ( 7751): TRACE: Waiting for messages from remote core
D/DOMX ( 7751): TRACE: Recd. omx message
D/DOMX ( 7751): ENTER:
D/DOMX ( 7751): EXIT:
D/DOMX ( 7751): TRACE:
D/DOMX ( 7751): **__**Got eventhandler from Remote Core succesffuly - values are : **__**
D/DOMX ( 7751): TRACE: Corresponding RPC function executed successfully
D/DOMX ( 7751): TRACE: hComp :0x154e570,eEvent: 0x0,nData1: 0x0,nData2: 0x3,pEventData: 0x0
D/DOMX ( 7751): EXIT: eError: 0
D/DOMX ( 7751): TRACE: Just Before Entering Proxy Event handler call
D/DOMX ( 7751): ENTER: hComponent=0x154e570, pCompPrv=0x1556240, eEvent=0x0, nData1=0x0, nData2=0x3, pEventData=0x0
D/DOMX ( 7751): EXIT: eError: 0
D/DOMX ( 7751): EXIT:
D/DOMX ( 7751): TRACE: Waiting for messages from remote core
V/camera ( 7834): surfaceChanged. w=720. h=960
D/DOMX ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nParamIndex = 33554433, pParamStruct = 0x413a1ad8
D/DOMX ( 7751): ENTER:
D/DOMX ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_GetParameter:419
D/DOMX ( 7751): TRACE: Recd. omx message
D/DOMX ( 7751): TRACE: Waiting for messages from remote core
D/DOMX ( 7751): EXIT:
D/DOMX ( 7751): TRACE: Corresponding RPC function executed successfully
D/DOMX ( 7751): EXIT: eError: 0 index: 0x2000001
D/DOMX ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nParamIndex = 33554433, pParamStruct = 0x413a1ad8
D/DOMX ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_SetParameter:348
D/DOMX ( 7751): TRACE: Recd. omx message
D/DOMX ( 7751): TRACE: Waiting for messages from remote core
D/DOMX ( 7751): EXIT:
D/DOMX ( 7751): TRACE: Corresponding RPC function executed successfully
D/DOMX ( 7751): EXIT: eError: 0
D/DOMX ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nParamIndex = 33554433, pParamStruct = 0x413a1ad8
D/DOMX ( 7751): ENTER:
D/DOMX ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_GetParameter:419
D/DOMX ( 7751): TRACE: Recd. omx message
D/DOMX ( 7751): TRACE: Waiting for messages from remote core
D/DOMX ( 7751): EXIT:
D/DOMX ( 7751): TRACE: Corresponding RPC function executed successfully
D/DOMX ( 7751): EXIT: eError: 0 index: 0x2000001
D/DOMX ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nConfigIndex = 117440523, pConfigStruct = 0x413a1b50
D/DOMX ( 7751): ENTER:
D/DOMX ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_GetConfig:564
D/DOMX ( 7751): TRACE: Recd. omx message
D/DOMX ( 7751): TRACE: Waiting for messages from remote core
D/DOMX ( 7751): EXIT:
D/DOMX ( 7751): TRACE: Corresponding RPC function executed successfully
D/DOMX ( 7751): EXIT: eError: 0
D/DOMX ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nConfigIndex = 117440523, pConfigStruct = 0x413a1b50
D/DOMX ( 7751): ENTER:
D/DOMX ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_SetConfig:496
D/DOMX ( 7751): TRACE: Recd. omx message
D/DOMX ( 7751): TRACE: Waiting for messages from remote core
D/DOMX ( 7751): EXIT:
D/DOMX ( 7751): TRACE: Corresponding RPC function executed successfully
D/DOMX ( 7751): EXIT: eError: 0
D/DOMX ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nConfigIndex = 117440523, pConfigStruct = 0x413a1b50
D/DOMX ( 7751): ENTER:
D/DOMX ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_GetConfig:564
D/DOMX ( 7751): TRACE: Recd. omx message
D/DOMX ( 7751): TRACE: Waiting for messages from remote core
D/DOMX ( 7751): EXIT:
D/DOMX ( 7751): TRACE: Corresponding RPC function executed successfully
D/DOMX ( 7751): EXIT: eError: 0
D/DOMX ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nParamIndex = 33554433, pParamStruct = 0x413a1ad8
D/DOMX ( 7751): ENTER:
D/DOMX ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_GetParameter:419
D/DOMX ( 7751): TRACE: Recd. omx message
D/DOMX ( 7751): EXIT:
D/DOMX ( 7751): TRACE: Waiting for messages from remote core
D/DOMX ( 7751): TRACE: Corresponding RPC function executed successfully
D/DOMX ( 7751): EXIT: eError: 0 index: 0x2000001
D/DOMX ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nParamIndex = 33554433, pParamStruct = 0x413a1ad8
D/DOMX ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_SetParameter:348
D/DOMX ( 7751): TRACE: Recd. omx message
D/DOMX ( 7751): TRACE: Waiting for messages from remote core
D/DOMX ( 7751): EXIT:
D/DOMX ( 7751): TRACE: Corresponding RPC function executed successfully
D/DOMX ( 7751): EXIT: eError: 0
D/DOMX ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nParamIndex = 33554433, pParamStruct = 0x413a1ad8
D/DOMX ( 7751): ENTER:
D/DOMX ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_GetParameter:419
D/DOMX ( 7751): TRACE: Recd. omx message
D/DOMX ( 7751): TRACE: Waiting for messages from remote core
D/DOMX ( 7751): EXIT:
D/DOMX ( 7751): TRACE: Corresponding RPC function executed successfully
D/DOMX ( 7751): EXIT: eError: 0 index: 0x2000001
D/DOMX ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nConfigIndex = 2130706541, pConfigStruct = 0x413a1b58
D/DOMX ( 7751): ENTER:
D/DOMX ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_SetConfig:496
D/DOMX ( 7751): TRACE: Recd. omx message
D/DOMX ( 7751): TRACE: Waiting for messages from remote core
D/DOMX ( 7751): EXIT:
D/DOMX ( 7751): TRACE: Corresponding RPC function executed successfully
D/DOMX ( 7751): EXIT: eError: 0
D/DOMX ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, eCmd = 3, nParam = 2, pCmdData = 0x0
D/DOMX ( 7751): ENTER:
D/DOMX ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_SendCommand:644
D/DOMX ( 7751): TRACE: Recd. omx message
D/DOMX ( 7751): TRACE: Waiting for messages from remote core
D/DOMX ( 7751): EXIT:
D/DOMX ( 7751): TRACE: Corresponding RPC function executed successfully
D/DOMX ( 7751): EXIT: eError: 0
D/DOMX ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nParamIndex = 2130706545, pParamStruct = 0x413a1ba0
D/DOMX ( 7751): TRACE: Corresponding RPC function executed successfully
D/DOMX ( 7751): EXIT: eError: 0
D/DOMX ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nPortIndex = 0x2, pAppPrivate = 0x0, nSizeBytes = 1142784, pBuffer = 0x154a580
D/DOMX ( 7751): TRACE: In UB, no. of buffers = 0
D/DOMX ( 7751): TRACE: Preparing buffer to Remote Core...
D/DOMX ( 7751): ENTER:
D/DOMX ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_GetParameter:419
D/DOMX ( 7751): TRACE: Recd. omx message
D/DOMX ( 7751): TRACE: Waiting for messages from remote core
D/DOMX ( 7751): EXIT:
D/DOMX ( 7751): TRACE: Corresponding RPC function executed successfully
D/DOMX ( 7751): ERROR: [DBG] eError = 0, line 1037
D/DOMX ( 7751): ENTER:
D/DOMX ( 7751): ENTER:
D/DOMX ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_GetParameter:419
D/DOMX ( 7751): TRACE: Recd. omx message
D/DOMX ( 7751): TRACE: Waiting for messages from remote core
D/DOMX ( 7751): EXIT:
D/DOMX ( 7751): TRACE: PROXY_UTIL Get Parameter Successful
D/DOMX ( 7751): ENTER:
D/DOMX ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_GetParameter:419
D/DOMX ( 7751): TRACE: Recd. omx message
D/DOMX ( 7751): TRACE: Waiting for messages from remote core
D/DOMX ( 7751): EXIT:
D/DOMX ( 7751): TRACE: PROXY_UTIL Get Parameter Successful
D/DOMX ( 7751): TRACE: Port Number: 2 :: NumOfLines 720
D/DOMX ( 7751): EXIT: eError: 0
D/DOMX ( 7751): ERROR: [DBG] eError = 0, line 1047
D/DOMX ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nParamIndex = 2130706550, pParamStruct = 0x413a1b34
D/DOMX ( 7751): ENTER:
D/DOMX ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_GetParameter:419
D/DOMX ( 7751): TRACE: Recd. omx message
D/DOMX ( 7751): TRACE: Waiting for messages from remote core
D/DOMX ( 7751): EXIT:
D/DOMX ( 7751): TRACE: Corresponding RPC function executed successfully
D/DOMX ( 7751): EXIT: eError: 0 index: 0x7f000076
D/DOMX ( 7751): ERROR: [DBG] eError = 0, line 1116
D/DOMX ( 7751): TRACE: Metadata size = 12332
D/DOMX ( 7751): TRACE: ion_fd=70
D/DOMX ( 7751): TRACE: ION being USED for allocation!!!!! handle = c3e30380, ret =0
D/DOMX ( 7751): ERROR: [DBG] eError = 0, line 1130
D/DOMX ( 7751): TRACE: Metadata buffer ion handle = c3e30380
D/DOMX ( 7751): ENTER:
D/DOMX ( 7751): TRACE: Marshaling data
D/DOMX ( 7751): TRACE: eMapInfo = 3
D/DOMX ( 7751): TRACE: UV buffer fd= 3141592
D/DOMX ( 7751): TRACE: Metadata buffer = c3e30380
D/DOMX ( 7751): TRACE: About to send packet
D/DOMX ( 7751): TRACE: RPC_sendPacket_sync hCtx->fd_omx=26|nPacketSize=240
D/DOMX ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_UseBuffer:1080
D/DOMX ( 7751): ERROR: [DBG] RPC_sendPacket_sync write errno error 22
D/DOMX ( 7751): ERROR: DOMX Write failed 0xffffffff -1
D/DOMX ( 7751): ERROR: failed check:status >= 0 - returning error: 0x81001 - Write failed
D/DOMX ( 7751): EXIT:
D/DOMX ( 7751): ERROR: RPC function returned error 0x81001
D/DOMX ( 7751): TRACE: Use Buffer Successful
D/DOMX ( 7751): TRACE: Value of pBufHeaderRemote: 0x0 LocalBufferHdr :0x15714e8, LocalBuffer :0x154a580
D/DOMX ( 7751): TRACE: Metadata buffer ion handle given to ion map = c3e30380
D/DOMX ( 7751): TRACE: Updating no. of buffer to 1
D/DOMX ( 7751): ERROR: [DBG] eError = -2147479551, line 1192
D/DOMX ( 7751): EXIT: eError: -2147479551
E/CameraHAL( 7751): OMX_UseBuffer-0x80001001
E/CameraHAL( 7751): Exiting function UseBuffersPreview because of ret 0 eError=80001001
D/DOMX ( 7751): ENTER: hComponent = 0x154e570
E/ion ( 7751): ioctl -1073460991 failed with code -1: Bad file number
F/libc ( 7751): @@@ ABORTING: INVALID HEAP ADDRESS IN dlfree
F/libc ( 7751): Fatal signal 11 (SIGSEGV) at 0xdeadbaad (code=1)
I/Process ( 189): Sending signal. PID: 7834 SIG: 3
I/dalvikvm( 7834): threadid=3: reacting to signal 3
I/dalvikvm( 7834): Wrote stack traces to '/data/anr/traces.txt'
I/DEBUG ( 127): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG ( 127): Build fingerprint: 'google/yakju/maguro:4.0.4/IMM76I/330937:user/release-keys'
I/DEBUG ( 127): pid: 7751, tid: 7758 >>> /system/bin/mediaserver <<<
I/DEBUG ( 127): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr deadbaad
I/DEBUG ( 127): r0 deadbaad r1 00000001 r2 a0000000 r3 00000000
I/DEBUG ( 127): r4 00000000 r5 00000027 r6 401342f4 r7 401424d4
I/DEBUG ( 127): r8 01571540 r9 40fe1000 10 0155f9a0 fp 01570e5c
I/DEBUG ( 127): ip ffffffff sp 413a19c0 lr 40115441 pc 40111788 cpsr 600f0030
I/DEBUG ( 127): d0 656c696620646120 d1 373565343531786e
I/DEBUG ( 127): d2 6c202c3135353975 d3 3239313120656e6d
I/DEBUG ( 127): d4 7264487265666675 d5 3137353178303a20
I/DEBUG ( 127): d6 636f4c202c386534 d7 7265666675426c61
I/DEBUG ( 127): d8 0000000000000000 d9 0000000000000000
I/DEBUG ( 127): d10 0000000000000000 d11 0000000000000000
I/DEBUG ( 127): d12 0000000000000000 d13 0000000000000000
I/DEBUG ( 127): d14 0000000000000000 d15 0000000000000000
I/DEBUG ( 127): d16 3f7316d1d399f1e0 d17 3ffd42315763b9eb
I/DEBUG ( 127): d18 4000000000000000 d19 3fc5ee7544e230aa
I/DEBUG ( 127): d20 3f1152f62f5a4167 d21 bebbb7b7df4a3093
I/DEBUG ( 127): d22 3ff0000000000000 d23 3ff316d1d399f1e0
I/DEBUG ( 127): d24 3e66376972bea4d0 d25 3fee147ae0000000
I/DEBUG ( 127): d26 0000000000000000 d27 0000000000000000
I/DEBUG ( 127): d28 0000000000000000 d29 0000000000000000
I/DEBUG ( 127): d30 0000000000000000 d31 0000000000000000
I/DEBUG ( 127): scr 68000010
I/DEBUG ( 127):
I/DEBUG ( 127): #00 pc 00017788 /system/lib/libc.so
I/DEBUG ( 127): #01 pc 00013732 /system/lib/libc.so
I/DEBUG ( 127): #02 pc 00015a70 /system/lib/libc.so (dlfree)
I/DEBUG ( 127): #03 pc 00016100 /system/lib/libc.so (free)
I/DEBUG ( 127): #04 pc 000019e6 /system/lib/libmm_osal.so (TIMM_OSAL_Free)
I/DEBUG ( 127): #05 pc 00006446 /system/lib/libdomx.so (PROXY_ComponentDeInit)
I/DEBUG ( 127): #06 pc 000018ec /system/lib/libOMX.TI.DUCATI1.VIDEO.CAMERA.so
I/DEBUG ( 127): #07 pc 00001df6 /system/lib/libOMX_Core.so (OMX_FreeHandle)
I/DEBUG ( 127): #08 pc 000284fc /system/lib/hw/camera.omap4.so (_ZN7android16OMXCameraAdapter24performCleanupAfterErrorEv)
I/DEBUG ( 127): #09 pc 0002b04e /system/lib/hw/camera.omap4.so (_ZN7android16OMXCameraAdapter17UseBuffersPreviewEPvi)
I/DEBUG ( 127): #10 pc 0002b182 /system/lib/hw/camera.omap4.so (_ZN7android16OMXCameraAdapter10useBuffersENS_13CameraAdapter10CameraModeEPvijj)
I/DEBUG ( 127): #11 pc 00024c4c /system/lib/hw/camera.omap4.so (_ZN7android17BaseCameraAdapter11sendCommandENS_13CameraAdapter14CameraCommandsEiii)
I/DEBUG ( 127): #12 pc 0001d3d0 /system/lib/hw/camera.omap4.so (_ZN7android9CameraHal12startPreviewEv)
I/DEBUG ( 127): #13 pc 0001d6de /system/lib/hw/camera.omap4.so (_ZN7android9CameraHal16setPreviewWindowEP18preview_stream_ops)
I/DEBUG ( 127): #14 pc 0001ae80 /system/lib/hw/camera.omap4.so (_Z25camera_set_preview_windowP13camera_deviceP18preview_stream_ops)
I/DEBUG ( 127): #15 pc 000076cc /system/lib/libcameraservice.so
I/DEBUG ( 127): #16 pc 000091b4 /system/lib/libcameraservice.so (_ZN7android13CameraService6Client16setPreviewWindowERKNS_2spINS_7IBinderEEERKNS2_I13ANativeWindowEE)
I/DEBUG ( 127): #17 pc 000092ea /system/lib/libcameraservice.so (_ZN7android13CameraService6Client17setPreviewDisplayERKNS_2spINS_7SurfaceEEE)
I/DEBUG ( 127): #18 pc 00013592 /system/lib/libcamera_client.so (_ZN7android8BnCamera10onTransactEjRKNS_6ParcelEPS1_j)
I/DEBUG ( 127): #19 pc 00017f44 /system/lib/libbinder.so (_ZN7android7BBinder8transactEjRKNS_6ParcelEPS1_j)
I/DEBUG ( 127): #20 pc 0001b26e /system/lib/libbinder.so (_ZN7android14IPCThreadState14executeCommandEi)
I/DEBUG ( 127): #21 pc 0001b44a /system/lib/libbinder.so (_ZN7android14IPCThreadState14joinThreadPoolEb)
I/DEBUG ( 127): #22 pc 00020744 /system/lib/libbinder.so
I/DEBUG ( 127): #23 pc 00022a1e /system/lib/libutils.so (_ZN7android6Thread11_threadLoopEPv)
I/DEBUG ( 127): #24 pc 00023064 /system/lib/libutils.so
I/DEBUG ( 127): #25 pc 00012e2c /system/lib/libc.so (__thread_entry)
I/DEBUG ( 127): #26 pc 0001295c /system/lib/libc.so (pthread_create)
I/DEBUG ( 127):
I/DEBUG ( 127): code around pc:
I/DEBUG ( 127): 40111768 4623b15c 2c006824 e026d1fb b12368db \.#F$h.,..&..h#.
I/DEBUG ( 127): 40111778 21014a17 6011447a 48124798 24002527 .J.!zD.`.G.H'%.$
I/DEBUG ( 127): 40111788 f7f47005 2106ef8c e838f7f6 460aa901 .p.....!..8....F
I/DEBUG ( 127): 40111798 f04f2006 94015380 94029303 ebe4f7f5 . O..S..........
I/DEBUG ( 127): 401117a8 4622a905 f7f52002 f7f4ebee 2106ef78 .."F. ......x..!
I/DEBUG ( 127):
I/DEBUG ( 127): code around lr:
I/DEBUG ( 127): 40115420 41f0e92d 46804c0c 447c2600 68a56824 -..A.L.F.&|D$h.h
I/DEBUG ( 127): 40115430 e0076867 300cf9b5 dd022b00 47c04628 gh.....0.+..(F.G
I/DEBUG ( 127): 40115440 35544306 37fff117 6824d5f4 d1ee2c00 .CT5...7..$h.,..
I/DEBUG ( 127): 40115450 e8bd4630 bf0081f0 000280be 41f0e92d 0F..........-..A
I/DEBUG ( 127): 40115460 fb01b086 9004f602 461f4815 4615460c .........H.F.F.F
I/DEBUG ( 127):
I/DEBUG ( 127): memory map around addr deadbaad:
I/DEBUG ( 127): bede2000-bee03000 [stack]
I/DEBUG ( 127): (no map for address)
I/DEBUG ( 127): ffff0000-ffff1000 [vectors]
I/DEBUG ( 127):
I/DEBUG ( 127): stack:
I/DEBUG ( 127): 413a1980 00000001
I/DEBUG ( 127): 413a1984 413a19c0
I/DEBUG ( 127): 413a1988 4013d7e0 /system/lib/libc.so
I/DEBUG ( 127): 413a198c 0000000c
I/DEBUG ( 127): 413a1990 4013d780 /system/lib/libc.so
I/DEBUG ( 127): 413a1994 4013d718 /system/lib/libc.so
I/DEBUG ( 127): 413a1998 00000000
I/DEBUG ( 127): 413a199c 40115441 /system/lib/libc.so
I/DEBUG ( 127): 413a19a0 00000000
I/DEBUG ( 127): 413a19a4 413a19d4
I/DEBUG ( 127): 413a19a8 401342f4 /system/lib/libc.so
I/DEBUG ( 127): 413a19ac 401424d4
I/DEBUG ( 127): 413a19b0 01571540 [heap]
I/DEBUG ( 127): 413a19b4 401145ad /system/lib/libc.so
I/DEBUG ( 127): 413a19b8 df0027ad
I/DEBUG ( 127): 413a19bc 00000000
I/DEBUG ( 127): #00 413a19c0 413a19bc
I/DEBUG ( 127): 413a19c4 00000001
I/DEBUG ( 127): 413a19c8 401342d8 /system/lib/libc.so
I/DEBUG ( 127): 413a19cc 00000005
I/DEBUG ( 127): 413a19d0 413a19ec
I/DEBUG ( 127): 413a19d4 fffffbdf
I/DEBUG ( 127): 413a19d8 413a19ec
I/DEBUG ( 127): 413a19dc 413a19ec
I/DEBUG ( 127): 413a19e0 401377f4 /system/lib/libc.so
I/DEBUG ( 127): 413a19e4 4010d737 /system/lib/libc.so
I/DEBUG ( 127): #01 413a19e8 01571560 [heap]
I/DEBUG ( 127): 413a19ec 20404040
I/DEBUG ( 127): 413a19f0 524f4241
I/DEBUG ( 127): 413a19f4 474e4954
I/DEBUG ( 127): 413a19f8 4e49203a
I/DEBUG ( 127): 413a19fc 494c4156
I/DEBUG ( 127): 413a1a00 45482044
I/DEBUG ( 127): 413a1a04 41205041 /dev/snd/pcmC0D0p
I/DEBUG ( 127): 413a1a08 45524444
I/DEBUG ( 127): 413a1a0c 49205353
I/DEBUG ( 127): 413a1a10 6c64204e
I/DEBUG ( 127): 413a1a14 65657266
I/DEBUG ( 127): 413a1a18 00000000
I/DEBUG ( 127): 413a1a1c 17f80cb3
I/DEBUG ( 127): 413a1a20 00000000
I/DEBUG ( 127): 413a1a24 00000060
I/DEBUG ( 127): 413a1a28 40fa4b13 /system/lib/libdomx.so
I/DEBUG ( 127): 413a1a2c 40fa7c7d /system/lib/libdomx.so
I/DEBUG ( 127): 413a1a30 00000020
I/DEBUG ( 127): 413a1a34 40f95340 /system/lib/libmm_osal.so
I/DEBUG ( 127): 413a1a38 ffffffff
I/DEBUG ( 127): 413a1a3c 02000001
I/DEBUG ( 127): 413a1a40 000000fb
I/DEBUG ( 127): 413a1a44 401424d4
I/DEBUG ( 127): 413a1a48 01571568 [heap]
I/DEBUG ( 127): 413a1a4c 00000000
I/DEBUG ( 127): 413a1a50 00000000
I/DEBUG ( 127): 413a1a54 401424d4
I/DEBUG ( 127): 413a1a58 7f000076
I/DEBUG ( 127): 413a1a5c 4010ec25 /system/lib/libc.so
I/DEBUG ( 127): 413a1a60 01571560 [heap]
I/DEBUG ( 127): 413a1a64 01571658 [heap]
I/DEBUG ( 127): 413a1a68 000000fb
I/DEBUG ( 127): 413a1a6c 401424d4
I/DEBUG ( 127): 413a1a70 01571568 [heap]
I/DEBUG ( 127): 413a1a74 00000000
I/DEBUG ( 127): 413a1a78 8060f290
I/DEBUG ( 127): 413a1a7c 401424d4
I/DEBUG ( 127): 413a1a80 00000002
I/DEBUG ( 127): 413a1a84 4010ec25 /system/lib/libc.so
I/DEBUG ( 127): 413a1a88 01571560 [heap]
I/DEBUG ( 127): 413a1a8c 01571658 [heap]
I/DEBUG ( 127): 413a1a90 00006288
I/DEBUG ( 127): 413a1a94 401424d4
I/DEBUG ( 127): 413a1a98 01571568 [heap]
I/DEBUG ( 127): 413a1a9c 0157157c [heap]
I/DEBUG ( 127): 413a1aa0 00000002
I/DEBUG ( 127): 413a1aa4 4010fa89 /system/lib/libc.so
I/DEBUG ( 127): 413a1aa8 015714e8 [heap]
I/DEBUG ( 127): 413a1aac 01571568 [heap]
I/DEBUG ( 127): 413a1ab0 80001001
I/DEBUG ( 127): 413a1ab4 00000003
I/DEBUG ( 127): 413a1ab8 00000046
I/DEBUG ( 127): 413a1abc 413a1acc
I/DEBUG ( 127): 413a1ac0 015714e0 [heap]
I/DEBUG ( 127): 413a1ac4 01571538 [heap]
I/DEBUG ( 127): 413a1ac8 00006308
I/DEBUG ( 127): 413a1acc 401424d4
I/DEBUG ( 127): 413a1ad0 015714e8 [heap]
I/DEBUG ( 127): 413a1ad4 40fa8ae1 /system/lib/libdomx.so
I/DEBUG ( 127): 413a1ad8 40143280
I/DEBUG ( 127): 413a1adc 4011c8ad /system/lib/libc.so
I/DEBUG ( 127): 413a1ae0 01556240 [heap]
I/DEBUG ( 127): 413a1ae4 01556240 [heap]
I/DEBUG ( 127): 413a1ae8 00000000
I/DEBUG ( 127): 413a1aec 17f80cb3
I/DEBUG ( 127): 413a1af0 01571538 [heap]
I/DEBUG ( 127): 413a1af4 01556240 [heap]
I/DEBUG ( 127): 413a1af8 00000000
I/DEBUG ( 127): 413a1afc 4010fa75 /system/lib/libc.so
I/Process ( 189): Sending signal. PID: 7834 SIG: 3
I/dalvikvm( 7834): threadid=3: reacting to signal 3
I/dalvikvm( 7834): Wrote stack traces to '/data/anr/traces.txt'
W/AudioTrack( 7751): obtainBuffer timed out (is the CPU pegged?) 0x154a940 user=00150740, server=0014f800
I/Process ( 189): Sending signal. PID: 7834 SIG: 3
I/dalvikvm( 7834): threadid=3: reacting to signal 3
I/dalvikvm( 7834): Wrote stack traces to '/data/anr/traces.txt'
I/Process ( 189): Sending signal. PID: 7834 SIG: 3
I/dalvikvm( 7834): threadid=3: reacting to signal 3
I/dalvikvm( 7834): Wrote stack traces to '/data/anr/traces.txt'
W/AudioTrack( 7751): obtainBuffer timed out (is the CPU pegged?) 0x154a940 user=00150740, server=0014f800
I/Process ( 189): Sending signal. PID: 7834 SIG: 3
I/dalvikvm( 7834): threadid=3: reacting to signal 3
I/dalvikvm( 7834): Wrote stack traces to '/data/anr/traces.txt'
I/Process ( 189): Sending signal. PID: 7834 SIG: 3
I/dalvikvm( 7834): threadid=3: reacting to signal 3
I/dalvikvm( 7834): Wrote stack traces to '/data/anr/traces.txt'
W/AudioTrack( 7751): obtainBuffer timed out (is the CPU pegged?) 0x154a940 user=00150740, server=0014f800
I/Process ( 189): Sending signal. PID: 7834 SIG: 3
I/dalvikvm( 7834): threadid=3: reacting to signal 3
I/dalvikvm( 7834): Wrote stack traces to '/data/anr/traces.txt'
W/AudioSystem( 189): AudioFlinger server died!
W/AudioSystem( 189): AudioPolicyService server died!
I/ServiceManager( 122): service 'media.audio_flinger' died
I/ServiceManager( 122): service 'media.player' died
I/ServiceManager( 122): service 'media.camera' died
I/ServiceManager( 122): service 'media.audio_policy' died
W/IMediaDeathNotifier( 723): media server died
E/MediaPlayer( 723): error (100, 0)
W/Camera ( 7834): Camera server died!
W/Camera ( 7834): ICamera died
E/MediaPlayer( 723): Error (100,0)
E/VanillaMusic( 723): MediaPlayer error: 100 0
I/ActivityManager( 189): Displayed com.android.camera/.Camera: +4s446ms
D/CameraStorage( 7834): External storage state=mounted
I/Thumbnail( 7834): Fail to load bitmap. java.io.FileNotFoundException: /data/data/com.android.camera/files/last_thumb: open failed: ENOENT (No such file or directory)
E/Camera ( 7834): Error 100
E/CameraErrorCallback( 7834): Got camera error callback. error=100
D/AndroidRuntime( 7834): Shutting down VM
W/dalvikvm( 7834): threadid=1: thread exiting with uncaught exception (group=0x40a411f8)
I/ ( 7873): ServiceManager: 0x959958
E/SRS-Client( 7873): OpenClient_RILD
D/SRS-Client( 7873): Unsolicited handler isn't implemented yet!
I/AudioFlinger( 7873): Loaded primary audio interface from Tuna audio HW HAL (audio)
I/AudioFlinger( 7873): Using 'Tuna audio HW HAL' (audio.primary) as the primary audio interface
I/AudioFlinger( 7873): Loaded a2dp audio interface from A2DP Audio HW HAL (audio)
I/CameraService( 7873): CameraService started (pid=7873)
I/AudioFlinger( 7873): AudioFlinger's thread 0x960400 ready to run
I/AudioPolicyService( 7873): Loaded audio policy from LEGACY Audio Policy HAL (audio_policy)
I/Process ( 189): Sending signal. PID: 7834 SIG: 3
I/dalvikvm( 7834): threadid=3: reacting to signal 3
I/dalvikvm( 7834): Wrote stack traces to '/data/anr/traces.txt'
E/AudioService( 189): Media server died.
E/AudioService( 189): Media server started.
W/AudioPolicyManagerBase( 7873): setPhoneState() setting same state 0
</pre>
The interesting part in all that noise is the following:
<pre>
D/DOMX ( 7751): ERROR: [DBG] RPC_sendPacket_sync write errno error 22
D/DOMX ( 7751): ERROR: DOMX Write failed 0xffffffff -1
</pre>
Basically write fails at:
<pre>
#define RPC_sendPacket_sync(hCtx, pPacket, nPacketSize, nFxnIdx, pRetPacket, nSize) do { \
DOMX_ERROR("[DBG] RPC_sendPacket_sync %s:%d",__func__,__LINE__); \
status = write(hCtx->fd_omx, pPacket, nPacketSize); \
if (status == -1){ \
int errsv = errno; \
DOMX_ERROR("[DBG] RPC_sendPacket_sync write errno error %d",errsv); \
} \
RPC_freePacket(pPacket); \
pPacket = NULL; \
if(status < 0 ) DOMX_ERROR("DOMX Write failed 0x%x %d",status,status); \
RPC_assert(status >= 0, RPC_OMX_ErrorUndefined, "Write failed"); \
eError = TIMM_OSAL_ReadFromPipe(hCtx->pMsgPipe[nFxnIdx], &pRetPacket, \
RPC_MSG_SIZE_FOR_PIPE, (TIMM_OSAL_U32 *)(&nSize), TIMM_OSAL_SUSPEND); \
RPC_assert(eError == TIMM_OSAL_ERR_NONE, eError, \
"Read failed"); \
} while(0)
</pre>
That means that a normal unix write to /dev/rpmsg-omx1 fails with EINVAL.
Which produces something like that in the kernel when the powervr kernel driver is there but the non-free userland is not.
<pre>
root@android:/ # dmesg
<6>[ 105.768157] max17040 4-0036: online = 1 vcell = 4200000 soc = 100 status = 4 health = 1 temp = 380 charger status = 1
<6>[ 108.557067] request_suspend_state: wakeup (3->0) at 108550701674 (2012-11-02 19:41:27.498122569 UTC)
<6>[ 108.558135] DSSCOMP: dsscomp_late_resume
<6>[ 109.513000] vibrator: value=20, pwmval=127
<6>[ 109.872772] vibrator: value=20, pwmval=127
<6>[ 110.213806] vibrator: value=20, pwmval=127
<6>[ 110.543334] omap-iommu omap-iommu.0: iommu_get: ducati qos_request
<4>[ 110.557281] omap_hwmod: ipu: failed to hardreset
<6>[ 110.560150] omap-iommu omap-iommu.0: ducati: version 2.1
<6>[ 110.733123] sr_class1p5_calib_work: core: Calibration complete: Voltage:Nominal=1250000,Calib=1038160,margin=13000
<6>[ 111.117462] PVR_K:(Error): GetHandleStructure: Handle index out of range (1835561824 >= 0) [454, /home/gnutoo/embedded/android/replicant-4.0/kernel/samsung/tuna/drivers/gpu/pvr/handle.c]
<6>[ 111.117584] PVR_K:(Error): PVRSRVLookupHandle: Error looking up handle (149) [1407, /home/gnutoo/embedded/android/replicant-4.0/kernel/samsung/tuna/drivers/gpu/pvr/handle.c]
<6>[ 111.117706] PVR_K:(Error): PVRSRVExportFDToIONHandle: Failed to look up MEM_INFO handle [78, /home/gnutoo/embedded/android/replicant-4.0/kernel/samsung/tuna/drivers/gpu/pvr/ion.c]
<6>[ 114.291107] binder: release 138:532 transaction 8079 in, still active
<6>[ 114.291168] binder: send failed reply for transaction 8079 to 814:814
<4>[ 116.686065] sr_class1p5_calib_work: iva Stop sampling: Voltage Nominal=950000 samples=18
<6>[ 116.686309] sr_class1p5_calib_work: iva: Calibration complete: Voltage:Nominal=950000,Calib=860920,margin=13000
<3>[ 119.851684] omap-rproc omap-rproc.1: rproc_watchdog_isr
<6>[ 119.851959] omap_rproc_dump_registers: REGISTER DUMP FOR REMOTEPROC ipu
<6>[ 119.852264] omap_rproc_dump_registers: PC is at 002a5006
<6>[ 119.852416] omap_rproc_dump_registers: LR is at 002a5007
<6>[ 119.852722] omap_rproc_dump_registers: pc : [<002a5006>] lr : [<002a5007>] psr: 61000000
<6>[ 119.852752] sp : 806041e8 ip : 806041a8 fp : 802b839c
<6>[ 119.853210] omap_rproc_dump_registers: r10: 802a5f27 r9 : 0000804f r8 : 00000000
<6>[ 119.853515] omap_rproc_dump_registers: r7 : 00000137 r6 : 00000000 r5 : 80604214 r4 : 00254a3c
<6>[ 119.853698] omap_rproc_dump_registers: r3 : 00000000 r2 : 9f070000 r1 : 00000010 r0 : 00000000
<6>[ 119.854003] omap_rproc_dump_registers: Flags: nZCv IRQs on FIQs on
<6>[ 119.854675] _event_notify: remoteproc: ipu has crashed
<3>[ 119.854827] rpmsg_rproc_error: Fatal error in ipu
<3>[ 119.855133] rpmsg_rproc_error: Fatal error in ipu
<3>[ 119.855316] rpmsg_reset_work: reseting virtio device 0
<6>[ 119.855682] rpmsg_resmgr rpmsg0: Enter rprm_remove
<6>[ 119.862121] rpmsg_omx rpmsg-omx0: rpmsg omx driver is removed
<3>[ 119.866668] rpmsg_reset_work: reseting virtio device 1
<6>[ 119.866912] rpmsg_resmgr rpmsg2: Enter rprm_remove
<6>[ 119.868988] rpmsg_omx rpmsg-omx1: rpmsg omx driver is removed
<4>[ 119.870544] rproc_reset_poolmem: invalid pool
<6>[ 119.870819] omap-rproc omap-rproc.1: stopped remote processor ipu
<6>[ 119.873626] omap-rproc omap-rproc.1: powering up ipu
<6>[ 119.873962] virtio_rpmsg_bus virtio2: rpmsg backend virtproc probed successfully
<6>[ 119.874877] virtio_rpmsg_bus virtio3: rpmsg backend virtproc probed successfully
<6>[ 119.915710] omap-rproc omap-rproc.1: Loaded BIOS image ducati-m3.bin, size 4511300
<6>[ 119.915893] omap-rproc omap-rproc.1: BIOS image version is 2
<6>[ 119.927490] omap-iommu omap-iommu.0: iommu_get: ducati qos_request
<4>[ 119.941894] omap_hwmod: ipu: failed to hardreset
<6>[ 119.943176] omap-iommu omap-iommu.0: ducati: version 2.1
<6>[ 119.952117] omap-rproc omap-rproc.1: remote processor ipu is now up
<6>[ 119.965270] omap_rpmsg_mbox_callback: received echo reply from ipu !
<6>[ 119.965393] omap_rpmsg_mbox_callback: received echo reply from ipu !
<6>[ 119.965545] omap_rpmsg_mbox_callback: received echo reply from ipu !
<6>[ 119.965637] omap_rpmsg_mbox_callback: received echo reply from ipu !
<6>[ 119.965820] virtio_rpmsg_bus virtio2: creating channel rpmsg-client-sample addr 0x32
<6>[ 119.966125] virtio_rpmsg_bus virtio2: creating channel rpmsg-client-sample addr 0x33
<6>[ 119.966400] virtio_rpmsg_bus virtio2: creating channel rpmsg-omx addr 0x3c
<6>[ 119.966827] rpmsg_omx rpmsg-omx0: new OMX connection srv channel: 1024 -> 60!
<6>[ 121.112823] virtio_rpmsg_bus virtio3: creating channel rpmsg-omx addr 0x3c
<6>[ 121.116668] rpmsg_omx rpmsg-omx1: new OMX connection srv channel: 1024 -> 60!
</pre>
Disabling the pvr driver with:
<pre>
diff --git a/arch/arm/configs/cyanogenmod_tuna_defconfig b/arch/arm/configs/cyanogenmod_tuna_defconfig
index 1a060a2..a9e3990 100644
--- a/arch/arm/configs/cyanogenmod_tuna_defconfig
+++ b/arch/arm/configs/cyanogenmod_tuna_defconfig
@@ -1,6 +1,6 @@
#
# Automatically generated make config: don't edit
-# Linux/arm 3.0.34 Kernel Configuration
+# Linux/arm 3.0.36 Kernel Configuration
#
CONFIG_ARM=y
CONFIG_HAVE_PWM=y
@@ -70,6 +70,7 @@ CONFIG_GENERIC_IRQ_CHIP=y
# RCU Subsystem
#
CONFIG_TREE_PREEMPT_RCU=y
+# CONFIG_TINY_RCU is not set
CONFIG_PREEMPT_RCU=y
# CONFIG_RCU_TRACE is not set
CONFIG_RCU_FANOUT=32
@@ -583,6 +584,8 @@ CONFIG_INET_DIAG=y
CONFIG_INET_TCP_DIAG=y
# CONFIG_TCP_CONG_ADVANCED is not set
CONFIG_TCP_CONG_CUBIC=y
+# CONFIG_DEFAULT_CUBIC is not set
+# CONFIG_DEFAULT_RENO is not set
CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TCP_MD5SIG is not set
CONFIG_IPV6=y
@@ -785,6 +788,9 @@ CONFIG_IP6_NF_RAW=y
# CONFIG_BRIDGE_NF_EBTABLES is not set
# CONFIG_IP_DCCP is not set
# CONFIG_IP_SCTP is not set
+# CONFIG_SCTP_HMAC_NONE is not set
+# CONFIG_SCTP_HMAC_SHA1 is not set
+# CONFIG_SCTP_HMAC_MD5 is not set
# CONFIG_RDS is not set
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
@@ -917,6 +923,8 @@ CONFIG_CFG80211_DEFAULT_PS=y
# CONFIG_LIB80211 is not set
CONFIG_CFG80211_ALLOW_RECONNECT=y
# CONFIG_MAC80211 is not set
+# CONFIG_MAC80211_RC_DEFAULT_PID is not set
+# CONFIG_MAC80211_RC_DEFAULT_MINSTREL is not set
# CONFIG_WIMAX is not set
CONFIG_RFKILL=y
CONFIG_RFKILL_PM=y
@@ -1204,6 +1212,9 @@ CONFIG_WLAN=y
# CONFIG_USB_NET_RNDIS_WLAN is not set
CONFIG_WIFI_CONTROL_FUNC=y
# CONFIG_ATH_COMMON is not set
+# CONFIG_B43LEGACY_DMA_AND_PIO_MODE is not set
+# CONFIG_B43LEGACY_DMA_MODE is not set
+# CONFIG_B43LEGACY_PIO_MODE is not set
# CONFIG_BCM4329 is not set
CONFIG_BCMDHD=y
CONFIG_BCMDHD_FW_PATH="/system/vendor/firmware/fw_bcmdhd.bin"
@@ -1688,24 +1699,13 @@ CONFIG_TILER_ENABLE_USERSPACE=y
# Graphics support
#
# CONFIG_DRM is not set
-CONFIG_PVR_SGX=y
-CONFIG_PVR_SGXCORE_540=y
-CONFIG_PVR_BUILD_RELEASE=y
+# CONFIG_PVR_SGX is not set
+# CONFIG_PVR_SGXCORE_540 is not set
+# CONFIG_PVR_BUILD_RELEASE is not set
# CONFIG_PVR_BUILD_DEBUG is not set
-CONFIG_PVR_NEED_PVR_DPF=y
-CONFIG_PVR_NEED_PVR_ASSERT=y
-CONFIG_PVR_PERCONTEXT_PB=y
-CONFIG_PVR_ACTIVE_POWER_MANAGEMENT=y
-CONFIG_PVR_ACTIVE_POWER_LATENCY_MS=100
-CONFIG_PVR_SGX_LOW_LATENCY_SCHEDULING=y
-CONFIG_PVR_USSE_EDM_STATUS_DEBUG=y
-CONFIG_PVR_DUMP_MK_TRACE=y
-# CONFIG_PVR_PDUMP is not set
-CONFIG_PVR_OMAP_DSS2=y
# CONFIG_SGX_DVFS_MODE_NONE is not set
# CONFIG_SGX_DVFS_MODE_LINEAR is not set
-CONFIG_SGX_DVFS_MODE_OPTIMIZED=y
-CONFIG_SGX_DVFS_IDLE_TIMEOUT=1000
+# CONFIG_SGX_DVFS_MODE_OPTIMIZED is not set
CONFIG_ION=y
CONFIG_ION_OMAP=y
# CONFIG_VGASTATE is not set
@@ -1734,10 +1734,13 @@ CONFIG_FB_MODE_HELPERS=y
# Frame buffer hardware drivers
#
# CONFIG_FB_S1D13XXX is not set
+# CONFIG_FB_CARMINE_DRAM_EVAL is not set
+# CONFIG_CARMINE_DRAM_CUSTOM is not set
# CONFIG_FB_TMIO is not set
# CONFIG_FB_UDL is not set
# CONFIG_FB_VIRTUAL is not set
# CONFIG_FB_METRONOME is not set
+# CONFIG_FB_MB862XX_PCI_GDC is not set
# CONFIG_FB_BROADSHEET is not set
CONFIG_HDMI_TI_4XXX_IP=y
CONFIG_SII9234=y
@@ -1765,7 +1768,6 @@ CONFIG_FB_OMAP2_NUM_FBS=3
CONFIG_PANEL_S6E8AA0=y
# CONFIG_PANEL_TAAL is not set
CONFIG_COLOR_HACK=y
-CONFIG_DSSCOMP=y
CONFIG_DSSCOMP_DEBUG_LOG=y
CONFIG_OMAP4_HDCP=y
# CONFIG_OMAP4_HDCP_DEBUG is not set
@@ -2094,6 +2096,12 @@ CONFIG_USB_GADGET_SELECTED=y
# CONFIG_USB_GADGET_R8A66597 is not set
# CONFIG_USB_GADGET_PXA_U2O is not set
# CONFIG_USB_GADGET_M66592 is not set
+# CONFIG_USB_GADGET_AMD5536UDC is not set
+# CONFIG_USB_GADGET_CI13XXX_PCI is not set
+# CONFIG_USB_GADGET_NET2280 is not set
+# CONFIG_USB_GADGET_GOKU is not set
+# CONFIG_USB_GADGET_LANGWELL is not set
+# CONFIG_USB_GADGET_EG20T is not set
# CONFIG_USB_GADGET_DUMMY_HCD is not set
CONFIG_USB_GADGET_DUALSPEED=y
# CONFIG_USB_ZERO is not set
@@ -2113,6 +2121,9 @@ CONFIG_USB_G_ANDROID=y
# CONFIG_USB_G_MULTI is not set
# CONFIG_USB_G_HID is not set
# CONFIG_USB_G_DBGP is not set
+# CONFIG_USB_G_DBGP_PRINTK is not set
+# CONFIG_USB_G_DBGP_SERIAL is not set
+# CONFIG_USB_G_WEBCAM is not set
#
# OTG and related infrastructure
@@ -2265,9 +2276,15 @@ CONFIG_ANDROID_LOW_MEMORY_KILLER=y
# CONFIG_USB_SERIAL_QUATECH_USB2 is not set
# CONFIG_VT6656 is not set
# CONFIG_IIO is not set
+# CONFIG_LIS3L02DQ_BUF_KFIFO is not set
+# CONFIG_LIS3L02DQ_BUF_RING_SW is not set
+# CONFIG_AD2S1210_GPIO_INPUT is not set
+# CONFIG_AD2S1210_GPIO_OUTPUT is not set
+# CONFIG_AD2S1210_GPIO_NONE is not set
# CONFIG_XVMALLOC is not set
# CONFIG_ZRAM is not set
# CONFIG_FB_SM7XX is not set
+# CONFIG_EASYCAP_SND is not set
CONFIG_MACH_NO_WESTBRIDGE=y
# CONFIG_ATH6K_LEGACY is not set
# CONFIG_USB_ENESTORAGE is not set
@@ -2381,6 +2398,10 @@ CONFIG_MISC_FILESYSTEMS=y
# CONFIG_EFS_FS is not set
# CONFIG_YAFFS_FS is not set
# CONFIG_JFFS2_FS is not set
+# CONFIG_JFFS2_CMODE_NONE is not set
+# CONFIG_JFFS2_CMODE_PRIORITY is not set
+# CONFIG_JFFS2_CMODE_SIZE is not set
+# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
# CONFIG_LOGFS is not set
# CONFIG_CRAMFS is not set
# CONFIG_SQUASHFS is not set
@@ -2390,6 +2411,9 @@ CONFIG_MISC_FILESYSTEMS=y
# CONFIG_HPFS_FS is not set
# CONFIG_QNX4FS_FS is not set
# CONFIG_ROMFS_FS is not set
+# CONFIG_ROMFS_BACKED_BY_BLOCK is not set
+# CONFIG_ROMFS_BACKED_BY_MTD is not set
+# CONFIG_ROMFS_BACKED_BY_BOTH is not set
# CONFIG_PSTORE is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
@@ -2595,6 +2619,10 @@ CONFIG_SECURITY_MIDDLEWARE_COMPONENT=y
# CONFIG_SMC_KERNEL_CRYPTO is not set
CONFIG_SECURE_TRACE=y
# CONFIG_TF_DRIVER_DEBUG_SUPPORT is not set
+# CONFIG_DEFAULT_SECURITY_SELINUX is not set
+# CONFIG_DEFAULT_SECURITY_SMACK is not set
+# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
+# CONFIG_DEFAULT_SECURITY_APPARMOR is not set
CONFIG_DEFAULT_SECURITY_DAC=y
CONFIG_DEFAULT_SECURITY=""
CONFIG_CRYPTO=y
</pre>
Didn't fix it.
<pre>
replicant-4.0/kernel/samsung/tuna/drivers/rpmsg$ grep rpmsg-omx -r *
rpmsg_omx.c: "rpmsg-omx");
rpmsg_omx.c: "rpmsg-omx%d", minor);
rpmsg_omx.c: { .name = "rpmsg-omx" },
replicant-4.0/kernel/samsung/tuna/drivers/rpmsg$ grep pvr -r *
rpmsg_omx.c:#include "../gpu/pvr/ion.h"
rpmsg_omx.c: struct ion_client *pvr_ion_client;
rpmsg_omx.c: handle = PVRSRVExportFDToIONHandle(fd, &pvr_ion_client);
rpmsg_omx.c: !ion_phys(pvr_ion_client, handle, &paddr, &unused)) {
</pre>
h2. TODO
* investigate why the kernel fails without the PVR here:
<pre>
static u32 _rpmsg_omx_buffer_lookup(struct rpmsg_omx_instance *omx, long buffer)
{
phys_addr_t pa;
u32 va;
#ifdef CONFIG_ION_OMAP
struct ion_handle *handle;
ion_phys_addr_t paddr;
size_t unused;
int fd;
/* is it an ion handle? */
handle = (struct ion_handle *)buffer;
if (!ion_phys(omx->ion_client, handle, &paddr, &unused)) {
pa = (phys_addr_t) paddr;
goto to_va;
}
#ifdef CONFIG_PVR_SGX
/* how about an sgx buffer wrapping an ion handle? */
{
struct ion_client *pvr_ion_client;
fd = buffer;
handle = PVRSRVExportFDToIONHandle(fd, &pvr_ion_client);
if (handle &&
!ion_phys(pvr_ion_client, handle, &paddr, &unused)) {
pa = (phys_addr_t)paddr;
goto to_va;
}
}
#endif
#endif
pa = (phys_addr_t) tiler_virt2phys(buffer);
#ifdef CONFIG_ION_OMAP
to_va:
#endif
va = _rpmsg_pa_to_da(pa);
return va;
}
</pre>
That has to be corelated with:
<pre>
<6>[ 111.117462] PVR_K:(Error): GetHandleStructure: Handle index out of range (1835561824 >= 0) [454, /home/gnutoo/embedded/android/replicant-4.0/kernel/samsung/tuna/drivers/gpu/pvr/handle.c]
<6>[ 111.117584] PVR_K:(Error): PVRSRVLookupHandle: Error looking up handle (149) [1407, /home/gnutoo/embedded/android/replicant-4.0/kernel/samsung/tuna/drivers/gpu/pvr/handle.c]
<6>[ 111.117706] PVR_K:(Error): PVRSRVExportFDToIONHandle: Failed to look up MEM_INFO handle [78, /home/gnutoo/embedded/android/replicant-4.0/kernel/samsung/tuna/drivers/gpu/pvr/ion.c]
</pre>
h2. Newer infos from the kernel
<pre>
static ssize_t rpmsg_omx_write(struct file *filp, const char __user *ubuf,
size_t len, loff_t *offp)
{
struct rpmsg_omx_instance *omx = filp->private_data;
struct rpmsg_omx_service *omxserv = omx->omxserv;
char kbuf[512];
struct omx_msg_hdr *hdr = (struct omx_msg_hdr *) kbuf;
int use, ret;
if (omx->state != OMX_CONNECTED)
return -ENOTCONN;
/*
* for now, limit msg size to 512 bytes (incl. header).
* (note: rpmsg's limit is even tighter. this whole thing needs fixing)
*/
use = min(sizeof(kbuf) - sizeof(*hdr), len);
/*
* copy the data. Later, number of copies can be optimized if found to
* be significant in real use cases
*/
if (copy_from_user(hdr->data, ubuf, use))
return -EMSGSIZE;
ret = _rpmsg_omx_map_buf(omx, hdr->data);
if (ret < 0)
return ret;
hdr->type = OMX_RAW_MSG;
hdr->flags = 0;
hdr->len = use;
use += sizeof(*hdr);
ret = rpmsg_send_offchannel(omxserv->rpdev, omx->ept->addr,
omx->dst, kbuf, use);
if (ret) {
dev_err(omxserv->dev, "rpmsg_send failed: %d\n", ret);
return ret;
}
return use;
}
</pre>
So it copies the userspace data to hdr->data and passes it to _rpmsg_omx_map_buf
<pre>ret = _rpmsg_omx_map_buf(omx, hdr->data);</pre>
Then _rpmsg_omx_map_buf is like that:
<pre>
static int _rpmsg_omx_map_buf(struct rpmsg_omx_instance *omx, char *packet)
{
int ret = -EINVAL, offset = 0;
long *buffer;
char *data;
enum rpc_omx_map_info_type maptype;
u32 da = 0;
data = (char *)((struct omx_packet *)packet)->data;
maptype = *((enum rpc_omx_map_info_type *)data);
/*Nothing to map*/
if (maptype == RPC_OMX_MAP_INFO_NONE)
return 0;
if ((maptype != RPC_OMX_MAP_INFO_THREE_BUF) &&
(maptype != RPC_OMX_MAP_INFO_TWO_BUF) &&
(maptype != RPC_OMX_MAP_INFO_ONE_BUF))
return ret;
offset = *(int *)((int)data + sizeof(maptype));
buffer = (long *)((int)data + offset);
da = _rpmsg_omx_buffer_lookup(omx, *buffer);
printk("[DBG] [%s] da = %x \n",__func__,da);
if (da) {
printk("[DBG] [%s] inside da\n",__func__);
*buffer = da;
ret = 0;
}else {
printk("[DBG] [%s] outside da\n",__func__);
}
if (!ret && (maptype >= RPC_OMX_MAP_INFO_TWO_BUF)) {
buffer = (long *)((int)data + offset + sizeof(*buffer));
if (*buffer != 0) {
ret = -EIO;
da = _rpmsg_omx_buffer_lookup(omx, *buffer);
if (da) {
*buffer = da;
ret = 0;
}
}
}
if (!ret && maptype >= RPC_OMX_MAP_INFO_THREE_BUF) {
buffer = (long *)((int)data + offset + 2*sizeof(*buffer));
if (*buffer != 0) {
ret = -EIO;
da = _rpmsg_omx_buffer_lookup(omx, *buffer);
if (da) {
*buffer = da;
ret = 0;
}
}
}
return ret;
}
</pre>
It calls <pre>da = _rpmsg_omx_buffer_lookup(omx, *buffer);</pre> which is like that:
<pre>
static u32 _rpmsg_omx_buffer_lookup(struct rpmsg_omx_instance *omx, long buffer)
{
phys_addr_t pa;
u32 va;
#ifdef CONFIG_ION_OMAP
struct ion_handle *handle;
ion_phys_addr_t paddr;
size_t unused;
int fd;
/* is it an ion handle? */
handle = (struct ion_handle *)buffer;
printk("[DBG] handle:%x\n",handle);
if (!ion_phys(omx->ion_client, handle, &paddr, &unused)) {
printk("[DBG] is ion_phys\n");
pa = (phys_addr_t) paddr;
goto to_va;
}
#if 0
#ifdef CONFIG_PVR_SGX
printk("[DBG] INSIDE CONFIG_PVR_SGX\n");
/* how about an sgx buffer wrapping an ion handle? */
{
struct ion_client *pvr_ion_client;
fd = buffer;
handle = PVRSRVExportFDToIONHandle(fd, &pvr_ion_client);
printk("[DBG] [INSIDE CONFIG_PVR_SGX] handle:%x\n",handle);
if (handle &&
!ion_phys(pvr_ion_client, handle, &paddr, &unused)) {
printk("[DBG] [INSIDE CONFIG_PVR_SGX] goto to_va\n");
pa = (phys_addr_t)paddr;
goto to_va;
}
}
#endif
#endif
#endif
printk("[DBG] [after CONFIG_PVR_SGX]\n");
pa = (phys_addr_t) tiler_virt2phys(buffer);
printk("[DBG] [after CONFIG_PVR_SGX] pa = %x \n");
#ifdef CONFIG_ION_OMAP
to_va:
#endif
printk("[DBG] [to_va] \n");
va = _rpmsg_pa_to_da(pa);
printk("[DBG] [to_va] = %x \n",va);
return va;
}
</pre>
which calls
<pre>
/*
* TODO: Need to do this using lookup with rproc, but rproc is not
* visible to rpmsg_omx
*/
#define TILER_START 0x60000000
#define TILER_END 0x80000000
#define ION_1D_START 0xBA300000
#define ION_1D_END 0xBFD00000
#define ION_1D_VA 0x88000000
static u32 _rpmsg_pa_to_da(u32 pa)
{
if (pa >= TILER_START && pa < TILER_END){
printk("[DBG] TILER\n");
return pa;
}
else if (pa >= ION_1D_START && pa < ION_1D_END){
printk("[DBG] ION\n");
return (pa - ION_1D_START + ION_1D_VA);
}
else{
printk("[DBG] ELSE(not tiler and not ion)\n");
}
return 0;
}
</pre>
which prints ION for the 2 good buffers and print ELSE for the bad buffer(the one which produces the EINVAL in write)...
then _rpmsg_omx_buffer_lookup returns 0 which results in:
<pre>
static int _rpmsg_omx_map_buf(struct rpmsg_omx_instance *omx, char *packet)
{
int ret = -EINVAL, offset = 0;
[...]
da = _rpmsg_omx_buffer_lookup(omx, *buffer);
printk("[DBG] [%s] da = %x \n",__func__,da);
if (da) {
->not reached
printk("[DBG] [%s] inside da\n",__func__);
*buffer = da;
ret = 0;
}else {
->reached
printk("[DBG] [%s] outside da\n",__func__);
}
if (!ret && (maptype >= RPC_OMX_MAP_INFO_TWO_BUF)) {
[...] (not reached)
}
if (!ret && maptype >= RPC_OMX_MAP_INFO_THREE_BUF) {
[...] (not reached)
}
return ret;
}
</pre>
h2. Runtime tests.
Running replicant kernel with:
<pre>
#if 0
#ifdef CONFIG_PVR_SGX
printk("[DBG] INSIDE CONFIG_PVR_SGX\n");
/* how about an sgx buffer wrapping an ion handle? */
{
struct ion_client *pvr_ion_client;
fd = buffer;
handle = PVRSRVExportFDToIONHandle(fd, &pvr_ion_client);
printk("[DBG] [INSIDE CONFIG_PVR_SGX] handle:%x\n",handle);
if (handle &&
!ion_phys(pvr_ion_client, handle, &paddr, &unused)) {
printk("[DBG] [INSIDE CONFIG_PVR_SGX] goto to_va\n");
pa = (phys_addr_t)paddr;
goto to_va;
}
}
#endif
#endif
</pre>
with cyanogenmod userspace produces the same issue:
<pre>
D/DOMX ( 135): ENTER:
D/DOMX ( 135): TRACE: Recd. omx message
D/DOMX ( 135): TRACE: Waiting for messages from remote core
D/DOMX ( 135): EXIT:
D/DOMX ( 135): TRACE: Corresponding RPC function executed successfully
D/DOMX ( 135): EXIT: eError: 0
D/DOMX ( 135): ENTER: hComponent = 0x103f7e0, pCompPrv = 0x1035ee0, nConfigIndex = 117440523, pConfigStruct = 0x41365b50
D/DOMX ( 135): ENTER:
D/DOMX ( 135): TRACE: Recd. omx message
D/DOMX ( 135): TRACE: Waiting for messages from remote core
D/DOMX ( 135): EXIT:
D/DOMX ( 135): TRACE: Corresponding RPC function executed successfully
D/DOMX ( 135): EXIT: eError: 0
D/DOMX ( 135): ENTER: hComponent = 0x103f7e0, pCompPrv = 0x1035ee0, nParamIndex = 33554433, pParamStruct = 0x41365ad8
D/DOMX ( 135): ENTER:
D/DOMX ( 135): TRACE: Recd. omx message
D/DOMX ( 135): TRACE: Waiting for messages from remote core
D/DOMX ( 135): EXIT:
D/DOMX ( 135): TRACE: Corresponding RPC function executed successfully
D/DOMX ( 135): EXIT: eError: 0 index: 0x2000001
D/DOMX ( 135): ENTER: hComponent = 0x103f7e0, pCompPrv = 0x1035ee0, nParamIndex = 33554433, pParamStruct = 0x41365ad8
D/DOMX ( 135): TRACE: Recd. omx message
D/DOMX ( 135): TRACE: Waiting for messages from remote core
D/DOMX ( 135): EXIT:
D/DOMX ( 135): TRACE: Corresponding RPC function executed successfully
D/DOMX ( 135): EXIT: eError: 0
D/DOMX ( 135): ENTER: hComponent = 0x103f7e0, pCompPrv = 0x1035ee0, nParamIndex = 33554433, pParamStruct = 0x41365ad8
D/DOMX ( 135): ENTER:
D/DOMX ( 135): TRACE: Recd. omx message
D/DOMX ( 135): TRACE: Waiting for messages from remote core
D/DOMX ( 135): EXIT:
D/DOMX ( 135): TRACE: Corresponding RPC function executed successfully
D/DOMX ( 135): EXIT: eError: 0 index: 0x2000001
D/DOMX ( 135): ENTER: hComponent = 0x103f7e0, pCompPrv = 0x1035ee0, nConfigIndex = 2130706541, pConfigStruct = 0x41365b58
D/DOMX ( 135): ENTER:
D/DOMX ( 135): TRACE: Recd. omx message
D/DOMX ( 135): TRACE: Waiting for messages from remote core
D/DOMX ( 135): EXIT:
D/DOMX ( 135): TRACE: Corresponding RPC function executed successfully
D/DOMX ( 135): EXIT: eError: 0
D/DOMX ( 135): ENTER: hComponent = 0x103f7e0, pCompPrv = 0x1035ee0, eCmd = 3, nParam = 2, pCmdData = 0x0
D/DOMX ( 135): ENTER:
D/DOMX ( 135): TRACE: Recd. omx message
D/DOMX ( 135): TRACE: Waiting for messages from remote core
D/DOMX ( 135): EXIT:
D/DOMX ( 135): TRACE: Corresponding RPC function executed successfully
D/DOMX ( 135): EXIT: eError: 0
D/DOMX ( 135): ENTER: hComponent = 0x103f7e0, pCompPrv = 0x1035ee0, nParamIndex = 2130706545, pParamStruct = 0x41365ba0
D/DOMX ( 135): TRACE: Corresponding RPC function executed successfully
D/DOMX ( 135): EXIT: eError: 0
D/DOMX ( 135): ENTER: hComponent = 0x103f7e0, pCompPrv = 0x1035ee0, nPortIndex = 0x2, pAppPrivate = 0x0, nSizeBytes = 1142784, pBuffer = 0x1046f40
D/DOMX ( 135): TRACE: In UB, no. of buffers = 0
D/DOMX ( 135): TRACE: Preparing buffer to Remote Core...
D/DOMX ( 135): ENTER:
D/DOMX ( 135): TRACE: Recd. omx message
D/DOMX ( 135): TRACE: Waiting for messages from remote core
D/DOMX ( 135): EXIT:
D/DOMX ( 135): TRACE: Corresponding RPC function executed successfully
D/DOMX ( 135): ENTER:
D/DOMX ( 135): ENTER:
D/DOMX ( 135): TRACE: Recd. omx message
D/DOMX ( 135): TRACE: Waiting for messages from remote core
D/DOMX ( 135): EXIT:
D/DOMX ( 135): TRACE: PROXY_UTIL Get Parameter Successful
D/DOMX ( 135): ENTER:
D/DOMX ( 135): TRACE: Recd. omx message
D/DOMX ( 135): TRACE: Waiting for messages from remote core
D/DOMX ( 135): EXIT:
D/DOMX ( 135): TRACE: PROXY_UTIL Get Parameter Successful
D/DOMX ( 135): TRACE: Port Number: 2 :: NumOfLines 720
D/DOMX ( 135): EXIT: eError: 0
D/DOMX ( 135): ENTER: hComponent = 0x103f7e0, pCompPrv = 0x1035ee0, nParamIndex = 2130706550, pParamStruct = 0x41365b34
D/DOMX ( 135): ENTER:
D/DOMX ( 135): TRACE: Recd. omx message
D/DOMX ( 135): TRACE: Waiting for messages from remote core
D/DOMX ( 135): EXIT:
D/DOMX ( 135): TRACE: Corresponding RPC function executed successfully
D/DOMX ( 135): EXIT: eError: 0 index: 0x7f000076
D/DOMX ( 135): TRACE: Metadata size = 12332
D/DOMX ( 135): TRACE: ION being USED for allocation!!!!! handle = c63ccd80, ret =0
D/DOMX ( 135): TRACE: Metadata buffer ion handle = -969093760
D/DOMX ( 135): ENTER:
D/DOMX ( 135): TRACE: Marshaling data
D/DOMX ( 135): TRACE: eMapInfo = 3
D/DOMX ( 135): TRACE: UV buffer fd= 109
D/DOMX ( 135): TRACE: Metadata buffer = -969093760
D/DOMX ( 135): TRACE: About to send packet
D/DOMX ( 135): ERROR: DOMX Write failed 0xffffffff -1
D/DOMX ( 135): ERROR: failed check:status >= 0 - returning error: 0x81001 - Write failed
D/DOMX ( 135): EXIT:
D/DOMX ( 135): ERROR: RPC function returned error 0x81001
D/DOMX ( 135): TRACE: Use Buffer Successful
D/DOMX ( 135): TRACE: Value of pBufHeaderRemote: 0x0 LocalBufferHdr :0x104f118, LocalBuffer :0x1046f40
D/DOMX ( 135): TRACE: Metadata buffer ion handle given to ion map = -969093760
D/DOMX ( 135): TRACE: Updating no. of buffer to 1
D/DOMX ( 135): EXIT: eError: -2147479551
E/CameraHAL( 135): OMX_UseBuffer-0x80001001
E/CameraHAL( 135): Exiting function UseBuffersPreview because of ret 0 eError=80001001
D/DOMX ( 135): ENTER: hComponent = 0x103f7e0
E/ion ( 135): ioctl -1073460991 failed with code -1: Bad file number
F/libc ( 135): @@@ ABORTING: INVALID HEAP ADDRESS IN dlfree
F/libc ( 135): Fatal signal 11 (SIGSEGV) at 0xdeadbaad (code=1)
I/Process ( 203): Sending signal. PID: 914 SIG: 3
I/dalvikvm( 914): threadid=3: reacting to signal 3
I/dalvikvm( 914): Wrote stack traces to '/data/anr/traces.txt'
I/DEBUG ( 130): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG ( 130): Build fingerprint: 'google/yakju/maguro:4.0.4/IMM76I/330937:user/release-keys'
I/DEBUG ( 130): pid: 135, tid: 187 >>> /system/bin/mediaserver <<<
I/DEBUG ( 130): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr deadbaad
I/DEBUG ( 130): r0 deadbaad r1 00000001 r2 a0000000 r3 00000000
I/DEBUG ( 130): r4 00000000 r5 00000027 r6 401022f4 r7 401104d4
I/DEBUG ( 130): r8 0104f170 r9 40110600 10 01040eb0 fp 010387fc
I/DEBUG ( 130): ip ffffffff sp 413659c0 lr 400e3441 pc 400df788 cpsr 60000030
I/DEBUG ( 130): d0 656c696620646120 d1 653766333031786e
I/DEBUG ( 130): d2 68206e6f69207275 d3 696720656c646e6d
I/DEBUG ( 130): d4 426c61636f4c2030 d5 7264487265666675
I/DEBUG ( 130): d6 6634303178303a20 d7 636f4c202c383131
I/DEBUG ( 130): d8 0000000000000000 d9 0000000000000000
I/DEBUG ( 130): d10 0000000000000000 d11 0000000000000000
I/DEBUG ( 130): d12 0000000000000000 d13 0000000000000000
I/DEBUG ( 130): d14 0000000000000000 d15 0000000000000000
I/DEBUG ( 130): d16 3ff0000000000000 d17 3ff0000000000000
I/DEBUG ( 130): d18 7e37e43c8800759c d19 bfba43196d2f888d
I/DEBUG ( 130): d20 3f115549a0c32687 d21 bebbbb72a4af9d58
I/DEBUG ( 130): d22 3ff0000000000000 d23 3fecedd52e2a681e
I/DEBUG ( 130): d24 3e66376972bea4d0 d25 3fee147ae0000000
I/DEBUG ( 130): d26 0000000000000000 d27 0000000000000000
I/DEBUG ( 130): d28 0000000000000000 d29 0000000000000000
I/DEBUG ( 130): d30 0000000000000000 d31 0000000000000000
I/DEBUG ( 130): scr 68000010
I/DEBUG ( 130):
I/DEBUG ( 130): #00 pc 00017788 /system/lib/libc.so
I/DEBUG ( 130): #01 pc 00013732 /system/lib/libc.so
I/DEBUG ( 130): #02 pc 00015a70 /system/lib/libc.so (dlfree)
I/DEBUG ( 130): #03 pc 00016100 /system/lib/libc.so (free)
I/DEBUG ( 130): #04 pc 000019e6 /system/lib/libmm_osal.so (TIMM_OSAL_Free)
I/DEBUG ( 130): #05 pc 00005dda /system/lib/libdomx.so (PROXY_ComponentDeInit)
I/DEBUG ( 130): #06 pc 000018ec /system/lib/libOMX.TI.DUCATI1.VIDEO.CAMERA.so
I/DEBUG ( 130): #07 pc 00001df6 /system/lib/libOMX_Core.so (OMX_FreeHandle)
I/DEBUG ( 130): #08 pc 000284fc /system/lib/hw/camera.omap4.so (_ZN7android16OMXCameraAdapter24performCleanupAfterErrorEv)
I/DEBUG ( 130): #09 pc 0002b04e /system/lib/hw/camera.omap4.so (_ZN7android16OMXCameraAdapter17UseBuffersPreviewEPvi)
I/DEBUG ( 130): #10 pc 0002b182 /system/lib/hw/camera.omap4.so (_ZN7android16OMXCameraAdapter10useBuffersENS_13CameraAdapter10CameraModeEPvijj)
I/DEBUG ( 130): #11 pc 00024c4c /system/lib/hw/camera.omap4.so (_ZN7android17BaseCameraAdapter11sendCommandENS_13CameraAdapter14CameraCommandsEiii)
I/DEBUG ( 130): #12 pc 0001d3d0 /system/lib/hw/camera.omap4.so (_ZN7android9CameraHal12startPreviewEv)
I/DEBUG ( 130): #13 pc 0001d6de /system/lib/hw/camera.omap4.so (_ZN7android9CameraHal16setPreviewWindowEP18preview_stream_ops)
I/DEBUG ( 130): #14 pc 0001ae80 /system/lib/hw/camera.omap4.so (_Z25camera_set_preview_windowP13camera_deviceP18preview_stream_ops)
I/DEBUG ( 130): #15 pc 000076cc /system/lib/libcameraservice.so
I/DEBUG ( 130): #16 pc 000091b4 /system/lib/libcameraservice.so (_ZN7android13CameraService6Client16setPreviewWindowERKNS_2spINS_7IBinderEEERKNS2_I13ANativeWindowEE)
I/DEBUG ( 130): #17 pc 000092ea /system/lib/libcameraservice.so (_ZN7android13CameraService6Client17setPreviewDisplayERKNS_2spINS_7SurfaceEEE)
I/DEBUG ( 130): #18 pc 00013592 /system/lib/libcamera_client.so (_ZN7android8BnCamera10onTransactEjRKNS_6ParcelEPS1_j)
I/DEBUG ( 130): #19 pc 00017f44 /system/lib/libbinder.so (_ZN7android7BBinder8transactEjRKNS_6ParcelEPS1_j)
I/DEBUG ( 130): #20 pc 0001b26e /system/lib/libbinder.so (_ZN7android14IPCThreadState14executeCommandEi)
I/DEBUG ( 130): #21 pc 0001b44a /system/lib/libbinder.so (_ZN7android14IPCThreadState14joinThreadPoolEb)
I/DEBUG ( 130): #22 pc 00020744 /system/lib/libbinder.so
I/DEBUG ( 130): #23 pc 00022a1e /system/lib/libutils.so (_ZN7android6Thread11_threadLoopEPv)
I/DEBUG ( 130): #24 pc 00023064 /system/lib/libutils.so
I/DEBUG ( 130): #25 pc 00012e2c /system/lib/libc.so (__thread_entry)
I/DEBUG ( 130): #26 pc 0001295c /system/lib/libc.so (pthread_create)
I/DEBUG ( 130):
I/DEBUG ( 130): code around pc:
I/DEBUG ( 130): 400df768 4623b15c 2c006824 e026d1fb b12368db \.#F$h.,..&..h#.
I/DEBUG ( 130): 400df778 21014a17 6011447a 48124798 24002527 .J.!zD.`.G.H'%.$
I/DEBUG ( 130): 400df788 f7f47005 2106ef8c e838f7f6 460aa901 .p.....!..8....F
I/DEBUG ( 130): 400df798 f04f2006 94015380 94029303 ebe4f7f5 . O..S..........
I/DEBUG ( 130): 400df7a8 4622a905 f7f52002 f7f4ebee 2106ef78 .."F. ......x..!
I/DEBUG ( 130):
I/DEBUG ( 130): code around lr:
I/DEBUG ( 130): 400e3420 41f0e92d 46804c0c 447c2600 68a56824 -..A.L.F.&|D$h.h
I/DEBUG ( 130): 400e3430 e0076867 300cf9b5 dd022b00 47c04628 gh.....0.+..(F.G
I/DEBUG ( 130): 400e3440 35544306 37fff117 6824d5f4 d1ee2c00 .CT5...7..$h.,..
I/DEBUG ( 130): 400e3450 e8bd4630 bf0081f0 000280be 41f0e92d 0F..........-..A
I/DEBUG ( 130): 400e3460 fb01b086 9004f602 461f4815 4615460c .........H.F.F.F
I/DEBUG ( 130):
I/DEBUG ( 130): memory map around addr deadbaad:
I/DEBUG ( 130): bec5b000-bec7c000 [stack]
I/DEBUG ( 130): (no map for address)
I/DEBUG ( 130): ffff0000-ffff1000 [vectors]
I/DEBUG ( 130):
I/DEBUG ( 130): stack:
I/DEBUG ( 130): 41365980 00000001
I/DEBUG ( 130): 41365984 413659c0
I/DEBUG ( 130): 41365988 4010b7e0 /system/lib/libc.so
I/DEBUG ( 130): 4136598c 0000000c
I/DEBUG ( 130): 41365990 4010b780 /system/lib/libc.so
I/DEBUG ( 130): 41365994 4010b718 /system/lib/libc.so
I/DEBUG ( 130): 41365998 00000000
I/DEBUG ( 130): 4136599c 400e3441 /system/lib/libc.so
I/DEBUG ( 130): 413659a0 00000000
I/DEBUG ( 130): 413659a4 413659d4
I/DEBUG ( 130): 413659a8 401022f4 /system/lib/libc.so
I/DEBUG ( 130): 413659ac 401104d4
I/DEBUG ( 130): 413659b0 0104f170 [heap]
I/DEBUG ( 130): 413659b4 400e25ad /system/lib/libc.so
I/DEBUG ( 130): 413659b8 df0027ad
I/DEBUG ( 130): 413659bc 00000000
I/DEBUG ( 130): #00 413659c0 413659bc
I/DEBUG ( 130): 413659c4 00000001
I/DEBUG ( 130): 413659c8 401022d8 /system/lib/libc.so
I/DEBUG ( 130): 413659cc 00000005
I/DEBUG ( 130): 413659d0 413659ec
I/DEBUG ( 130): 413659d4 fffffbdf
I/DEBUG ( 130): 413659d8 413659ec
I/DEBUG ( 130): 413659dc 413659ec
I/DEBUG ( 130): 413659e0 401057f4 /system/lib/libc.so
I/DEBUG ( 130): 413659e4 400db737 /system/lib/libc.so
I/DEBUG ( 130): #01 413659e8 02000001
I/DEBUG ( 130): 413659ec 20404040
I/DEBUG ( 130): 413659f0 524f4241
I/DEBUG ( 130): 413659f4 474e4954
I/DEBUG ( 130): 413659f8 4e49203a
I/DEBUG ( 130): 413659fc 494c4156
I/DEBUG ( 130): 41365a00 45482044
I/DEBUG ( 130): 41365a04 41205041 /dev/ashmem/OMXCodec (deleted)
I/DEBUG ( 130): 41365a08 45524444
I/DEBUG ( 130): 41365a0c 49205353
I/DEBUG ( 130): 41365a10 6c64204e
I/DEBUG ( 130): 41365a14 65657266
I/DEBUG ( 130): 41365a18 00000000
I/DEBUG ( 130): 41365a1c 00000000
I/DEBUG ( 130): 41365a20 8060f270
I/DEBUG ( 130): 41365a24 a5d1751e
I/DEBUG ( 130): 41365a28 00000060
I/DEBUG ( 130): 41365a2c 41365a78
I/DEBUG ( 130): 41365a30 40fb75e9 /system/lib/libdomx.so
I/DEBUG ( 130): 41365a34 40fba619 /system/lib/libdomx.so
I/DEBUG ( 130): 41365a38 0000001c
I/DEBUG ( 130): 41365a3c 40021340 /system/lib/libmm_osal.so
I/DEBUG ( 130): 41365a40 ffffffff
I/DEBUG ( 130): 41365a44 02000001
I/DEBUG ( 130): 41365a48 000000fb
I/DEBUG ( 130): 41365a4c 401104d4
I/DEBUG ( 130): 41365a50 0104f198 [heap]
I/DEBUG ( 130): 41365a54 00000000
I/DEBUG ( 130): 41365a58 8060f270
I/DEBUG ( 130): 41365a5c 401104d4
I/DEBUG ( 130): 41365a60 7f000076
I/DEBUG ( 130): 41365a64 400dcc25 /system/lib/libc.so
I/DEBUG ( 130): 41365a68 0104f190 [heap]
I/DEBUG ( 130): 41365a6c 0104f288 [heap]
I/DEBUG ( 130): 41365a70 000000fb
I/DEBUG ( 130): 41365a74 401104d4
I/DEBUG ( 130): 41365a78 0104f198 [heap]
I/DEBUG ( 130): 41365a7c 00000000
I/DEBUG ( 130): 41365a80 00000000
I/DEBUG ( 130): 41365a84 401104d4
I/DEBUG ( 130): 41365a88 00000002
I/DEBUG ( 130): 41365a8c 400dcc25 /system/lib/libc.so
I/DEBUG ( 130): 41365a90 0104f190 [heap]
I/DEBUG ( 130): 41365a94 401105f0
I/DEBUG ( 130): 41365a98 000000f8
I/DEBUG ( 130): 41365a9c 401104d4
I/DEBUG ( 130): 41365aa0 0104f198 [heap]
I/DEBUG ( 130): 41365aa4 0104f1ac [heap]
I/DEBUG ( 130): 41365aa8 00000002
I/DEBUG ( 130): 41365aac 400dda89 /system/lib/libc.so
I/DEBUG ( 130): 41365ab0 0104f118 [heap]
I/DEBUG ( 130): 41365ab4 00000024
I/DEBUG ( 130): 41365ab8 01035ee0 [heap]
I/DEBUG ( 130): 41365abc 00000003
I/DEBUG ( 130): 41365ac0 0000004d
I/DEBUG ( 130): 41365ac4 41365ad4
I/DEBUG ( 130): 41365ac8 0104f110 [heap]
I/DEBUG ( 130): 41365acc 00000001
I/DEBUG ( 130): 41365ad0 00000178
I/DEBUG ( 130): 41365ad4 00000001
I/DEBUG ( 130): 41365ad8 40111280
I/DEBUG ( 130): 41365adc 400ea8ad /system/lib/libc.so
I/DEBUG ( 130): 41365ae0 01035ee0 [heap]
I/DEBUG ( 130): 41365ae4 01035ee0 [heap]
I/DEBUG ( 130): 41365ae8 00000000
I/DEBUG ( 130): 41365aec a5d1751e
I/DEBUG ( 130): 41365af0 0104f168 [heap]
I/DEBUG ( 130): 41365af4 01035ee0 [heap]
I/DEBUG ( 130): 41365af8 00000000
I/DEBUG ( 130): 41365afc 400dda75 /system/lib/libc.so
I/Process ( 203): Sending signal. PID: 914 SIG: 3
I/dalvikvm( 914): threadid=3: reacting to signal 3
I/dalvikvm( 914): Wrote stack traces to '/data/anr/traces.txt'
I/Process ( 203): Sending signal. PID: 914 SIG: 3
I/dalvikvm( 914): threadid=3: reacting to signal 3
I/dalvikvm( 914): Wrote stack traces to '/data/anr/traces.txt'
I/Process ( 203): Sending signal. PID: 914 SIG: 3
I/dalvikvm( 914): threadid=3: reacting to signal 3
I/dalvikvm( 914): Wrote stack traces to '/data/anr/traces.txt'
I/Process ( 203): Sending signal. PID: 914 SIG: 3
I/dalvikvm( 914): threadid=3: reacting to signal 3
I/dalvikvm( 914): Wrote stack traces to '/data/anr/traces.txt'
I/Process ( 203): Sending signal. PID: 914 SIG: 3
I/dalvikvm( 914): threadid=3: reacting to signal 3
I/dalvikvm( 914): Wrote stack traces to '/data/anr/traces.txt'
D/dalvikvm( 203): GC_FOR_ALLOC freed 3709K, 60% free 4952K/12288K, paused 29ms
W/AudioSystem( 203): AudioFlinger server died!
W/IMediaDeathNotifier( 203): media server died
W/AudioSystem( 203): AudioPolicyService server died!
W/AudioSystem( 420): AudioFlinger server died!
W/AudioSystem( 420): AudioPolicyService server died!
I/ServiceManager( 124): service 'media.audio_flinger' died
I/ServiceManager( 124): service 'media.player' died
I/ServiceManager( 124): service 'media.camera' died
I/ServiceManager( 124): service 'media.audio_policy' died
W/IMediaDeathNotifier( 437): media server died
W/Camera ( 914): Camera server died!
W/Camera ( 914): ICamera died
I/ActivityManager( 203): Displayed com.android.camera/.Camera: +4s438ms
D/CameraStorage( 914): External storage state=mounted
I/Thumbnail( 914): Fail to load bitmap. java.io.FileNotFoundException: /data/data/com.android.camera/files/last_thumb: open failed: ENOENT (No such file or directory)
E/Camera ( 914): Error 100
E/CameraErrorCallback( 914): Got camera error callback. error=100
D/AndroidRuntime( 914): Shutting down VM
W/dalvikvm( 914): threadid=1: thread exiting with uncaught exception (group=0x40a4e1f8)
I/ ( 948): ServiceManager: 0x5cd958
I/AudioFlinger( 948): Loaded primary audio interface from Tuna audio HW HAL (audio)
I/AudioFlinger( 948): Using 'Tuna audio HW HAL' (audio.primary) as the primary audio interface
I/AudioFlinger( 948): Loaded a2dp audio interface from A2DP Audio HW HAL (audio)
I/CameraService( 948): CameraService started (pid=948)
I/AudioFlinger( 948): AudioFlinger's thread 0x5d44b8 ready to run
D/dalvikvm( 203): GC_FOR_ALLOC freed 1181K, 59% free 5063K/12288K, paused 27ms
I/AudioPolicyService( 948): Loaded audio policy from LEGACY Audio Policy HAL (audio_policy)
I/Process ( 203): Sending signal. PID: 914 SIG: 3
I/dalvikvm( 914): threadid=3: reacting to signal 3
I/dalvikvm( 914): Wrote stack traces to '/data/anr/traces.txt'
E/AudioService( 203): Media server died.
E/AudioService( 203): Media server started.
W/AudioPolicyManagerBase( 948): setPhoneState() setting same state 0
W/AudioFlinger( 948): session id 13 not found for pid 203
I/Process ( 914): Sending signal. PID: 914 SIG: 9
[ 104.225494] binder: release proc 914, transaction 18351, not freed
[ 104.234130] binder: release proc 914, transaction 18352, not freed
W/InputDispatcher( 203): channel '40f93a50 com.android.camera/com.android.camera.Camera (server)' ~ Consumer closed input channel or an error occurred. events=0x8
E/InputDispatcher( 203): channel '40f93a50 com.android.camera/com.android.camera.Camera (server)' ~ Channel is unrecoverably broken and will be disposed!
W/InputDispatcher( 203): Attempted to unregister already unregistered input channel '40f93a50 com.android.camera/com.android.camera.Camera (server)'
</pre>
h3. The flow when it works is the following:
<pre>if (!ion_phys(omx->ion_client, handle, &paddr, &unused)) {</pre>
returns false, then what's in #ifdef CONFIG_PVR_SGX is executed, and it jumps to the end without executing <pre>pa = (phys_addr_t) tiler_virt2phys(buffer);</pre>
h3. The flow when it fails is the following:
<pre>if (!ion_phys(omx->ion_client, handle, &paddr, &unused)) {</pre>
returns false,then what's in #ifdef CONFIG_PVR_SGX fails or is skipped,
Then it executes <pre>pa = (phys_addr_t) tiler_virt2phys(buffer);</pre> and goes to the end.