Project

General

Profile

OMAP4DucatiCamera » History » Version 41

Wolfgang Wiedmeyer, 08/28/2017 05:07 PM
update git.replicant.us links

1 33 Paul Kocialkowski
h1. OMAP4 Ducati Camera
2 2 Denis 'GNUtoo' Carikli
3 36 Wolfgang Wiedmeyer
Corresponding feature request: #351
4 1 Denis 'GNUtoo' Carikli
5 38 Wolfgang Wiedmeyer
The Galaxy Nexus and Galaxy Tab 2 chips have a camera that is accessible through the Ducati microcontroller. Some documentation can be found at "omappedia":http://omappedia.org/wiki/Ducati_For_Dummies#Camera.
6
7 41 Wolfgang Wiedmeyer
"Omap4 camera source code":https://git.replicant.us/replicant/hardware_ti_omap4/tree/camera (used by Galaxy Tab 2, but "currently disabled":https://git.replicant.us/replicant/device_samsung_espressowifi/commit/?id=3d9b25d55076dae7d9fd0074518161608690e10c)
8
The Galaxy Nexus uses "its own version":https://git.replicant.us/replicant/device_samsung_tuna/tree/camera, which is "currently disabled as well":https://git.replicant.us/replicant/device_samsung_tuna/commit/?id=5412f248336d53be7780d5fa5d2da2f87dbfd884.
9 39 Wolfgang Wiedmeyer
10 40 Wolfgang Wiedmeyer
In its current form, the camera source code cannot be used in Replicant. The code heavily depends on the PowerVR module which requires proprietary blobs. Below, attempts to remove this dependency are documented. Furthermore, the software renderer used with Replicant only works well with RGB565 as preview format, but the Ducati camera does not support this preview format. It uses YV12.
11 37 Wolfgang Wiedmeyer
12 9 Denis 'GNUtoo' Carikli
h2. Plan:
13 10 Denis 'GNUtoo' Carikli
14 9 Denis 'GNUtoo' Carikli
We don't support YV12 in the gralloc and in the software libgl yet.
15 34 Wolfgang Wiedmeyer
There are several approaches to solve the issue:
16 10 Denis 'GNUtoo' Carikli
17 9 Denis 'GNUtoo' Carikli
h3. Approach 1: Add support for it
18
19
Long and complicated
20
21 11 Denis 'GNUtoo' Carikli
h3. Approach 2: Change format:
22 9 Denis 'GNUtoo' Carikli
23
The Camera supports the following formats:
24 27 Denis 'GNUtoo' Carikli
compile,push, and run the omap4 camera_test program with the "F" argument:
25 9 Denis 'GNUtoo' Carikli
Here for the back camera:
26
<pre>
27
   Choice: E
28
E
29
E
30
	Supported Cameras: (null)
31
	Supported Picture Sizes: 2592x1944,2592x1728,2592x1458,2048x1536,1600x1200,1280x1024,1152x864,1280x960,640x480,320x240
32
	Supported Picture Formats: yuv420sp,yuv420p,yuv422i-yuyv,rgb565,raw,jpeg
33
	Supported Preview Sizes: 1920x1080,1280x720,960x720,800x480,720x576,720x480,768x576,640x480,320x240,352x288,240x160,176x144,128x96
34
	Supported Preview Formats: yuv420sp,yuv420p,yuv422i-yuyv,yuv420p
35
	Supported Preview Frame Rates: 30,15
36
	Supported Thumbnail Sizes: 640x480,160x120,200x120,320x240,512x384,352x144,176x144,96x96,0x0
37
	Supported Whitebalance Modes: auto,daylight,cloudy-daylight,fluorescent,incandescent,
38
	Supported Effects: none,negative,solarize,sepia,mono,whiteboard,blackboard,aqua,posterize
39
	Supported Scene Modes: auto,action,night,party,sunset
40
	Supported Focus Modes: continuous-video,auto,macro,infinity,infinity,continuous-picture
41
	Supported Antibanding Options: auto,50hz,60hz,off
42
	Supported Flash Modes: off,on,auto,torch
43
	Supported Focus Areas: 10
44
	Focus Distances: Infinity,Infinity,Infinity 
45
</pre>
46 1 Denis 'GNUtoo' Carikli
47 34 Wolfgang Wiedmeyer
h3. Approach 3: Workaround
48 11 Denis 'GNUtoo' Carikli
49 10 Denis 'GNUtoo' Carikli
<pre>
50
diff --git a/libs/ui/GraphicBufferAllocator.cpp b/libs/ui/GraphicBufferAllocator.cpp
51
index f7c4f4e..766a98f 100644
52
--- a/libs/ui/GraphicBufferAllocator.cpp
53
+++ b/libs/ui/GraphicBufferAllocator.cpp
54
@@ -99,8 +99,8 @@ status_t GraphicBufferAllocator::alloc(uint32_t w, uint32_t h, PixelFormat forma
55
     // we have a h/w allocator and h/w buffer is requested
56
     status_t err; 
57
 
58
-#ifdef MISSING_EGL_PIXEL_FORMAT_YV12
59
-    if (format == HAL_PIXEL_FORMAT_YV12) {
60
+#if 1
61
+    if (format == HAL_PIXEL_FORMAT_YV12 || format == 0x100 ) {
62
        format = HAL_PIXEL_FORMAT_RGBX_8888;
63
     }
64
     if (usage & GRALLOC_USAGE_EXTERNAL_DISP) {
65 1 Denis 'GNUtoo' Carikli
diff --git a/media/libstagefright/colorconversion/SoftwareRenderer.cpp b/media/libstagefright/colorconversion/SoftwareRenderer.cpp
66 28 Denis 'GNUtoo' Carikli
index 2ce8fa7..abe68dd 100644
67 1 Denis 'GNUtoo' Carikli
--- a/media/libstagefright/colorconversion/SoftwareRenderer.cpp
68 10 Denis 'GNUtoo' Carikli
+++ b/media/libstagefright/colorconversion/SoftwareRenderer.cpp
69 28 Denis 'GNUtoo' Carikli
@@ -62,7 +62,7 @@ SoftwareRenderer::SoftwareRenderer(
70 10 Denis 'GNUtoo' Carikli
     size_t bufWidth, bufHeight;
71
 
72
     switch (mColorFormat) {
73
-#ifndef MISSING_EGL_PIXEL_FORMAT_YV12
74
+#if 0
75
         case OMX_COLOR_FormatYUV420Planar:
76
         case OMX_TI_COLOR_FormatYUV420PackedSemiPlanar:
77
         {
78
</pre>
79 3 Denis 'GNUtoo' Carikli
80
h2. Research
81 4 Denis 'GNUtoo' Carikli
82
Using the camera application produces the following traces:
83
<pre>
84
[...]
85
V/camera  ( 7834): Preview size is 960x720
86
V/MediaProfilesJNI( 7834): native_get_num_image_encoding_quality_levels
87
V/MediaProfilesJNI( 7834): native_get_image_encoding_quality_level
88
V/MediaProfilesJNI( 7834): native_get_image_encoding_quality_level
89
V/MediaProfilesJNI( 7834): native_get_image_encoding_quality_level
90
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]
91
V/camera  ( 7834): startPreview
92
I/CameraHAL( 7751): NULL ANativeWindow passed to setPreviewWindow
93
D/DOMX    ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nParamIndex = 2130706507, pParamStruct = 0x41b5ebd4
94
D/DOMX    ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_SetParameter:348
95
D/DOMX    ( 7751): TRACE: Recd. omx message
96
D/DOMX    ( 7751): TRACE: Waiting for messages from remote core
97
D/DOMX    ( 7751): EXIT: 
98
D/DOMX    ( 7751): TRACE: Corresponding RPC function executed successfully
99
D/DOMX    ( 7751): EXIT: eError: 0
100
D/DOMX    ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nParamIndex = 2130706506, pParamStruct = 0x41b5ebd0
101
D/DOMX    ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_SetParameter:348
102
D/DOMX    ( 7751): TRACE: Recd. omx message
103
D/DOMX    ( 7751): TRACE: Waiting for messages from remote core
104
D/DOMX    ( 7751): EXIT: 
105
D/DOMX    ( 7751): TRACE: Corresponding RPC function executed successfully
106
D/DOMX    ( 7751): EXIT: eError: 0
107
D/DOMX    ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nParamIndex = 2130706548, pParamStruct = 0x41b5ebc8
108
D/DOMX    ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_SetParameter:348
109
D/DOMX    ( 7751): TRACE: Recd. omx message
110
D/DOMX    ( 7751): TRACE: Waiting for messages from remote core
111
D/DOMX    ( 7751): EXIT: 
112
D/DOMX    ( 7751): TRACE: Corresponding RPC function executed successfully
113
D/DOMX    ( 7751): EXIT: eError: 0
114
D/DOMX    ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nParamIndex = 2130706469, pParamStruct = 0x41b5ebd4
115
D/DOMX    ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_SetParameter:348
116
D/DOMX    ( 7751): TRACE: Recd. omx message
117
D/DOMX    ( 7751): TRACE: Waiting for messages from remote core
118
D/DOMX    ( 7751): EXIT: 
119
D/DOMX    ( 7751): TRACE: Corresponding RPC function executed successfully
120
D/DOMX    ( 7751): EXIT: eError: 0
121
D/DOMX    ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nConfigIndex = 2130706509, pConfigStruct = 0x41b5ebbc
122
D/DOMX    ( 7751): ENTER: 
123
D/DOMX    ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_SetConfig:496
124
D/DOMX    ( 7751): TRACE: Recd. omx message
125
D/DOMX    ( 7751): TRACE: Waiting for messages from remote core
126
D/DOMX    ( 7751): EXIT: 
127
D/DOMX    ( 7751): TRACE: Corresponding RPC function executed successfully
128
D/DOMX    ( 7751): EXIT: eError: 0
129
D/DOMX    ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nParamIndex = 2130706515, pParamStruct = 0x41b5ebd0
130
D/DOMX    ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_SetParameter:348
131
D/DOMX    ( 7751): TRACE: Recd. omx message
132
D/DOMX    ( 7751): TRACE: Waiting for messages from remote core
133
D/DOMX    ( 7751): EXIT: 
134
D/DOMX    ( 7751): TRACE: Corresponding RPC function executed successfully
135
D/DOMX    ( 7751): EXIT: eError: 0
136
D/DOMX    ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nParamIndex = 2130706514, pParamStruct = 0x41b5ebcc
137
D/DOMX    ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_SetParameter:348
138
D/DOMX    ( 7751): TRACE: Recd. omx message
139
D/DOMX    ( 7751): TRACE: Waiting for messages from remote core
140
D/DOMX    ( 7751): EXIT: 
141
D/DOMX    ( 7751): TRACE: Corresponding RPC function executed successfully
142
D/DOMX    ( 7751): EXIT: eError: 0
143
D/DOMX    ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nConfigIndex = 117440522, pConfigStruct = 0x41b5ebbc
144
D/DOMX    ( 7751): ENTER: 
145
D/DOMX    ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_GetConfig:564
146
D/DOMX    ( 7751): TRACE: Recd. omx message
147
D/DOMX    ( 7751): TRACE: Waiting for messages from remote core
148
D/DOMX    ( 7751): EXIT: 
149
D/DOMX    ( 7751): TRACE: Corresponding RPC function executed successfully
150
D/DOMX    ( 7751): EXIT: eError: 0
151
D/DOMX    ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nConfigIndex = 117440522, pConfigStruct = 0x41b5ebbc
152
D/DOMX    ( 7751): ENTER: 
153
D/DOMX    ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_SetConfig:496
154
D/DOMX    ( 7751): TRACE: Recd. omx message
155
D/DOMX    ( 7751): TRACE: Waiting for messages from remote core
156
D/DOMX    ( 7751): EXIT: 
157
D/DOMX    ( 7751): TRACE: Corresponding RPC function executed successfully
158
D/DOMX    ( 7751): EXIT: eError: 0
159
D/DOMX    ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nParamIndex = 33554433, pParamStruct = 0x41b5eb48
160
D/DOMX    ( 7751): ENTER: 
161
D/DOMX    ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_GetParameter:419
162
D/DOMX    ( 7751): TRACE: Recd. omx message
163
D/DOMX    ( 7751): TRACE: Waiting for messages from remote core
164
D/DOMX    ( 7751): EXIT: 
165
D/DOMX    ( 7751): TRACE: Corresponding RPC function executed successfully
166
D/DOMX    ( 7751): EXIT: eError: 0 index: 0x2000001
167
D/DOMX    ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nParamIndex = 2130706522, pParamStruct = 0x41b5eb14
168
I/Process (  189): Sending signal. PID: 7834 SIG: 3
169
D/DOMX    ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_SetParameter:348
170
I/dalvikvm( 7834): threadid=3: reacting to signal 3
171
D/DOMX    ( 7751): TRACE: Recd. omx message
172
D/DOMX    ( 7751): TRACE: Waiting for messages from remote core
173
D/DOMX    ( 7751): EXIT: 
174
D/DOMX    ( 7751): TRACE: Corresponding RPC function executed successfully
175
D/DOMX    ( 7751): EXIT: eError: 0
176
D/DOMX    ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nParamIndex = 33554433, pParamStruct = 0x41b5eb48
177
D/DOMX    ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_SetParameter:348
178
D/DOMX    ( 7751): TRACE: Recd. omx message
179
D/DOMX    ( 7751): TRACE: Waiting for messages from remote core
180
D/DOMX    ( 7751): EXIT: 
181
D/DOMX    ( 7751): TRACE: Corresponding RPC function executed successfully
182
D/DOMX    ( 7751): EXIT: eError: 0
183
D/DOMX    ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nParamIndex = 33554433, pParamStruct = 0x41b5eb48
184
D/DOMX    ( 7751): ENTER: 
185
D/DOMX    ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_GetParameter:419
186
D/DOMX    ( 7751): TRACE: Recd. omx message
187
D/DOMX    ( 7751): TRACE: Waiting for messages from remote core
188
D/DOMX    ( 7751): EXIT: 
189
D/DOMX    ( 7751): TRACE: Corresponding RPC function executed successfully
190
D/DOMX    ( 7751): EXIT: eError: 0 index: 0x2000001
191
D/DOMX    ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nConfigIndex = 117440523, pConfigStruct = 0x41b5ebc0
192
D/DOMX    ( 7751): ENTER: 
193
D/DOMX    ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_GetConfig:564
194
D/DOMX    ( 7751): TRACE: Recd. omx message
195
D/DOMX    ( 7751): TRACE: Waiting for messages from remote core
196
D/DOMX    ( 7751): EXIT: 
197
D/DOMX    ( 7751): TRACE: Corresponding RPC function executed successfully
198
D/DOMX    ( 7751): EXIT: eError: 0
199
D/DOMX    ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nConfigIndex = 117440523, pConfigStruct = 0x41b5ebc0
200
D/DOMX    ( 7751): ENTER: 
201
D/DOMX    ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_SetConfig:496
202
D/DOMX    ( 7751): TRACE: Recd. omx message
203
D/DOMX    ( 7751): TRACE: Waiting for messages from remote core
204
D/DOMX    ( 7751): EXIT: 
205
D/DOMX    ( 7751): TRACE: Corresponding RPC function executed successfully
206
D/DOMX    ( 7751): EXIT: eError: 0
207
D/DOMX    ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nConfigIndex = 117440523, pConfigStruct = 0x41b5ebc0
208
D/DOMX    ( 7751): ENTER: 
209
D/DOMX    ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_GetConfig:564
210
D/DOMX    ( 7751): TRACE: Recd. omx message
211
D/DOMX    ( 7751): TRACE: Waiting for messages from remote core
212
D/DOMX    ( 7751): EXIT: 
213
D/DOMX    ( 7751): TRACE: Corresponding RPC function executed successfully
214
D/DOMX    ( 7751): EXIT: eError: 0
215
D/DOMX    ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nParamIndex = 33554433, pParamStruct = 0x41b5eb48
216
D/DOMX    ( 7751): ENTER: 
217
D/DOMX    ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_GetParameter:419
218
D/DOMX    ( 7751): TRACE: Recd. omx message
219
D/DOMX    ( 7751): TRACE: Waiting for messages from remote core
220
D/DOMX    ( 7751): EXIT: 
221
D/DOMX    ( 7751): TRACE: Corresponding RPC function executed successfully
222
D/DOMX    ( 7751): EXIT: eError: 0 index: 0x2000001
223
D/DOMX    ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nParamIndex = 2130706522, pParamStruct = 0x41b5eb14
224
D/DOMX    ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_SetParameter:348
225
D/DOMX    ( 7751): TRACE: Recd. omx message
226
D/DOMX    ( 7751): TRACE: Waiting for messages from remote core
227
D/DOMX    ( 7751): EXIT: 
228
D/DOMX    ( 7751): TRACE: Corresponding RPC function executed successfully
229
D/DOMX    ( 7751): EXIT: eError: 0
230
D/DOMX    ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nParamIndex = 33554433, pParamStruct = 0x41b5eb48
231
D/DOMX    ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_SetParameter:348
232
D/DOMX    ( 7751): TRACE: Recd. omx message
233
D/DOMX    ( 7751): TRACE: Waiting for messages from remote core
234
D/DOMX    ( 7751): EXIT: 
235
D/DOMX    ( 7751): TRACE: Corresponding RPC function executed successfully
236
D/DOMX    ( 7751): EXIT: eError: 0
237
D/DOMX    ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nParamIndex = 33554433, pParamStruct = 0x41b5eb48
238
D/DOMX    ( 7751): ENTER: 
239
D/DOMX    ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_GetParameter:419
240
D/DOMX    ( 7751): TRACE: Recd. omx message
241
D/DOMX    ( 7751): TRACE: Waiting for messages from remote core
242
D/DOMX    ( 7751): EXIT: 
243
D/DOMX    ( 7751): TRACE: Corresponding RPC function executed successfully
244
D/DOMX    ( 7751): EXIT: eError: 0 index: 0x2000001
245
D/DOMX    ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nParamIndex = 2130706519, pParamStruct = 0x41b5ebfc
246
D/DOMX    ( 7751): ENTER: 
247
D/DOMX    ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_GetParameter:419
248
D/DOMX    ( 7751): TRACE: Recd. omx message
249
D/DOMX    ( 7751): TRACE: Waiting for messages from remote core
250
D/DOMX    ( 7751): EXIT: 
251
D/DOMX    ( 7751): TRACE: Corresponding RPC function executed successfully
252
D/DOMX    ( 7751): EXIT: eError: 0 index: 0x7f000057
253
I/CameraHAL( 7751): Preview not started. Preview in progress flag set
254
D/DOMX    ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, eCmd = 2, nParam = 2, pCmdData = 0x0
255
D/DOMX    ( 7751): ENTER: 
256
D/DOMX    ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_SendCommand:644
257
D/DOMX    ( 7751): TRACE: Recd. omx message
258
D/DOMX    ( 7751): TRACE: Waiting for messages from remote core
259
D/DOMX    ( 7751): EXIT: 
260
D/DOMX    ( 7751): TRACE: Corresponding RPC function executed successfully
261
D/DOMX    ( 7751): EXIT: eError: 0
262
D/DOMX    ( 7751): TRACE: Recd. omx message
263
D/DOMX    ( 7751): ENTER: 
264
D/DOMX    ( 7751): TRACE: 
265
D/DOMX    ( 7751): **__**Got eventhandler from Remote Core succesffuly - values are : **__**
266
D/DOMX    ( 7751): TRACE: hComp :0x154e570,eEvent: 0x0,nData1: 0x2,nData2: 0x2,pEventData: 0x0
267
D/DOMX    ( 7751): TRACE: Just Before Entering Proxy Event handler call
268
D/DOMX    ( 7751): ENTER: hComponent=0x154e570, pCompPrv=0x1556240, eEvent=0x0, nData1=0x2, nData2=0x2, pEventData=0x0
269
D/DOMX    ( 7751): EXIT: eError: 0
270
D/DOMX    ( 7751): EXIT: 
271
D/DOMX    ( 7751): TRACE: Waiting for messages from remote core
272
D/DOMX    ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, eCmd = 0, nParam = 2, pCmdData = 0x0
273
D/DOMX    ( 7751): ENTER: 
274
D/DOMX    ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_SendCommand:644
275
D/DOMX    ( 7751): TRACE: Recd. omx message
276
D/DOMX    ( 7751): TRACE: Waiting for messages from remote core
277
D/DOMX    ( 7751): EXIT: 
278
D/DOMX    ( 7751): TRACE: Corresponding RPC function executed successfully
279
D/DOMX    ( 7751): EXIT: eError: 0
280
I/dalvikvm( 7834): Wrote stack traces to '/data/anr/traces.txt'
281
D/DOMX    ( 7751): TRACE: Recd. omx message
282
D/DOMX    ( 7751): ENTER: 
283
D/DOMX    ( 7751): TRACE: 
284
D/DOMX    ( 7751): **__**Got eventhandler from Remote Core succesffuly - values are : **__**
285
D/DOMX    ( 7751): TRACE: hComp :0x154e570,eEvent: 0x0,nData1: 0x0,nData2: 0x2,pEventData: 0x0
286
D/DOMX    ( 7751): TRACE: Just Before Entering Proxy Event handler call
287
D/DOMX    ( 7751): ENTER: hComponent=0x154e570, pCompPrv=0x1556240, eEvent=0x0, nData1=0x0, nData2=0x2, pEventData=0x0
288
D/DOMX    ( 7751): EXIT: eError: 0
289
D/DOMX    ( 7751): EXIT: 
290
D/DOMX    ( 7751): TRACE: Waiting for messages from remote core
291
D/DOMX    ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, eCmd = 0, nParam = 3, pCmdData = 0x0
292
D/DOMX    ( 7751): ENTER: 
293
D/DOMX    ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_SendCommand:644
294
D/DOMX    ( 7751): TRACE: Recd. omx message
295
D/DOMX    ( 7751): TRACE: Waiting for messages from remote core
296
D/DOMX    ( 7751): TRACE: Recd. omx message
297
D/DOMX    ( 7751): ENTER: 
298
D/DOMX    ( 7751): EXIT: 
299
D/DOMX    ( 7751): TRACE: 
300
D/DOMX    ( 7751): **__**Got eventhandler from Remote Core succesffuly - values are : **__**
301
D/DOMX    ( 7751): TRACE: Corresponding RPC function executed successfully
302
D/DOMX    ( 7751): TRACE: hComp :0x154e570,eEvent: 0x0,nData1: 0x0,nData2: 0x3,pEventData: 0x0
303
D/DOMX    ( 7751): EXIT: eError: 0
304
D/DOMX    ( 7751): TRACE: Just Before Entering Proxy Event handler call
305
D/DOMX    ( 7751): ENTER: hComponent=0x154e570, pCompPrv=0x1556240, eEvent=0x0, nData1=0x0, nData2=0x3, pEventData=0x0
306
D/DOMX    ( 7751): EXIT: eError: 0
307
D/DOMX    ( 7751): EXIT: 
308
D/DOMX    ( 7751): TRACE: Waiting for messages from remote core
309
V/camera  ( 7834): surfaceChanged. w=720. h=960
310
D/DOMX    ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nParamIndex = 33554433, pParamStruct = 0x413a1ad8
311
D/DOMX    ( 7751): ENTER: 
312
D/DOMX    ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_GetParameter:419
313
D/DOMX    ( 7751): TRACE: Recd. omx message
314
D/DOMX    ( 7751): TRACE: Waiting for messages from remote core
315
D/DOMX    ( 7751): EXIT: 
316
D/DOMX    ( 7751): TRACE: Corresponding RPC function executed successfully
317
D/DOMX    ( 7751): EXIT: eError: 0 index: 0x2000001
318
D/DOMX    ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nParamIndex = 33554433, pParamStruct = 0x413a1ad8
319
D/DOMX    ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_SetParameter:348
320
D/DOMX    ( 7751): TRACE: Recd. omx message
321
D/DOMX    ( 7751): TRACE: Waiting for messages from remote core
322
D/DOMX    ( 7751): EXIT: 
323
D/DOMX    ( 7751): TRACE: Corresponding RPC function executed successfully
324
D/DOMX    ( 7751): EXIT: eError: 0
325
D/DOMX    ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nParamIndex = 33554433, pParamStruct = 0x413a1ad8
326
D/DOMX    ( 7751): ENTER: 
327
D/DOMX    ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_GetParameter:419
328
D/DOMX    ( 7751): TRACE: Recd. omx message
329
D/DOMX    ( 7751): TRACE: Waiting for messages from remote core
330
D/DOMX    ( 7751): EXIT: 
331
D/DOMX    ( 7751): TRACE: Corresponding RPC function executed successfully
332
D/DOMX    ( 7751): EXIT: eError: 0 index: 0x2000001
333
D/DOMX    ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nConfigIndex = 117440523, pConfigStruct = 0x413a1b50
334
D/DOMX    ( 7751): ENTER: 
335
D/DOMX    ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_GetConfig:564
336
D/DOMX    ( 7751): TRACE: Recd. omx message
337
D/DOMX    ( 7751): TRACE: Waiting for messages from remote core
338
D/DOMX    ( 7751): EXIT: 
339
D/DOMX    ( 7751): TRACE: Corresponding RPC function executed successfully
340
D/DOMX    ( 7751): EXIT: eError: 0
341
D/DOMX    ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nConfigIndex = 117440523, pConfigStruct = 0x413a1b50
342
D/DOMX    ( 7751): ENTER: 
343
D/DOMX    ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_SetConfig:496
344
D/DOMX    ( 7751): TRACE: Recd. omx message
345
D/DOMX    ( 7751): TRACE: Waiting for messages from remote core
346
D/DOMX    ( 7751): EXIT: 
347
D/DOMX    ( 7751): TRACE: Corresponding RPC function executed successfully
348
D/DOMX    ( 7751): EXIT: eError: 0
349
D/DOMX    ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nConfigIndex = 117440523, pConfigStruct = 0x413a1b50
350
D/DOMX    ( 7751): ENTER: 
351
D/DOMX    ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_GetConfig:564
352
D/DOMX    ( 7751): TRACE: Recd. omx message
353
D/DOMX    ( 7751): TRACE: Waiting for messages from remote core
354
D/DOMX    ( 7751): EXIT: 
355
D/DOMX    ( 7751): TRACE: Corresponding RPC function executed successfully
356
D/DOMX    ( 7751): EXIT: eError: 0
357
D/DOMX    ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nParamIndex = 33554433, pParamStruct = 0x413a1ad8
358
D/DOMX    ( 7751): ENTER: 
359
D/DOMX    ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_GetParameter:419
360
D/DOMX    ( 7751): TRACE: Recd. omx message
361
D/DOMX    ( 7751): EXIT: 
362
D/DOMX    ( 7751): TRACE: Waiting for messages from remote core
363
D/DOMX    ( 7751): TRACE: Corresponding RPC function executed successfully
364
D/DOMX    ( 7751): EXIT: eError: 0 index: 0x2000001
365
D/DOMX    ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nParamIndex = 33554433, pParamStruct = 0x413a1ad8
366
D/DOMX    ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_SetParameter:348
367
D/DOMX    ( 7751): TRACE: Recd. omx message
368
D/DOMX    ( 7751): TRACE: Waiting for messages from remote core
369
D/DOMX    ( 7751): EXIT: 
370
D/DOMX    ( 7751): TRACE: Corresponding RPC function executed successfully
371
D/DOMX    ( 7751): EXIT: eError: 0
372
D/DOMX    ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nParamIndex = 33554433, pParamStruct = 0x413a1ad8
373
D/DOMX    ( 7751): ENTER: 
374
D/DOMX    ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_GetParameter:419
375
D/DOMX    ( 7751): TRACE: Recd. omx message
376
D/DOMX    ( 7751): TRACE: Waiting for messages from remote core
377
D/DOMX    ( 7751): EXIT: 
378
D/DOMX    ( 7751): TRACE: Corresponding RPC function executed successfully
379
D/DOMX    ( 7751): EXIT: eError: 0 index: 0x2000001
380
D/DOMX    ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nConfigIndex = 2130706541, pConfigStruct = 0x413a1b58
381
D/DOMX    ( 7751): ENTER: 
382
D/DOMX    ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_SetConfig:496
383
D/DOMX    ( 7751): TRACE: Recd. omx message
384
D/DOMX    ( 7751): TRACE: Waiting for messages from remote core
385
D/DOMX    ( 7751): EXIT: 
386
D/DOMX    ( 7751): TRACE: Corresponding RPC function executed successfully
387
D/DOMX    ( 7751): EXIT: eError: 0
388
D/DOMX    ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, eCmd = 3, nParam = 2, pCmdData = 0x0
389
D/DOMX    ( 7751): ENTER: 
390
D/DOMX    ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_SendCommand:644
391
D/DOMX    ( 7751): TRACE: Recd. omx message
392
D/DOMX    ( 7751): TRACE: Waiting for messages from remote core
393
D/DOMX    ( 7751): EXIT: 
394
D/DOMX    ( 7751): TRACE: Corresponding RPC function executed successfully
395
D/DOMX    ( 7751): EXIT: eError: 0
396
D/DOMX    ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nParamIndex = 2130706545, pParamStruct = 0x413a1ba0
397
D/DOMX    ( 7751): TRACE: Corresponding RPC function executed successfully
398
D/DOMX    ( 7751): EXIT: eError: 0
399
D/DOMX    ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nPortIndex = 0x2, pAppPrivate = 0x0, nSizeBytes = 1142784, pBuffer = 0x154a580
400
D/DOMX    ( 7751): TRACE: In UB, no. of buffers = 0
401
D/DOMX    ( 7751): TRACE: Preparing buffer to Remote Core...
402
D/DOMX    ( 7751): ENTER: 
403
D/DOMX    ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_GetParameter:419
404
D/DOMX    ( 7751): TRACE: Recd. omx message
405
D/DOMX    ( 7751): TRACE: Waiting for messages from remote core
406
D/DOMX    ( 7751): EXIT: 
407
D/DOMX    ( 7751): TRACE: Corresponding RPC function executed successfully
408
D/DOMX    ( 7751): ERROR: [DBG] eError = 0, line 1037
409
D/DOMX    ( 7751): ENTER: 
410
D/DOMX    ( 7751): ENTER: 
411
D/DOMX    ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_GetParameter:419
412
D/DOMX    ( 7751): TRACE: Recd. omx message
413
D/DOMX    ( 7751): TRACE: Waiting for messages from remote core
414
D/DOMX    ( 7751): EXIT: 
415
D/DOMX    ( 7751): TRACE:  PROXY_UTIL Get Parameter Successful
416
D/DOMX    ( 7751): ENTER: 
417
D/DOMX    ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_GetParameter:419
418
D/DOMX    ( 7751): TRACE: Recd. omx message
419
D/DOMX    ( 7751): TRACE: Waiting for messages from remote core
420
D/DOMX    ( 7751): EXIT: 
421
D/DOMX    ( 7751): TRACE:  PROXY_UTIL Get Parameter Successful
422
D/DOMX    ( 7751): TRACE: Port Number: 2 :: NumOfLines 720
423
D/DOMX    ( 7751): EXIT: eError: 0
424
D/DOMX    ( 7751): ERROR: [DBG] eError = 0, line 1047
425
D/DOMX    ( 7751): ENTER: hComponent = 0x154e570, pCompPrv = 0x1556240, nParamIndex = 2130706550, pParamStruct = 0x413a1b34
426
D/DOMX    ( 7751): ENTER: 
427
D/DOMX    ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_GetParameter:419
428
D/DOMX    ( 7751): TRACE: Recd. omx message
429
D/DOMX    ( 7751): TRACE: Waiting for messages from remote core
430
D/DOMX    ( 7751): EXIT: 
431
D/DOMX    ( 7751): TRACE: Corresponding RPC function executed successfully
432
D/DOMX    ( 7751): EXIT: eError: 0 index: 0x7f000076
433
D/DOMX    ( 7751): ERROR: [DBG] eError = 0, line 1116
434
D/DOMX    ( 7751): TRACE: Metadata size = 12332
435
D/DOMX    ( 7751): TRACE: ion_fd=70
436
D/DOMX    ( 7751): TRACE: ION being USED for allocation!!!!! handle = c3e30380, ret =0
437
D/DOMX    ( 7751): ERROR: [DBG] eError = 0, line 1130
438
D/DOMX    ( 7751): TRACE: Metadata buffer ion handle = c3e30380
439
D/DOMX    ( 7751): ENTER: 
440
D/DOMX    ( 7751): TRACE: Marshaling data
441
D/DOMX    ( 7751): TRACE: eMapInfo = 3
442
D/DOMX    ( 7751): TRACE: UV buffer fd= 3141592
443
D/DOMX    ( 7751): TRACE: Metadata buffer = c3e30380
444
D/DOMX    ( 7751): TRACE: About to send packet
445
D/DOMX    ( 7751): TRACE: RPC_sendPacket_sync hCtx->fd_omx=26|nPacketSize=240
446
D/DOMX    ( 7751): ERROR: [DBG] RPC_sendPacket_sync RPC_UseBuffer:1080
447
D/DOMX    ( 7751): ERROR: [DBG] RPC_sendPacket_sync write errno error 22
448
D/DOMX    ( 7751): ERROR: DOMX Write failed 0xffffffff -1
449
D/DOMX    ( 7751): ERROR: failed check:status >= 0 - returning error: 0x81001 - Write failed
450
D/DOMX    ( 7751): EXIT: 
451
D/DOMX    ( 7751): ERROR: RPC function returned error 0x81001
452
D/DOMX    ( 7751): TRACE: Use Buffer Successful
453
D/DOMX    ( 7751): TRACE: Value of pBufHeaderRemote: 0x0 LocalBufferHdr :0x15714e8, LocalBuffer :0x154a580
454
D/DOMX    ( 7751): TRACE: Metadata buffer ion handle given to ion map = c3e30380
455
D/DOMX    ( 7751): TRACE: Updating no. of buffer to 1
456
D/DOMX    ( 7751): ERROR: [DBG] eError = -2147479551, line 1192
457
D/DOMX    ( 7751): EXIT: eError: -2147479551
458
E/CameraHAL( 7751): OMX_UseBuffer-0x80001001
459
E/CameraHAL( 7751): Exiting function UseBuffersPreview because of ret 0 eError=80001001
460
D/DOMX    ( 7751): ENTER: hComponent = 0x154e570
461
E/ion     ( 7751): ioctl -1073460991 failed with code -1: Bad file number
462
F/libc    ( 7751): @@@ ABORTING: INVALID HEAP ADDRESS IN dlfree
463
F/libc    ( 7751): Fatal signal 11 (SIGSEGV) at 0xdeadbaad (code=1)
464
I/Process (  189): Sending signal. PID: 7834 SIG: 3
465
I/dalvikvm( 7834): threadid=3: reacting to signal 3
466
I/dalvikvm( 7834): Wrote stack traces to '/data/anr/traces.txt'
467
I/DEBUG   (  127): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
468
I/DEBUG   (  127): Build fingerprint: 'google/yakju/maguro:4.0.4/IMM76I/330937:user/release-keys'
469
I/DEBUG   (  127): pid: 7751, tid: 7758  >>> /system/bin/mediaserver <<<
470
I/DEBUG   (  127): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr deadbaad
471
I/DEBUG   (  127):  r0 deadbaad  r1 00000001  r2 a0000000  r3 00000000
472
I/DEBUG   (  127):  r4 00000000  r5 00000027  r6 401342f4  r7 401424d4
473
I/DEBUG   (  127):  r8 01571540  r9 40fe1000  10 0155f9a0  fp 01570e5c
474
I/DEBUG   (  127):  ip ffffffff  sp 413a19c0  lr 40115441  pc 40111788  cpsr 600f0030
475
I/DEBUG   (  127):  d0  656c696620646120  d1  373565343531786e
476
I/DEBUG   (  127):  d2  6c202c3135353975  d3  3239313120656e6d
477
I/DEBUG   (  127):  d4  7264487265666675  d5  3137353178303a20
478
I/DEBUG   (  127):  d6  636f4c202c386534  d7  7265666675426c61
479
I/DEBUG   (  127):  d8  0000000000000000  d9  0000000000000000
480
I/DEBUG   (  127):  d10 0000000000000000  d11 0000000000000000
481
I/DEBUG   (  127):  d12 0000000000000000  d13 0000000000000000
482
I/DEBUG   (  127):  d14 0000000000000000  d15 0000000000000000
483
I/DEBUG   (  127):  d16 3f7316d1d399f1e0  d17 3ffd42315763b9eb
484
I/DEBUG   (  127):  d18 4000000000000000  d19 3fc5ee7544e230aa
485
I/DEBUG   (  127):  d20 3f1152f62f5a4167  d21 bebbb7b7df4a3093
486
I/DEBUG   (  127):  d22 3ff0000000000000  d23 3ff316d1d399f1e0
487
I/DEBUG   (  127):  d24 3e66376972bea4d0  d25 3fee147ae0000000
488
I/DEBUG   (  127):  d26 0000000000000000  d27 0000000000000000
489
I/DEBUG   (  127):  d28 0000000000000000  d29 0000000000000000
490
I/DEBUG   (  127):  d30 0000000000000000  d31 0000000000000000
491
I/DEBUG   (  127):  scr 68000010
492
I/DEBUG   (  127): 
493
I/DEBUG   (  127):          #00  pc 00017788  /system/lib/libc.so
494
I/DEBUG   (  127):          #01  pc 00013732  /system/lib/libc.so
495
I/DEBUG   (  127):          #02  pc 00015a70  /system/lib/libc.so (dlfree)
496
I/DEBUG   (  127):          #03  pc 00016100  /system/lib/libc.so (free)
497
I/DEBUG   (  127):          #04  pc 000019e6  /system/lib/libmm_osal.so (TIMM_OSAL_Free)
498
I/DEBUG   (  127):          #05  pc 00006446  /system/lib/libdomx.so (PROXY_ComponentDeInit)
499
I/DEBUG   (  127):          #06  pc 000018ec  /system/lib/libOMX.TI.DUCATI1.VIDEO.CAMERA.so
500
I/DEBUG   (  127):          #07  pc 00001df6  /system/lib/libOMX_Core.so (OMX_FreeHandle)
501
I/DEBUG   (  127):          #08  pc 000284fc  /system/lib/hw/camera.omap4.so (_ZN7android16OMXCameraAdapter24performCleanupAfterErrorEv)
502
I/DEBUG   (  127):          #09  pc 0002b04e  /system/lib/hw/camera.omap4.so (_ZN7android16OMXCameraAdapter17UseBuffersPreviewEPvi)
503
I/DEBUG   (  127):          #10  pc 0002b182  /system/lib/hw/camera.omap4.so (_ZN7android16OMXCameraAdapter10useBuffersENS_13CameraAdapter10CameraModeEPvijj)
504
I/DEBUG   (  127):          #11  pc 00024c4c  /system/lib/hw/camera.omap4.so (_ZN7android17BaseCameraAdapter11sendCommandENS_13CameraAdapter14CameraCommandsEiii)
505
I/DEBUG   (  127):          #12  pc 0001d3d0  /system/lib/hw/camera.omap4.so (_ZN7android9CameraHal12startPreviewEv)
506
I/DEBUG   (  127):          #13  pc 0001d6de  /system/lib/hw/camera.omap4.so (_ZN7android9CameraHal16setPreviewWindowEP18preview_stream_ops)
507
I/DEBUG   (  127):          #14  pc 0001ae80  /system/lib/hw/camera.omap4.so (_Z25camera_set_preview_windowP13camera_deviceP18preview_stream_ops)
508
I/DEBUG   (  127):          #15  pc 000076cc  /system/lib/libcameraservice.so
509
I/DEBUG   (  127):          #16  pc 000091b4  /system/lib/libcameraservice.so (_ZN7android13CameraService6Client16setPreviewWindowERKNS_2spINS_7IBinderEEERKNS2_I13ANativeWindowEE)
510
I/DEBUG   (  127):          #17  pc 000092ea  /system/lib/libcameraservice.so (_ZN7android13CameraService6Client17setPreviewDisplayERKNS_2spINS_7SurfaceEEE)
511
I/DEBUG   (  127):          #18  pc 00013592  /system/lib/libcamera_client.so (_ZN7android8BnCamera10onTransactEjRKNS_6ParcelEPS1_j)
512
I/DEBUG   (  127):          #19  pc 00017f44  /system/lib/libbinder.so (_ZN7android7BBinder8transactEjRKNS_6ParcelEPS1_j)
513
I/DEBUG   (  127):          #20  pc 0001b26e  /system/lib/libbinder.so (_ZN7android14IPCThreadState14executeCommandEi)
514
I/DEBUG   (  127):          #21  pc 0001b44a  /system/lib/libbinder.so (_ZN7android14IPCThreadState14joinThreadPoolEb)
515
I/DEBUG   (  127):          #22  pc 00020744  /system/lib/libbinder.so
516
I/DEBUG   (  127):          #23  pc 00022a1e  /system/lib/libutils.so (_ZN7android6Thread11_threadLoopEPv)
517
I/DEBUG   (  127):          #24  pc 00023064  /system/lib/libutils.so
518
I/DEBUG   (  127):          #25  pc 00012e2c  /system/lib/libc.so (__thread_entry)
519
I/DEBUG   (  127):          #26  pc 0001295c  /system/lib/libc.so (pthread_create)
520
I/DEBUG   (  127): 
521
I/DEBUG   (  127): code around pc:
522
I/DEBUG   (  127): 40111768 4623b15c 2c006824 e026d1fb b12368db  \.#F$h.,..&..h#.
523
I/DEBUG   (  127): 40111778 21014a17 6011447a 48124798 24002527  .J.!zD.`.G.H'%.$
524
I/DEBUG   (  127): 40111788 f7f47005 2106ef8c e838f7f6 460aa901  .p.....!..8....F
525
I/DEBUG   (  127): 40111798 f04f2006 94015380 94029303 ebe4f7f5  . O..S..........
526
I/DEBUG   (  127): 401117a8 4622a905 f7f52002 f7f4ebee 2106ef78  .."F. ......x..!
527
I/DEBUG   (  127): 
528
I/DEBUG   (  127): code around lr:
529
I/DEBUG   (  127): 40115420 41f0e92d 46804c0c 447c2600 68a56824  -..A.L.F.&|D$h.h
530
I/DEBUG   (  127): 40115430 e0076867 300cf9b5 dd022b00 47c04628  gh.....0.+..(F.G
531
I/DEBUG   (  127): 40115440 35544306 37fff117 6824d5f4 d1ee2c00  .CT5...7..$h.,..
532
I/DEBUG   (  127): 40115450 e8bd4630 bf0081f0 000280be 41f0e92d  0F..........-..A
533
I/DEBUG   (  127): 40115460 fb01b086 9004f602 461f4815 4615460c  .........H.F.F.F
534
I/DEBUG   (  127): 
535
I/DEBUG   (  127): memory map around addr deadbaad:
536
I/DEBUG   (  127): bede2000-bee03000 [stack]
537
I/DEBUG   (  127): (no map for address)
538
I/DEBUG   (  127): ffff0000-ffff1000 [vectors]
539
I/DEBUG   (  127): 
540
I/DEBUG   (  127): stack:
541
I/DEBUG   (  127):     413a1980  00000001  
542
I/DEBUG   (  127):     413a1984  413a19c0  
543
I/DEBUG   (  127):     413a1988  4013d7e0  /system/lib/libc.so
544
I/DEBUG   (  127):     413a198c  0000000c  
545
I/DEBUG   (  127):     413a1990  4013d780  /system/lib/libc.so
546
I/DEBUG   (  127):     413a1994  4013d718  /system/lib/libc.so
547
I/DEBUG   (  127):     413a1998  00000000  
548
I/DEBUG   (  127):     413a199c  40115441  /system/lib/libc.so
549
I/DEBUG   (  127):     413a19a0  00000000  
550
I/DEBUG   (  127):     413a19a4  413a19d4  
551
I/DEBUG   (  127):     413a19a8  401342f4  /system/lib/libc.so
552
I/DEBUG   (  127):     413a19ac  401424d4  
553
I/DEBUG   (  127):     413a19b0  01571540  [heap]
554
I/DEBUG   (  127):     413a19b4  401145ad  /system/lib/libc.so
555
I/DEBUG   (  127):     413a19b8  df0027ad  
556
I/DEBUG   (  127):     413a19bc  00000000  
557
I/DEBUG   (  127): #00 413a19c0  413a19bc  
558
I/DEBUG   (  127):     413a19c4  00000001  
559
I/DEBUG   (  127):     413a19c8  401342d8  /system/lib/libc.so
560
I/DEBUG   (  127):     413a19cc  00000005  
561
I/DEBUG   (  127):     413a19d0  413a19ec  
562
I/DEBUG   (  127):     413a19d4  fffffbdf  
563
I/DEBUG   (  127):     413a19d8  413a19ec  
564
I/DEBUG   (  127):     413a19dc  413a19ec  
565
I/DEBUG   (  127):     413a19e0  401377f4  /system/lib/libc.so
566
I/DEBUG   (  127):     413a19e4  4010d737  /system/lib/libc.so
567
I/DEBUG   (  127): #01 413a19e8  01571560  [heap]
568
I/DEBUG   (  127):     413a19ec  20404040  
569
I/DEBUG   (  127):     413a19f0  524f4241  
570
I/DEBUG   (  127):     413a19f4  474e4954  
571
I/DEBUG   (  127):     413a19f8  4e49203a  
572
I/DEBUG   (  127):     413a19fc  494c4156  
573
I/DEBUG   (  127):     413a1a00  45482044  
574
I/DEBUG   (  127):     413a1a04  41205041  /dev/snd/pcmC0D0p
575
I/DEBUG   (  127):     413a1a08  45524444  
576
I/DEBUG   (  127):     413a1a0c  49205353  
577
I/DEBUG   (  127):     413a1a10  6c64204e  
578
I/DEBUG   (  127):     413a1a14  65657266  
579
I/DEBUG   (  127):     413a1a18  00000000  
580
I/DEBUG   (  127):     413a1a1c  17f80cb3  
581
I/DEBUG   (  127):     413a1a20  00000000  
582
I/DEBUG   (  127):     413a1a24  00000060  
583
I/DEBUG   (  127):     413a1a28  40fa4b13  /system/lib/libdomx.so
584
I/DEBUG   (  127):     413a1a2c  40fa7c7d  /system/lib/libdomx.so
585
I/DEBUG   (  127):     413a1a30  00000020  
586
I/DEBUG   (  127):     413a1a34  40f95340  /system/lib/libmm_osal.so
587
I/DEBUG   (  127):     413a1a38  ffffffff  
588
I/DEBUG   (  127):     413a1a3c  02000001  
589
I/DEBUG   (  127):     413a1a40  000000fb  
590
I/DEBUG   (  127):     413a1a44  401424d4  
591
I/DEBUG   (  127):     413a1a48  01571568  [heap]
592
I/DEBUG   (  127):     413a1a4c  00000000  
593
I/DEBUG   (  127):     413a1a50  00000000  
594
I/DEBUG   (  127):     413a1a54  401424d4  
595
I/DEBUG   (  127):     413a1a58  7f000076  
596
I/DEBUG   (  127):     413a1a5c  4010ec25  /system/lib/libc.so
597
I/DEBUG   (  127):     413a1a60  01571560  [heap]
598
I/DEBUG   (  127):     413a1a64  01571658  [heap]
599
I/DEBUG   (  127):     413a1a68  000000fb  
600
I/DEBUG   (  127):     413a1a6c  401424d4  
601
I/DEBUG   (  127):     413a1a70  01571568  [heap]
602
I/DEBUG   (  127):     413a1a74  00000000  
603
I/DEBUG   (  127):     413a1a78  8060f290  
604
I/DEBUG   (  127):     413a1a7c  401424d4  
605
I/DEBUG   (  127):     413a1a80  00000002  
606
I/DEBUG   (  127):     413a1a84  4010ec25  /system/lib/libc.so
607
I/DEBUG   (  127):     413a1a88  01571560  [heap]
608
I/DEBUG   (  127):     413a1a8c  01571658  [heap]
609
I/DEBUG   (  127):     413a1a90  00006288  
610
I/DEBUG   (  127):     413a1a94  401424d4  
611
I/DEBUG   (  127):     413a1a98  01571568  [heap]
612
I/DEBUG   (  127):     413a1a9c  0157157c  [heap]
613
I/DEBUG   (  127):     413a1aa0  00000002  
614
I/DEBUG   (  127):     413a1aa4  4010fa89  /system/lib/libc.so
615
I/DEBUG   (  127):     413a1aa8  015714e8  [heap]
616
I/DEBUG   (  127):     413a1aac  01571568  [heap]
617
I/DEBUG   (  127):     413a1ab0  80001001  
618
I/DEBUG   (  127):     413a1ab4  00000003  
619
I/DEBUG   (  127):     413a1ab8  00000046  
620
I/DEBUG   (  127):     413a1abc  413a1acc  
621
I/DEBUG   (  127):     413a1ac0  015714e0  [heap]
622
I/DEBUG   (  127):     413a1ac4  01571538  [heap]
623
I/DEBUG   (  127):     413a1ac8  00006308  
624
I/DEBUG   (  127):     413a1acc  401424d4  
625
I/DEBUG   (  127):     413a1ad0  015714e8  [heap]
626
I/DEBUG   (  127):     413a1ad4  40fa8ae1  /system/lib/libdomx.so
627
I/DEBUG   (  127):     413a1ad8  40143280  
628
I/DEBUG   (  127):     413a1adc  4011c8ad  /system/lib/libc.so
629
I/DEBUG   (  127):     413a1ae0  01556240  [heap]
630
I/DEBUG   (  127):     413a1ae4  01556240  [heap]
631
I/DEBUG   (  127):     413a1ae8  00000000  
632
I/DEBUG   (  127):     413a1aec  17f80cb3  
633
I/DEBUG   (  127):     413a1af0  01571538  [heap]
634
I/DEBUG   (  127):     413a1af4  01556240  [heap]
635
I/DEBUG   (  127):     413a1af8  00000000  
636
I/DEBUG   (  127):     413a1afc  4010fa75  /system/lib/libc.so
637
I/Process (  189): Sending signal. PID: 7834 SIG: 3
638
I/dalvikvm( 7834): threadid=3: reacting to signal 3
639
I/dalvikvm( 7834): Wrote stack traces to '/data/anr/traces.txt'
640
W/AudioTrack( 7751): obtainBuffer timed out (is the CPU pegged?) 0x154a940 user=00150740, server=0014f800
641
I/Process (  189): Sending signal. PID: 7834 SIG: 3
642
I/dalvikvm( 7834): threadid=3: reacting to signal 3
643
I/dalvikvm( 7834): Wrote stack traces to '/data/anr/traces.txt'
644
I/Process (  189): Sending signal. PID: 7834 SIG: 3
645
I/dalvikvm( 7834): threadid=3: reacting to signal 3
646
I/dalvikvm( 7834): Wrote stack traces to '/data/anr/traces.txt'
647
W/AudioTrack( 7751): obtainBuffer timed out (is the CPU pegged?) 0x154a940 user=00150740, server=0014f800
648
I/Process (  189): Sending signal. PID: 7834 SIG: 3
649
I/dalvikvm( 7834): threadid=3: reacting to signal 3
650
I/dalvikvm( 7834): Wrote stack traces to '/data/anr/traces.txt'
651
I/Process (  189): Sending signal. PID: 7834 SIG: 3
652
I/dalvikvm( 7834): threadid=3: reacting to signal 3
653
I/dalvikvm( 7834): Wrote stack traces to '/data/anr/traces.txt'
654
W/AudioTrack( 7751): obtainBuffer timed out (is the CPU pegged?) 0x154a940 user=00150740, server=0014f800
655
I/Process (  189): Sending signal. PID: 7834 SIG: 3
656
I/dalvikvm( 7834): threadid=3: reacting to signal 3
657
I/dalvikvm( 7834): Wrote stack traces to '/data/anr/traces.txt'
658
W/AudioSystem(  189): AudioFlinger server died!
659
W/AudioSystem(  189): AudioPolicyService server died!
660
I/ServiceManager(  122): service 'media.audio_flinger' died
661
I/ServiceManager(  122): service 'media.player' died
662
I/ServiceManager(  122): service 'media.camera' died
663
I/ServiceManager(  122): service 'media.audio_policy' died
664
W/IMediaDeathNotifier(  723): media server died
665
E/MediaPlayer(  723): error (100, 0)
666
W/Camera  ( 7834): Camera server died!
667
W/Camera  ( 7834): ICamera died
668
E/MediaPlayer(  723): Error (100,0)
669
E/VanillaMusic(  723): MediaPlayer error: 100 0
670
I/ActivityManager(  189): Displayed com.android.camera/.Camera: +4s446ms
671
D/CameraStorage( 7834): External storage state=mounted
672
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)
673
E/Camera  ( 7834): Error 100
674
E/CameraErrorCallback( 7834): Got camera error callback. error=100
675
D/AndroidRuntime( 7834): Shutting down VM
676
W/dalvikvm( 7834): threadid=1: thread exiting with uncaught exception (group=0x40a411f8)
677
I/        ( 7873): ServiceManager: 0x959958
678
E/SRS-Client( 7873): OpenClient_RILD
679
D/SRS-Client( 7873): Unsolicited handler isn't implemented yet!
680
I/AudioFlinger( 7873): Loaded primary audio interface from Tuna audio HW HAL (audio)
681
I/AudioFlinger( 7873): Using 'Tuna audio HW HAL' (audio.primary) as the primary audio interface
682
I/AudioFlinger( 7873): Loaded a2dp audio interface from A2DP Audio HW HAL (audio)
683
I/CameraService( 7873): CameraService started (pid=7873)
684
I/AudioFlinger( 7873): AudioFlinger's thread 0x960400 ready to run
685
I/AudioPolicyService( 7873): Loaded audio policy from LEGACY Audio Policy HAL (audio_policy)
686
I/Process (  189): Sending signal. PID: 7834 SIG: 3
687
I/dalvikvm( 7834): threadid=3: reacting to signal 3
688
I/dalvikvm( 7834): Wrote stack traces to '/data/anr/traces.txt'
689
E/AudioService(  189): Media server died.
690
E/AudioService(  189): Media server started.
691
W/AudioPolicyManagerBase( 7873): setPhoneState() setting same state 0
692
</pre>
693 5 Denis 'GNUtoo' Carikli
694
The interesting part in all that noise is the following:
695
<pre>
696
D/DOMX    ( 7751): ERROR: [DBG] RPC_sendPacket_sync write errno error 22
697
D/DOMX    ( 7751): ERROR: DOMX Write failed 0xffffffff -1
698
</pre>
699
Basically write fails at:
700
<pre>
701
#define RPC_sendPacket_sync(hCtx, pPacket, nPacketSize, nFxnIdx, pRetPacket, nSize) do { \
702
    DOMX_ERROR("[DBG] RPC_sendPacket_sync %s:%d",__func__,__LINE__); \
703
    status = write(hCtx->fd_omx, pPacket, nPacketSize); \
704 6 Denis 'GNUtoo' Carikli
    if (status == -1){ \
705
        int errsv = errno; \
706
        DOMX_ERROR("[DBG] RPC_sendPacket_sync write errno error %d",errsv); \
707
    } \
708 5 Denis 'GNUtoo' Carikli
    RPC_freePacket(pPacket); \
709
    pPacket = NULL; \
710
    if(status < 0 ) DOMX_ERROR("DOMX Write failed 0x%x %d",status,status); \
711
    RPC_assert(status >= 0, RPC_OMX_ErrorUndefined, "Write failed"); \
712
    eError = TIMM_OSAL_ReadFromPipe(hCtx->pMsgPipe[nFxnIdx], &pRetPacket, \
713
        RPC_MSG_SIZE_FOR_PIPE, (TIMM_OSAL_U32 *)(&nSize), TIMM_OSAL_SUSPEND); \
714
    RPC_assert(eError == TIMM_OSAL_ERR_NONE, eError, \
715
        "Read failed"); \
716
    } while(0)
717
</pre>
718 13 Denis 'GNUtoo' Carikli
That means that a normal unix write to /dev/rpmsg-omx1 fails with EINVAL.
719 7 Denis 'GNUtoo' Carikli
Which produces something like that in the kernel when the powervr kernel driver is there but the non-free userland is not.
720
<pre>
721 12 Denis 'GNUtoo' Carikli
root@android:/ # dmesg                                                         
722
<6>[  105.768157] max17040 4-0036: online = 1 vcell = 4200000 soc = 100 status = 4 health = 1 temp = 380 charger status = 1
723
<6>[  108.557067] request_suspend_state: wakeup (3->0) at 108550701674 (2012-11-02 19:41:27.498122569 UTC)
724
<6>[  108.558135] DSSCOMP: dsscomp_late_resume
725
<6>[  109.513000] vibrator: value=20, pwmval=127
726
<6>[  109.872772] vibrator: value=20, pwmval=127
727
<6>[  110.213806] vibrator: value=20, pwmval=127
728
<6>[  110.543334] omap-iommu omap-iommu.0: iommu_get: ducati qos_request
729
<4>[  110.557281] omap_hwmod: ipu: failed to hardreset
730
<6>[  110.560150] omap-iommu omap-iommu.0: ducati: version 2.1
731
<6>[  110.733123] sr_class1p5_calib_work: core: Calibration complete: Voltage:Nominal=1250000,Calib=1038160,margin=13000
732
<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]
733
<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]
734
<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]
735
<6>[  114.291107] binder: release 138:532 transaction 8079 in, still active
736
<6>[  114.291168] binder: send failed reply for transaction 8079 to 814:814
737
<4>[  116.686065] sr_class1p5_calib_work: iva Stop sampling: Voltage Nominal=950000 samples=18
738
<6>[  116.686309] sr_class1p5_calib_work: iva: Calibration complete: Voltage:Nominal=950000,Calib=860920,margin=13000
739
<3>[  119.851684] omap-rproc omap-rproc.1: rproc_watchdog_isr
740
<6>[  119.851959] omap_rproc_dump_registers: REGISTER DUMP FOR REMOTEPROC ipu
741
<6>[  119.852264] omap_rproc_dump_registers: PC is at 002a5006
742
<6>[  119.852416] omap_rproc_dump_registers: LR is at 002a5007
743
<6>[  119.852722] omap_rproc_dump_registers: pc : [<002a5006>]    lr : [<002a5007>]    psr: 61000000
744
<6>[  119.852752] sp : 806041e8  ip : 806041a8  fp : 802b839c
745
<6>[  119.853210] omap_rproc_dump_registers: r10: 802a5f27  r9 : 0000804f  r8 : 00000000
746
<6>[  119.853515] omap_rproc_dump_registers: r7 : 00000137  r6 : 00000000  r5 : 80604214  r4 : 00254a3c
747
<6>[  119.853698] omap_rproc_dump_registers: r3 : 00000000  r2 : 9f070000  r1 : 00000010  r0 : 00000000
748
<6>[  119.854003] omap_rproc_dump_registers: Flags: nZCv  IRQs on  FIQs on
749
<6>[  119.854675] _event_notify: remoteproc: ipu has crashed
750
<3>[  119.854827] rpmsg_rproc_error: Fatal error in ipu
751
<3>[  119.855133] rpmsg_rproc_error: Fatal error in ipu
752
<3>[  119.855316] rpmsg_reset_work: reseting virtio device 0
753
<6>[  119.855682] rpmsg_resmgr rpmsg0: Enter rprm_remove
754
<6>[  119.862121] rpmsg_omx rpmsg-omx0: rpmsg omx driver is removed
755
<3>[  119.866668] rpmsg_reset_work: reseting virtio device 1
756
<6>[  119.866912] rpmsg_resmgr rpmsg2: Enter rprm_remove
757
<6>[  119.868988] rpmsg_omx rpmsg-omx1: rpmsg omx driver is removed
758
<4>[  119.870544] rproc_reset_poolmem: invalid pool
759
<6>[  119.870819] omap-rproc omap-rproc.1: stopped remote processor ipu
760
<6>[  119.873626] omap-rproc omap-rproc.1: powering up ipu
761
<6>[  119.873962] virtio_rpmsg_bus virtio2: rpmsg backend virtproc probed successfully
762
<6>[  119.874877] virtio_rpmsg_bus virtio3: rpmsg backend virtproc probed successfully
763
<6>[  119.915710] omap-rproc omap-rproc.1: Loaded BIOS image ducati-m3.bin, size 4511300
764
<6>[  119.915893] omap-rproc omap-rproc.1: BIOS image version is 2
765
<6>[  119.927490] omap-iommu omap-iommu.0: iommu_get: ducati qos_request
766
<4>[  119.941894] omap_hwmod: ipu: failed to hardreset
767
<6>[  119.943176] omap-iommu omap-iommu.0: ducati: version 2.1
768
<6>[  119.952117] omap-rproc omap-rproc.1: remote processor ipu is now up
769
<6>[  119.965270] omap_rpmsg_mbox_callback: received echo reply from ipu !
770
<6>[  119.965393] omap_rpmsg_mbox_callback: received echo reply from ipu !
771
<6>[  119.965545] omap_rpmsg_mbox_callback: received echo reply from ipu !
772
<6>[  119.965637] omap_rpmsg_mbox_callback: received echo reply from ipu !
773
<6>[  119.965820] virtio_rpmsg_bus virtio2: creating channel rpmsg-client-sample addr 0x32
774
<6>[  119.966125] virtio_rpmsg_bus virtio2: creating channel rpmsg-client-sample addr 0x33
775
<6>[  119.966400] virtio_rpmsg_bus virtio2: creating channel rpmsg-omx addr 0x3c
776
<6>[  119.966827] rpmsg_omx rpmsg-omx0: new OMX connection srv channel: 1024 -> 60!
777
<6>[  121.112823] virtio_rpmsg_bus virtio3: creating channel rpmsg-omx addr 0x3c
778
<6>[  121.116668] rpmsg_omx rpmsg-omx1: new OMX connection srv channel: 1024 -> 60!
779 7 Denis 'GNUtoo' Carikli
</pre>
780 8 Denis 'GNUtoo' Carikli
781
Disabling the pvr driver with:
782
<pre>
783
diff --git a/arch/arm/configs/cyanogenmod_tuna_defconfig b/arch/arm/configs/cyanogenmod_tuna_defconfig
784
index 1a060a2..a9e3990 100644
785
--- a/arch/arm/configs/cyanogenmod_tuna_defconfig
786
+++ b/arch/arm/configs/cyanogenmod_tuna_defconfig
787
@@ -1,6 +1,6 @@
788
 #
789
 # Automatically generated make config: don't edit
790
-# Linux/arm 3.0.34 Kernel Configuration
791
+# Linux/arm 3.0.36 Kernel Configuration
792
 #
793
 CONFIG_ARM=y
794
 CONFIG_HAVE_PWM=y
795
@@ -70,6 +70,7 @@ CONFIG_GENERIC_IRQ_CHIP=y
796
 # RCU Subsystem
797
 #
798
 CONFIG_TREE_PREEMPT_RCU=y
799
+# CONFIG_TINY_RCU is not set
800
 CONFIG_PREEMPT_RCU=y
801
 # CONFIG_RCU_TRACE is not set
802
 CONFIG_RCU_FANOUT=32
803
@@ -583,6 +584,8 @@ CONFIG_INET_DIAG=y
804
 CONFIG_INET_TCP_DIAG=y
805
 # CONFIG_TCP_CONG_ADVANCED is not set
806
 CONFIG_TCP_CONG_CUBIC=y
807
+# CONFIG_DEFAULT_CUBIC is not set
808
+# CONFIG_DEFAULT_RENO is not set
809
 CONFIG_DEFAULT_TCP_CONG="cubic"
810
 # CONFIG_TCP_MD5SIG is not set
811
 CONFIG_IPV6=y
812
@@ -785,6 +788,9 @@ CONFIG_IP6_NF_RAW=y
813
 # CONFIG_BRIDGE_NF_EBTABLES is not set
814
 # CONFIG_IP_DCCP is not set
815
 # CONFIG_IP_SCTP is not set
816
+# CONFIG_SCTP_HMAC_NONE is not set
817
+# CONFIG_SCTP_HMAC_SHA1 is not set
818
+# CONFIG_SCTP_HMAC_MD5 is not set
819
 # CONFIG_RDS is not set
820
 # CONFIG_TIPC is not set
821
 # CONFIG_ATM is not set
822
@@ -917,6 +923,8 @@ CONFIG_CFG80211_DEFAULT_PS=y
823
 # CONFIG_LIB80211 is not set
824
 CONFIG_CFG80211_ALLOW_RECONNECT=y
825
 # CONFIG_MAC80211 is not set
826
+# CONFIG_MAC80211_RC_DEFAULT_PID is not set
827
+# CONFIG_MAC80211_RC_DEFAULT_MINSTREL is not set
828
 # CONFIG_WIMAX is not set
829
 CONFIG_RFKILL=y
830
 CONFIG_RFKILL_PM=y
831
@@ -1204,6 +1212,9 @@ CONFIG_WLAN=y
832
 # CONFIG_USB_NET_RNDIS_WLAN is not set
833
 CONFIG_WIFI_CONTROL_FUNC=y
834
 # CONFIG_ATH_COMMON is not set
835
+# CONFIG_B43LEGACY_DMA_AND_PIO_MODE is not set
836
+# CONFIG_B43LEGACY_DMA_MODE is not set
837
+# CONFIG_B43LEGACY_PIO_MODE is not set
838
 # CONFIG_BCM4329 is not set
839
 CONFIG_BCMDHD=y
840
 CONFIG_BCMDHD_FW_PATH="/system/vendor/firmware/fw_bcmdhd.bin"
841
@@ -1688,24 +1699,13 @@ CONFIG_TILER_ENABLE_USERSPACE=y
842
 # Graphics support
843
 #
844
 # CONFIG_DRM is not set
845
-CONFIG_PVR_SGX=y
846
-CONFIG_PVR_SGXCORE_540=y
847
-CONFIG_PVR_BUILD_RELEASE=y
848
+# CONFIG_PVR_SGX is not set
849
+# CONFIG_PVR_SGXCORE_540 is not set
850
+# CONFIG_PVR_BUILD_RELEASE is not set
851
 # CONFIG_PVR_BUILD_DEBUG is not set
852
-CONFIG_PVR_NEED_PVR_DPF=y
853
-CONFIG_PVR_NEED_PVR_ASSERT=y
854
-CONFIG_PVR_PERCONTEXT_PB=y
855
-CONFIG_PVR_ACTIVE_POWER_MANAGEMENT=y
856
-CONFIG_PVR_ACTIVE_POWER_LATENCY_MS=100
857
-CONFIG_PVR_SGX_LOW_LATENCY_SCHEDULING=y
858
-CONFIG_PVR_USSE_EDM_STATUS_DEBUG=y
859
-CONFIG_PVR_DUMP_MK_TRACE=y
860
-# CONFIG_PVR_PDUMP is not set
861
-CONFIG_PVR_OMAP_DSS2=y
862
 # CONFIG_SGX_DVFS_MODE_NONE is not set
863
 # CONFIG_SGX_DVFS_MODE_LINEAR is not set
864
-CONFIG_SGX_DVFS_MODE_OPTIMIZED=y
865
-CONFIG_SGX_DVFS_IDLE_TIMEOUT=1000
866
+# CONFIG_SGX_DVFS_MODE_OPTIMIZED is not set
867
 CONFIG_ION=y
868
 CONFIG_ION_OMAP=y
869
 # CONFIG_VGASTATE is not set
870
@@ -1734,10 +1734,13 @@ CONFIG_FB_MODE_HELPERS=y
871
 # Frame buffer hardware drivers
872
 #
873
 # CONFIG_FB_S1D13XXX is not set
874
+# CONFIG_FB_CARMINE_DRAM_EVAL is not set
875
+# CONFIG_CARMINE_DRAM_CUSTOM is not set
876
 # CONFIG_FB_TMIO is not set
877
 # CONFIG_FB_UDL is not set
878
 # CONFIG_FB_VIRTUAL is not set
879
 # CONFIG_FB_METRONOME is not set
880
+# CONFIG_FB_MB862XX_PCI_GDC is not set
881
 # CONFIG_FB_BROADSHEET is not set
882
 CONFIG_HDMI_TI_4XXX_IP=y
883
 CONFIG_SII9234=y
884
@@ -1765,7 +1768,6 @@ CONFIG_FB_OMAP2_NUM_FBS=3
885
 CONFIG_PANEL_S6E8AA0=y
886
 # CONFIG_PANEL_TAAL is not set
887
 CONFIG_COLOR_HACK=y
888
-CONFIG_DSSCOMP=y
889
 CONFIG_DSSCOMP_DEBUG_LOG=y
890
 CONFIG_OMAP4_HDCP=y
891
 # CONFIG_OMAP4_HDCP_DEBUG is not set
892
@@ -2094,6 +2096,12 @@ CONFIG_USB_GADGET_SELECTED=y
893
 # CONFIG_USB_GADGET_R8A66597 is not set
894
 # CONFIG_USB_GADGET_PXA_U2O is not set
895
 # CONFIG_USB_GADGET_M66592 is not set
896
+# CONFIG_USB_GADGET_AMD5536UDC is not set
897
+# CONFIG_USB_GADGET_CI13XXX_PCI is not set
898
+# CONFIG_USB_GADGET_NET2280 is not set
899
+# CONFIG_USB_GADGET_GOKU is not set
900
+# CONFIG_USB_GADGET_LANGWELL is not set
901
+# CONFIG_USB_GADGET_EG20T is not set
902
 # CONFIG_USB_GADGET_DUMMY_HCD is not set
903
 CONFIG_USB_GADGET_DUALSPEED=y
904
 # CONFIG_USB_ZERO is not set
905
@@ -2113,6 +2121,9 @@ CONFIG_USB_G_ANDROID=y
906
 # CONFIG_USB_G_MULTI is not set
907
 # CONFIG_USB_G_HID is not set
908
 # CONFIG_USB_G_DBGP is not set
909
+# CONFIG_USB_G_DBGP_PRINTK is not set
910
+# CONFIG_USB_G_DBGP_SERIAL is not set
911
+# CONFIG_USB_G_WEBCAM is not set
912
 
913
 #
914
 # OTG and related infrastructure
915
@@ -2265,9 +2276,15 @@ CONFIG_ANDROID_LOW_MEMORY_KILLER=y
916
 # CONFIG_USB_SERIAL_QUATECH_USB2 is not set
917
 # CONFIG_VT6656 is not set
918
 # CONFIG_IIO is not set
919
+# CONFIG_LIS3L02DQ_BUF_KFIFO is not set
920
+# CONFIG_LIS3L02DQ_BUF_RING_SW is not set
921
+# CONFIG_AD2S1210_GPIO_INPUT is not set
922
+# CONFIG_AD2S1210_GPIO_OUTPUT is not set
923
+# CONFIG_AD2S1210_GPIO_NONE is not set
924
 # CONFIG_XVMALLOC is not set
925
 # CONFIG_ZRAM is not set
926
 # CONFIG_FB_SM7XX is not set
927
+# CONFIG_EASYCAP_SND is not set
928
 CONFIG_MACH_NO_WESTBRIDGE=y
929
 # CONFIG_ATH6K_LEGACY is not set
930
 # CONFIG_USB_ENESTORAGE is not set
931
@@ -2381,6 +2398,10 @@ CONFIG_MISC_FILESYSTEMS=y
932
 # CONFIG_EFS_FS is not set
933
 # CONFIG_YAFFS_FS is not set
934
 # CONFIG_JFFS2_FS is not set
935
+# CONFIG_JFFS2_CMODE_NONE is not set
936
+# CONFIG_JFFS2_CMODE_PRIORITY is not set
937
+# CONFIG_JFFS2_CMODE_SIZE is not set
938
+# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
939
 # CONFIG_LOGFS is not set
940
 # CONFIG_CRAMFS is not set
941
 # CONFIG_SQUASHFS is not set
942
@@ -2390,6 +2411,9 @@ CONFIG_MISC_FILESYSTEMS=y
943
 # CONFIG_HPFS_FS is not set
944
 # CONFIG_QNX4FS_FS is not set
945
 # CONFIG_ROMFS_FS is not set
946
+# CONFIG_ROMFS_BACKED_BY_BLOCK is not set
947
+# CONFIG_ROMFS_BACKED_BY_MTD is not set
948
+# CONFIG_ROMFS_BACKED_BY_BOTH is not set
949
 # CONFIG_PSTORE is not set
950
 # CONFIG_SYSV_FS is not set
951
 # CONFIG_UFS_FS is not set
952
@@ -2595,6 +2619,10 @@ CONFIG_SECURITY_MIDDLEWARE_COMPONENT=y
953
 # CONFIG_SMC_KERNEL_CRYPTO is not set
954
 CONFIG_SECURE_TRACE=y
955
 # CONFIG_TF_DRIVER_DEBUG_SUPPORT is not set
956
+# CONFIG_DEFAULT_SECURITY_SELINUX is not set
957
+# CONFIG_DEFAULT_SECURITY_SMACK is not set
958
+# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
959
+# CONFIG_DEFAULT_SECURITY_APPARMOR is not set
960
 CONFIG_DEFAULT_SECURITY_DAC=y
961
 CONFIG_DEFAULT_SECURITY=""
962
 CONFIG_CRYPTO=y
963
</pre>
964
965
Didn't fix it.
966 14 Denis 'GNUtoo' Carikli
967
<pre>
968
replicant-4.0/kernel/samsung/tuna/drivers/rpmsg$ grep rpmsg-omx -r *
969
rpmsg_omx.c:					    "rpmsg-omx");
970
rpmsg_omx.c:			"rpmsg-omx%d", minor);
971
rpmsg_omx.c:	{ .name	= "rpmsg-omx" },
972
replicant-4.0/kernel/samsung/tuna/drivers/rpmsg$ grep pvr -r *
973
rpmsg_omx.c:#include "../gpu/pvr/ion.h"
974
rpmsg_omx.c:		struct ion_client *pvr_ion_client;
975 1 Denis 'GNUtoo' Carikli
rpmsg_omx.c:		handle = PVRSRVExportFDToIONHandle(fd, &pvr_ion_client);
976
rpmsg_omx.c:			!ion_phys(pvr_ion_client, handle, &paddr, &unused)) {
977 15 Denis 'GNUtoo' Carikli
</pre>
978
979 17 Denis 'GNUtoo' Carikli
h2. TODO
980 15 Denis 'GNUtoo' Carikli
981
* investigate why the kernel fails without the PVR here:
982
<pre>
983
static u32 _rpmsg_omx_buffer_lookup(struct rpmsg_omx_instance *omx, long buffer)
984
{
985
	phys_addr_t pa;
986
	u32 va;
987
#ifdef CONFIG_ION_OMAP
988
	struct ion_handle *handle;
989
	ion_phys_addr_t paddr;
990
	size_t unused;
991
	int fd;
992
993
	/* is it an ion handle? */
994
	handle = (struct ion_handle *)buffer;
995
	if (!ion_phys(omx->ion_client, handle, &paddr, &unused)) {
996
		pa = (phys_addr_t) paddr;
997
		goto to_va;
998
	}
999
#ifdef CONFIG_PVR_SGX
1000
	/* how about an sgx buffer wrapping an ion handle? */
1001
	{
1002
		struct ion_client *pvr_ion_client;
1003
		fd = buffer;
1004
		handle = PVRSRVExportFDToIONHandle(fd, &pvr_ion_client);
1005
		if (handle &&
1006
			!ion_phys(pvr_ion_client, handle, &paddr, &unused)) {
1007
			pa = (phys_addr_t)paddr;
1008
			goto to_va;
1009
		}
1010
	}
1011
#endif
1012
#endif
1013
	pa = (phys_addr_t) tiler_virt2phys(buffer);
1014
1015
#ifdef CONFIG_ION_OMAP
1016
to_va:
1017
#endif
1018
	va = _rpmsg_pa_to_da(pa);
1019
	return va;
1020
}
1021 14 Denis 'GNUtoo' Carikli
</pre>
1022 16 Denis 'GNUtoo' Carikli
That has to be corelated with:
1023
<pre>
1024
<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]
1025
<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]
1026
<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]
1027
</pre>
1028 18 Denis 'GNUtoo' Carikli
1029
h2. Newer infos from the kernel
1030
1031
<pre>
1032
static ssize_t rpmsg_omx_write(struct file *filp, const char __user *ubuf,
1033
                                                size_t len, loff_t *offp)
1034
{
1035
        struct rpmsg_omx_instance *omx = filp->private_data;
1036
        struct rpmsg_omx_service *omxserv = omx->omxserv;
1037
        char kbuf[512];
1038
        struct omx_msg_hdr *hdr = (struct omx_msg_hdr *) kbuf;
1039
        int use, ret;
1040
1041
        if (omx->state != OMX_CONNECTED)
1042
                return -ENOTCONN;
1043
1044
        /*
1045
         * for now, limit msg size to 512 bytes (incl. header).
1046
         * (note: rpmsg's limit is even tighter. this whole thing needs fixing)
1047
         */
1048
        use = min(sizeof(kbuf) - sizeof(*hdr), len);
1049
1050
        /*
1051
         * copy the data. Later, number of copies can be optimized if found to
1052
         * be significant in real use cases
1053
         */
1054
        if (copy_from_user(hdr->data, ubuf, use))
1055
                return -EMSGSIZE;
1056
1057
        ret = _rpmsg_omx_map_buf(omx, hdr->data);
1058
        if (ret < 0)
1059
                return ret;
1060
1061
        hdr->type = OMX_RAW_MSG;
1062
        hdr->flags = 0;
1063
        hdr->len = use;
1064
1065
        use += sizeof(*hdr);
1066
1067
        ret = rpmsg_send_offchannel(omxserv->rpdev, omx->ept->addr,
1068
                                                omx->dst, kbuf, use);
1069
        if (ret) {
1070
                dev_err(omxserv->dev, "rpmsg_send failed: %d\n", ret);
1071
                return ret;
1072
        }
1073
1074
        return use;
1075
}
1076
</pre>
1077
So it copies the userspace data to hdr->data and passes it to _rpmsg_omx_map_buf
1078
<pre>ret = _rpmsg_omx_map_buf(omx, hdr->data);</pre>
1079
1080
Then _rpmsg_omx_map_buf is like that:
1081
<pre>
1082
static int _rpmsg_omx_map_buf(struct rpmsg_omx_instance *omx, char *packet)
1083
{
1084
	int ret = -EINVAL, offset = 0;
1085
	long *buffer;
1086
	char *data;
1087
	enum rpc_omx_map_info_type maptype;
1088
	u32 da = 0;
1089
1090
	data = (char *)((struct omx_packet *)packet)->data;
1091
	maptype = *((enum rpc_omx_map_info_type *)data);
1092
1093
	/*Nothing to map*/
1094
	if (maptype == RPC_OMX_MAP_INFO_NONE)
1095
		return 0;
1096
	if ((maptype != RPC_OMX_MAP_INFO_THREE_BUF) &&
1097
		(maptype != RPC_OMX_MAP_INFO_TWO_BUF) &&
1098
			(maptype != RPC_OMX_MAP_INFO_ONE_BUF))
1099
		return ret;
1100
1101
	offset = *(int *)((int)data + sizeof(maptype));
1102
	buffer = (long *)((int)data + offset);
1103
1104
	da = _rpmsg_omx_buffer_lookup(omx, *buffer);
1105
	printk("[DBG] [%s] da = %x \n",__func__,da);
1106
	if (da) {
1107
	        printk("[DBG] [%s] inside da\n",__func__);	
1108
		*buffer = da;
1109
		ret = 0;
1110
	}else {
1111
		printk("[DBG] [%s] outside da\n",__func__);
1112
	}
1113
1114
	if (!ret && (maptype >= RPC_OMX_MAP_INFO_TWO_BUF)) {
1115
		buffer = (long *)((int)data + offset + sizeof(*buffer));
1116
		if (*buffer != 0) {
1117
			ret = -EIO;
1118
			da = _rpmsg_omx_buffer_lookup(omx, *buffer);
1119
			if (da) {
1120
				*buffer = da;
1121
				ret = 0;
1122
			}
1123
		}
1124
	}
1125
1126
	if (!ret && maptype >= RPC_OMX_MAP_INFO_THREE_BUF) {
1127
		buffer = (long *)((int)data + offset + 2*sizeof(*buffer));
1128
		if (*buffer != 0) {
1129
			ret = -EIO;
1130
			da = _rpmsg_omx_buffer_lookup(omx, *buffer);
1131
			if (da) {
1132
				*buffer = da;
1133
				ret = 0;
1134
			}
1135
		}
1136
	}
1137
	return ret;
1138
}
1139
</pre>
1140
1141
It calls <pre>da = _rpmsg_omx_buffer_lookup(omx, *buffer);</pre> which is like that:
1142
<pre>
1143
static u32 _rpmsg_omx_buffer_lookup(struct rpmsg_omx_instance *omx, long buffer)
1144
{
1145
	phys_addr_t pa;
1146
	u32 va;
1147
#ifdef CONFIG_ION_OMAP
1148
	struct ion_handle *handle;
1149
	ion_phys_addr_t paddr;
1150
	size_t unused;
1151
	int fd;
1152
1153
	/* is it an ion handle? */
1154
	handle = (struct ion_handle *)buffer;
1155
	printk("[DBG] handle:%x\n",handle);
1156
	if (!ion_phys(omx->ion_client, handle, &paddr, &unused)) {
1157
		printk("[DBG] is ion_phys\n");
1158
		pa = (phys_addr_t) paddr;
1159
		goto to_va;
1160
	}
1161
#if 0
1162
#ifdef CONFIG_PVR_SGX
1163
	printk("[DBG] INSIDE CONFIG_PVR_SGX\n");
1164
	/* how about an sgx buffer wrapping an ion handle? */
1165
	{
1166
		struct ion_client *pvr_ion_client;
1167
		fd = buffer;
1168
		handle = PVRSRVExportFDToIONHandle(fd, &pvr_ion_client);
1169
		printk("[DBG] [INSIDE CONFIG_PVR_SGX] handle:%x\n",handle);
1170
		if (handle &&
1171
			!ion_phys(pvr_ion_client, handle, &paddr, &unused)) {
1172
			printk("[DBG] [INSIDE CONFIG_PVR_SGX] goto to_va\n");
1173
			pa = (phys_addr_t)paddr;
1174
			goto to_va;
1175
		}
1176
	}
1177
#endif
1178
#endif
1179
#endif
1180
	printk("[DBG] [after CONFIG_PVR_SGX]\n");
1181
	pa = (phys_addr_t) tiler_virt2phys(buffer);
1182
	printk("[DBG] [after CONFIG_PVR_SGX] pa = %x \n");
1183
1184
#ifdef CONFIG_ION_OMAP
1185
to_va:
1186
#endif
1187
	printk("[DBG] [to_va] \n");
1188
	va = _rpmsg_pa_to_da(pa);
1189
	printk("[DBG] [to_va] = %x \n",va);
1190
	return va;
1191
}
1192
</pre>
1193
1194
which calls 
1195
<pre>
1196
/*
1197
 * TODO: Need to do this using lookup with rproc, but rproc is not
1198
 * visible to rpmsg_omx
1199
 */
1200
#define TILER_START	0x60000000
1201
#define TILER_END	0x80000000
1202
#define ION_1D_START	0xBA300000
1203
#define ION_1D_END	0xBFD00000
1204
#define ION_1D_VA	0x88000000
1205
static u32 _rpmsg_pa_to_da(u32 pa)
1206
{
1207
	if (pa >= TILER_START && pa < TILER_END){
1208
		printk("[DBG] TILER\n");
1209
		return pa;
1210
	}
1211
	else if (pa >= ION_1D_START && pa < ION_1D_END){
1212
                printk("[DBG] ION\n");
1213
		return (pa - ION_1D_START + ION_1D_VA);
1214
	}
1215
	else{
1216
               printk("[DBG] ELSE(not tiler and not ion)\n");
1217
	}
1218
		return 0;
1219
}
1220
</pre>
1221
1222
which prints ION for the 2 good buffers and print ELSE for the bad buffer(the one which produces the EINVAL in write)...
1223 19 Denis 'GNUtoo' Carikli
1224
then _rpmsg_omx_buffer_lookup returns 0 which results in:
1225
<pre>
1226
static int _rpmsg_omx_map_buf(struct rpmsg_omx_instance *omx, char *packet)
1227
{
1228
	int ret = -EINVAL, offset = 0;
1229
[...]
1230
	da = _rpmsg_omx_buffer_lookup(omx, *buffer);
1231
	printk("[DBG] [%s] da = %x \n",__func__,da);
1232
	if (da) {
1233
->not reached
1234
	        printk("[DBG] [%s] inside da\n",__func__);	
1235
		*buffer = da;
1236
		ret = 0;
1237
	}else {
1238
->reached
1239
		printk("[DBG] [%s] outside da\n",__func__);
1240
	}
1241
1242
	if (!ret && (maptype >= RPC_OMX_MAP_INFO_TWO_BUF)) {
1243
        [...] (not reached)
1244
	}
1245
1246
	if (!ret && maptype >= RPC_OMX_MAP_INFO_THREE_BUF) {
1247
        [...] (not reached)
1248
	}
1249
	return ret;
1250
}
1251
</pre>
1252 20 Denis 'GNUtoo' Carikli
1253
h2. Runtime tests.
1254
1255
Running replicant kernel with:
1256
<pre>
1257
#if 0
1258
#ifdef CONFIG_PVR_SGX
1259
        printk("[DBG] INSIDE CONFIG_PVR_SGX\n");
1260
        /* how about an sgx buffer wrapping an ion handle? */
1261
        {
1262
                struct ion_client *pvr_ion_client;
1263
                fd = buffer;
1264
                handle = PVRSRVExportFDToIONHandle(fd, &pvr_ion_client);
1265
                printk("[DBG] [INSIDE CONFIG_PVR_SGX] handle:%x\n",handle);
1266
                if (handle &&
1267
                        !ion_phys(pvr_ion_client, handle, &paddr, &unused)) {
1268
                        printk("[DBG] [INSIDE CONFIG_PVR_SGX] goto to_va\n");
1269
                        pa = (phys_addr_t)paddr;
1270
                        goto to_va;
1271
                }
1272
        }
1273
#endif
1274
#endif
1275
</pre>
1276
1277
with cyanogenmod userspace produces the same issue:
1278
<pre>
1279
D/DOMX    (  135): ENTER: 
1280
D/DOMX    (  135): TRACE: Recd. omx message
1281
D/DOMX    (  135): TRACE: Waiting for messages from remote core
1282
D/DOMX    (  135): EXIT: 
1283
D/DOMX    (  135): TRACE: Corresponding RPC function executed successfully
1284
D/DOMX    (  135): EXIT: eError: 0
1285
D/DOMX    (  135): ENTER: hComponent = 0x103f7e0, pCompPrv = 0x1035ee0, nConfigIndex = 117440523, pConfigStruct = 0x41365b50
1286
D/DOMX    (  135): ENTER: 
1287
D/DOMX    (  135): TRACE: Recd. omx message
1288
D/DOMX    (  135): TRACE: Waiting for messages from remote core
1289
D/DOMX    (  135): EXIT: 
1290
D/DOMX    (  135): TRACE: Corresponding RPC function executed successfully
1291
D/DOMX    (  135): EXIT: eError: 0
1292
D/DOMX    (  135): ENTER: hComponent = 0x103f7e0, pCompPrv = 0x1035ee0, nParamIndex = 33554433, pParamStruct = 0x41365ad8
1293
D/DOMX    (  135): ENTER: 
1294
D/DOMX    (  135): TRACE: Recd. omx message
1295
D/DOMX    (  135): TRACE: Waiting for messages from remote core
1296
D/DOMX    (  135): EXIT: 
1297
D/DOMX    (  135): TRACE: Corresponding RPC function executed successfully
1298
D/DOMX    (  135): EXIT: eError: 0 index: 0x2000001
1299
D/DOMX    (  135): ENTER: hComponent = 0x103f7e0, pCompPrv = 0x1035ee0, nParamIndex = 33554433, pParamStruct = 0x41365ad8
1300
D/DOMX    (  135): TRACE: Recd. omx message
1301
D/DOMX    (  135): TRACE: Waiting for messages from remote core
1302
D/DOMX    (  135): EXIT: 
1303
D/DOMX    (  135): TRACE: Corresponding RPC function executed successfully
1304
D/DOMX    (  135): EXIT: eError: 0
1305
D/DOMX    (  135): ENTER: hComponent = 0x103f7e0, pCompPrv = 0x1035ee0, nParamIndex = 33554433, pParamStruct = 0x41365ad8
1306
D/DOMX    (  135): ENTER: 
1307
D/DOMX    (  135): TRACE: Recd. omx message
1308
D/DOMX    (  135): TRACE: Waiting for messages from remote core
1309
D/DOMX    (  135): EXIT: 
1310
D/DOMX    (  135): TRACE: Corresponding RPC function executed successfully
1311
D/DOMX    (  135): EXIT: eError: 0 index: 0x2000001
1312
D/DOMX    (  135): ENTER: hComponent = 0x103f7e0, pCompPrv = 0x1035ee0, nConfigIndex = 2130706541, pConfigStruct = 0x41365b58
1313
D/DOMX    (  135): ENTER: 
1314
D/DOMX    (  135): TRACE: Recd. omx message
1315
D/DOMX    (  135): TRACE: Waiting for messages from remote core
1316
D/DOMX    (  135): EXIT: 
1317
D/DOMX    (  135): TRACE: Corresponding RPC function executed successfully
1318
D/DOMX    (  135): EXIT: eError: 0
1319
D/DOMX    (  135): ENTER: hComponent = 0x103f7e0, pCompPrv = 0x1035ee0, eCmd = 3, nParam = 2, pCmdData = 0x0
1320
D/DOMX    (  135): ENTER: 
1321
D/DOMX    (  135): TRACE: Recd. omx message
1322
D/DOMX    (  135): TRACE: Waiting for messages from remote core
1323
D/DOMX    (  135): EXIT: 
1324
D/DOMX    (  135): TRACE: Corresponding RPC function executed successfully
1325
D/DOMX    (  135): EXIT: eError: 0
1326
D/DOMX    (  135): ENTER: hComponent = 0x103f7e0, pCompPrv = 0x1035ee0, nParamIndex = 2130706545, pParamStruct = 0x41365ba0
1327
D/DOMX    (  135): TRACE: Corresponding RPC function executed successfully
1328
D/DOMX    (  135): EXIT: eError: 0
1329
D/DOMX    (  135): ENTER: hComponent = 0x103f7e0, pCompPrv = 0x1035ee0, nPortIndex = 0x2, pAppPrivate = 0x0, nSizeBytes = 1142784, pBuffer = 0x1046f40
1330
D/DOMX    (  135): TRACE: In UB, no. of buffers = 0
1331
D/DOMX    (  135): TRACE: Preparing buffer to Remote Core...
1332
D/DOMX    (  135): ENTER: 
1333
D/DOMX    (  135): TRACE: Recd. omx message
1334
D/DOMX    (  135): TRACE: Waiting for messages from remote core
1335
D/DOMX    (  135): EXIT: 
1336
D/DOMX    (  135): TRACE: Corresponding RPC function executed successfully
1337
D/DOMX    (  135): ENTER: 
1338
D/DOMX    (  135): ENTER: 
1339
D/DOMX    (  135): TRACE: Recd. omx message
1340
D/DOMX    (  135): TRACE: Waiting for messages from remote core
1341
D/DOMX    (  135): EXIT: 
1342
D/DOMX    (  135): TRACE:  PROXY_UTIL Get Parameter Successful
1343
D/DOMX    (  135): ENTER: 
1344
D/DOMX    (  135): TRACE: Recd. omx message
1345
D/DOMX    (  135): TRACE: Waiting for messages from remote core
1346
D/DOMX    (  135): EXIT: 
1347
D/DOMX    (  135): TRACE:  PROXY_UTIL Get Parameter Successful
1348
D/DOMX    (  135): TRACE: Port Number: 2 :: NumOfLines 720
1349
D/DOMX    (  135): EXIT: eError: 0
1350
D/DOMX    (  135): ENTER: hComponent = 0x103f7e0, pCompPrv = 0x1035ee0, nParamIndex = 2130706550, pParamStruct = 0x41365b34
1351
D/DOMX    (  135): ENTER: 
1352
D/DOMX    (  135): TRACE: Recd. omx message
1353
D/DOMX    (  135): TRACE: Waiting for messages from remote core
1354
D/DOMX    (  135): EXIT: 
1355
D/DOMX    (  135): TRACE: Corresponding RPC function executed successfully
1356
D/DOMX    (  135): EXIT: eError: 0 index: 0x7f000076
1357
D/DOMX    (  135): TRACE: Metadata size = 12332
1358
D/DOMX    (  135): TRACE: ION being USED for allocation!!!!! handle = c63ccd80, ret =0
1359
D/DOMX    (  135): TRACE: Metadata buffer ion handle = -969093760
1360
D/DOMX    (  135): ENTER: 
1361
D/DOMX    (  135): TRACE: Marshaling data
1362
D/DOMX    (  135): TRACE: eMapInfo = 3
1363
D/DOMX    (  135): TRACE: UV buffer fd= 109
1364
D/DOMX    (  135): TRACE: Metadata buffer = -969093760
1365
D/DOMX    (  135): TRACE: About to send packet
1366
D/DOMX    (  135): ERROR: DOMX Write failed 0xffffffff -1
1367
D/DOMX    (  135): ERROR: failed check:status >= 0 - returning error: 0x81001 - Write failed
1368
D/DOMX    (  135): EXIT: 
1369
D/DOMX    (  135): ERROR: RPC function returned error 0x81001
1370
D/DOMX    (  135): TRACE: Use Buffer Successful
1371
D/DOMX    (  135): TRACE: Value of pBufHeaderRemote: 0x0 LocalBufferHdr :0x104f118, LocalBuffer :0x1046f40
1372
D/DOMX    (  135): TRACE: Metadata buffer ion handle given to ion map = -969093760
1373
D/DOMX    (  135): TRACE: Updating no. of buffer to 1
1374
D/DOMX    (  135): EXIT: eError: -2147479551
1375
E/CameraHAL(  135): OMX_UseBuffer-0x80001001
1376
E/CameraHAL(  135): Exiting function UseBuffersPreview because of ret 0 eError=80001001
1377
D/DOMX    (  135): ENTER: hComponent = 0x103f7e0
1378
E/ion     (  135): ioctl -1073460991 failed with code -1: Bad file number
1379
F/libc    (  135): @@@ ABORTING: INVALID HEAP ADDRESS IN dlfree
1380
F/libc    (  135): Fatal signal 11 (SIGSEGV) at 0xdeadbaad (code=1)
1381
I/Process (  203): Sending signal. PID: 914 SIG: 3
1382
I/dalvikvm(  914): threadid=3: reacting to signal 3
1383
I/dalvikvm(  914): Wrote stack traces to '/data/anr/traces.txt'
1384
I/DEBUG   (  130): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
1385
I/DEBUG   (  130): Build fingerprint: 'google/yakju/maguro:4.0.4/IMM76I/330937:user/release-keys'
1386
I/DEBUG   (  130): pid: 135, tid: 187  >>> /system/bin/mediaserver <<<
1387
I/DEBUG   (  130): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr deadbaad
1388
I/DEBUG   (  130):  r0 deadbaad  r1 00000001  r2 a0000000  r3 00000000
1389
I/DEBUG   (  130):  r4 00000000  r5 00000027  r6 401022f4  r7 401104d4
1390
I/DEBUG   (  130):  r8 0104f170  r9 40110600  10 01040eb0  fp 010387fc
1391
I/DEBUG   (  130):  ip ffffffff  sp 413659c0  lr 400e3441  pc 400df788  cpsr 60000030
1392
I/DEBUG   (  130):  d0  656c696620646120  d1  653766333031786e
1393
I/DEBUG   (  130):  d2  68206e6f69207275  d3  696720656c646e6d
1394
I/DEBUG   (  130):  d4  426c61636f4c2030  d5  7264487265666675
1395
I/DEBUG   (  130):  d6  6634303178303a20  d7  636f4c202c383131
1396
I/DEBUG   (  130):  d8  0000000000000000  d9  0000000000000000
1397
I/DEBUG   (  130):  d10 0000000000000000  d11 0000000000000000
1398
I/DEBUG   (  130):  d12 0000000000000000  d13 0000000000000000
1399
I/DEBUG   (  130):  d14 0000000000000000  d15 0000000000000000
1400
I/DEBUG   (  130):  d16 3ff0000000000000  d17 3ff0000000000000
1401
I/DEBUG   (  130):  d18 7e37e43c8800759c  d19 bfba43196d2f888d
1402
I/DEBUG   (  130):  d20 3f115549a0c32687  d21 bebbbb72a4af9d58
1403
I/DEBUG   (  130):  d22 3ff0000000000000  d23 3fecedd52e2a681e
1404
I/DEBUG   (  130):  d24 3e66376972bea4d0  d25 3fee147ae0000000
1405
I/DEBUG   (  130):  d26 0000000000000000  d27 0000000000000000
1406
I/DEBUG   (  130):  d28 0000000000000000  d29 0000000000000000
1407
I/DEBUG   (  130):  d30 0000000000000000  d31 0000000000000000
1408
I/DEBUG   (  130):  scr 68000010
1409
I/DEBUG   (  130): 
1410
I/DEBUG   (  130):          #00  pc 00017788  /system/lib/libc.so
1411
I/DEBUG   (  130):          #01  pc 00013732  /system/lib/libc.so
1412
I/DEBUG   (  130):          #02  pc 00015a70  /system/lib/libc.so (dlfree)
1413
I/DEBUG   (  130):          #03  pc 00016100  /system/lib/libc.so (free)
1414
I/DEBUG   (  130):          #04  pc 000019e6  /system/lib/libmm_osal.so (TIMM_OSAL_Free)
1415
I/DEBUG   (  130):          #05  pc 00005dda  /system/lib/libdomx.so (PROXY_ComponentDeInit)
1416
I/DEBUG   (  130):          #06  pc 000018ec  /system/lib/libOMX.TI.DUCATI1.VIDEO.CAMERA.so
1417
I/DEBUG   (  130):          #07  pc 00001df6  /system/lib/libOMX_Core.so (OMX_FreeHandle)
1418
I/DEBUG   (  130):          #08  pc 000284fc  /system/lib/hw/camera.omap4.so (_ZN7android16OMXCameraAdapter24performCleanupAfterErrorEv)
1419
I/DEBUG   (  130):          #09  pc 0002b04e  /system/lib/hw/camera.omap4.so (_ZN7android16OMXCameraAdapter17UseBuffersPreviewEPvi)
1420
I/DEBUG   (  130):          #10  pc 0002b182  /system/lib/hw/camera.omap4.so (_ZN7android16OMXCameraAdapter10useBuffersENS_13CameraAdapter10CameraModeEPvijj)
1421
I/DEBUG   (  130):          #11  pc 00024c4c  /system/lib/hw/camera.omap4.so (_ZN7android17BaseCameraAdapter11sendCommandENS_13CameraAdapter14CameraCommandsEiii)
1422
I/DEBUG   (  130):          #12  pc 0001d3d0  /system/lib/hw/camera.omap4.so (_ZN7android9CameraHal12startPreviewEv)
1423
I/DEBUG   (  130):          #13  pc 0001d6de  /system/lib/hw/camera.omap4.so (_ZN7android9CameraHal16setPreviewWindowEP18preview_stream_ops)
1424
I/DEBUG   (  130):          #14  pc 0001ae80  /system/lib/hw/camera.omap4.so (_Z25camera_set_preview_windowP13camera_deviceP18preview_stream_ops)
1425
I/DEBUG   (  130):          #15  pc 000076cc  /system/lib/libcameraservice.so
1426
I/DEBUG   (  130):          #16  pc 000091b4  /system/lib/libcameraservice.so (_ZN7android13CameraService6Client16setPreviewWindowERKNS_2spINS_7IBinderEEERKNS2_I13ANativeWindowEE)
1427
I/DEBUG   (  130):          #17  pc 000092ea  /system/lib/libcameraservice.so (_ZN7android13CameraService6Client17setPreviewDisplayERKNS_2spINS_7SurfaceEEE)
1428
I/DEBUG   (  130):          #18  pc 00013592  /system/lib/libcamera_client.so (_ZN7android8BnCamera10onTransactEjRKNS_6ParcelEPS1_j)
1429
I/DEBUG   (  130):          #19  pc 00017f44  /system/lib/libbinder.so (_ZN7android7BBinder8transactEjRKNS_6ParcelEPS1_j)
1430
I/DEBUG   (  130):          #20  pc 0001b26e  /system/lib/libbinder.so (_ZN7android14IPCThreadState14executeCommandEi)
1431
I/DEBUG   (  130):          #21  pc 0001b44a  /system/lib/libbinder.so (_ZN7android14IPCThreadState14joinThreadPoolEb)
1432
I/DEBUG   (  130):          #22  pc 00020744  /system/lib/libbinder.so
1433
I/DEBUG   (  130):          #23  pc 00022a1e  /system/lib/libutils.so (_ZN7android6Thread11_threadLoopEPv)
1434
I/DEBUG   (  130):          #24  pc 00023064  /system/lib/libutils.so
1435
I/DEBUG   (  130):          #25  pc 00012e2c  /system/lib/libc.so (__thread_entry)
1436
I/DEBUG   (  130):          #26  pc 0001295c  /system/lib/libc.so (pthread_create)
1437
I/DEBUG   (  130): 
1438
I/DEBUG   (  130): code around pc:
1439
I/DEBUG   (  130): 400df768 4623b15c 2c006824 e026d1fb b12368db  \.#F$h.,..&..h#.
1440
I/DEBUG   (  130): 400df778 21014a17 6011447a 48124798 24002527  .J.!zD.`.G.H'%.$
1441
I/DEBUG   (  130): 400df788 f7f47005 2106ef8c e838f7f6 460aa901  .p.....!..8....F
1442
I/DEBUG   (  130): 400df798 f04f2006 94015380 94029303 ebe4f7f5  . O..S..........
1443
I/DEBUG   (  130): 400df7a8 4622a905 f7f52002 f7f4ebee 2106ef78  .."F. ......x..!
1444
I/DEBUG   (  130): 
1445
I/DEBUG   (  130): code around lr:
1446
I/DEBUG   (  130): 400e3420 41f0e92d 46804c0c 447c2600 68a56824  -..A.L.F.&|D$h.h
1447
I/DEBUG   (  130): 400e3430 e0076867 300cf9b5 dd022b00 47c04628  gh.....0.+..(F.G
1448
I/DEBUG   (  130): 400e3440 35544306 37fff117 6824d5f4 d1ee2c00  .CT5...7..$h.,..
1449
I/DEBUG   (  130): 400e3450 e8bd4630 bf0081f0 000280be 41f0e92d  0F..........-..A
1450
I/DEBUG   (  130): 400e3460 fb01b086 9004f602 461f4815 4615460c  .........H.F.F.F
1451
I/DEBUG   (  130): 
1452
I/DEBUG   (  130): memory map around addr deadbaad:
1453
I/DEBUG   (  130): bec5b000-bec7c000 [stack]
1454
I/DEBUG   (  130): (no map for address)
1455
I/DEBUG   (  130): ffff0000-ffff1000 [vectors]
1456
I/DEBUG   (  130): 
1457
I/DEBUG   (  130): stack:
1458
I/DEBUG   (  130):     41365980  00000001  
1459
I/DEBUG   (  130):     41365984  413659c0  
1460
I/DEBUG   (  130):     41365988  4010b7e0  /system/lib/libc.so
1461
I/DEBUG   (  130):     4136598c  0000000c  
1462
I/DEBUG   (  130):     41365990  4010b780  /system/lib/libc.so
1463
I/DEBUG   (  130):     41365994  4010b718  /system/lib/libc.so
1464
I/DEBUG   (  130):     41365998  00000000  
1465
I/DEBUG   (  130):     4136599c  400e3441  /system/lib/libc.so
1466
I/DEBUG   (  130):     413659a0  00000000  
1467
I/DEBUG   (  130):     413659a4  413659d4  
1468
I/DEBUG   (  130):     413659a8  401022f4  /system/lib/libc.so
1469
I/DEBUG   (  130):     413659ac  401104d4  
1470
I/DEBUG   (  130):     413659b0  0104f170  [heap]
1471
I/DEBUG   (  130):     413659b4  400e25ad  /system/lib/libc.so
1472
I/DEBUG   (  130):     413659b8  df0027ad  
1473
I/DEBUG   (  130):     413659bc  00000000  
1474
I/DEBUG   (  130): #00 413659c0  413659bc  
1475
I/DEBUG   (  130):     413659c4  00000001  
1476
I/DEBUG   (  130):     413659c8  401022d8  /system/lib/libc.so
1477
I/DEBUG   (  130):     413659cc  00000005  
1478
I/DEBUG   (  130):     413659d0  413659ec  
1479
I/DEBUG   (  130):     413659d4  fffffbdf  
1480
I/DEBUG   (  130):     413659d8  413659ec  
1481
I/DEBUG   (  130):     413659dc  413659ec  
1482
I/DEBUG   (  130):     413659e0  401057f4  /system/lib/libc.so
1483
I/DEBUG   (  130):     413659e4  400db737  /system/lib/libc.so
1484
I/DEBUG   (  130): #01 413659e8  02000001  
1485
I/DEBUG   (  130):     413659ec  20404040  
1486
I/DEBUG   (  130):     413659f0  524f4241  
1487
I/DEBUG   (  130):     413659f4  474e4954  
1488
I/DEBUG   (  130):     413659f8  4e49203a  
1489
I/DEBUG   (  130):     413659fc  494c4156  
1490
I/DEBUG   (  130):     41365a00  45482044  
1491
I/DEBUG   (  130):     41365a04  41205041  /dev/ashmem/OMXCodec (deleted)
1492
I/DEBUG   (  130):     41365a08  45524444  
1493
I/DEBUG   (  130):     41365a0c  49205353  
1494
I/DEBUG   (  130):     41365a10  6c64204e  
1495
I/DEBUG   (  130):     41365a14  65657266  
1496
I/DEBUG   (  130):     41365a18  00000000  
1497
I/DEBUG   (  130):     41365a1c  00000000  
1498
I/DEBUG   (  130):     41365a20  8060f270  
1499
I/DEBUG   (  130):     41365a24  a5d1751e  
1500
I/DEBUG   (  130):     41365a28  00000060  
1501
I/DEBUG   (  130):     41365a2c  41365a78  
1502
I/DEBUG   (  130):     41365a30  40fb75e9  /system/lib/libdomx.so
1503
I/DEBUG   (  130):     41365a34  40fba619  /system/lib/libdomx.so
1504
I/DEBUG   (  130):     41365a38  0000001c  
1505
I/DEBUG   (  130):     41365a3c  40021340  /system/lib/libmm_osal.so
1506
I/DEBUG   (  130):     41365a40  ffffffff  
1507
I/DEBUG   (  130):     41365a44  02000001  
1508
I/DEBUG   (  130):     41365a48  000000fb  
1509
I/DEBUG   (  130):     41365a4c  401104d4  
1510
I/DEBUG   (  130):     41365a50  0104f198  [heap]
1511
I/DEBUG   (  130):     41365a54  00000000  
1512
I/DEBUG   (  130):     41365a58  8060f270  
1513
I/DEBUG   (  130):     41365a5c  401104d4  
1514
I/DEBUG   (  130):     41365a60  7f000076  
1515
I/DEBUG   (  130):     41365a64  400dcc25  /system/lib/libc.so
1516
I/DEBUG   (  130):     41365a68  0104f190  [heap]
1517
I/DEBUG   (  130):     41365a6c  0104f288  [heap]
1518
I/DEBUG   (  130):     41365a70  000000fb  
1519
I/DEBUG   (  130):     41365a74  401104d4  
1520
I/DEBUG   (  130):     41365a78  0104f198  [heap]
1521
I/DEBUG   (  130):     41365a7c  00000000  
1522
I/DEBUG   (  130):     41365a80  00000000  
1523
I/DEBUG   (  130):     41365a84  401104d4  
1524
I/DEBUG   (  130):     41365a88  00000002  
1525
I/DEBUG   (  130):     41365a8c  400dcc25  /system/lib/libc.so
1526
I/DEBUG   (  130):     41365a90  0104f190  [heap]
1527
I/DEBUG   (  130):     41365a94  401105f0  
1528
I/DEBUG   (  130):     41365a98  000000f8  
1529
I/DEBUG   (  130):     41365a9c  401104d4  
1530
I/DEBUG   (  130):     41365aa0  0104f198  [heap]
1531
I/DEBUG   (  130):     41365aa4  0104f1ac  [heap]
1532
I/DEBUG   (  130):     41365aa8  00000002  
1533
I/DEBUG   (  130):     41365aac  400dda89  /system/lib/libc.so
1534
I/DEBUG   (  130):     41365ab0  0104f118  [heap]
1535
I/DEBUG   (  130):     41365ab4  00000024  
1536
I/DEBUG   (  130):     41365ab8  01035ee0  [heap]
1537
I/DEBUG   (  130):     41365abc  00000003  
1538
I/DEBUG   (  130):     41365ac0  0000004d  
1539
I/DEBUG   (  130):     41365ac4  41365ad4  
1540
I/DEBUG   (  130):     41365ac8  0104f110  [heap]
1541
I/DEBUG   (  130):     41365acc  00000001  
1542
I/DEBUG   (  130):     41365ad0  00000178  
1543
I/DEBUG   (  130):     41365ad4  00000001  
1544
I/DEBUG   (  130):     41365ad8  40111280  
1545
I/DEBUG   (  130):     41365adc  400ea8ad  /system/lib/libc.so
1546
I/DEBUG   (  130):     41365ae0  01035ee0  [heap]
1547
I/DEBUG   (  130):     41365ae4  01035ee0  [heap]
1548
I/DEBUG   (  130):     41365ae8  00000000  
1549
I/DEBUG   (  130):     41365aec  a5d1751e  
1550
I/DEBUG   (  130):     41365af0  0104f168  [heap]
1551
I/DEBUG   (  130):     41365af4  01035ee0  [heap]
1552
I/DEBUG   (  130):     41365af8  00000000  
1553
I/DEBUG   (  130):     41365afc  400dda75  /system/lib/libc.so
1554
I/Process (  203): Sending signal. PID: 914 SIG: 3
1555
I/dalvikvm(  914): threadid=3: reacting to signal 3
1556
I/dalvikvm(  914): Wrote stack traces to '/data/anr/traces.txt'
1557
I/Process (  203): Sending signal. PID: 914 SIG: 3
1558
I/dalvikvm(  914): threadid=3: reacting to signal 3
1559
I/dalvikvm(  914): Wrote stack traces to '/data/anr/traces.txt'
1560
I/Process (  203): Sending signal. PID: 914 SIG: 3
1561
I/dalvikvm(  914): threadid=3: reacting to signal 3
1562
I/dalvikvm(  914): Wrote stack traces to '/data/anr/traces.txt'
1563
I/Process (  203): Sending signal. PID: 914 SIG: 3
1564
I/dalvikvm(  914): threadid=3: reacting to signal 3
1565
I/dalvikvm(  914): Wrote stack traces to '/data/anr/traces.txt'
1566
I/Process (  203): Sending signal. PID: 914 SIG: 3
1567
I/dalvikvm(  914): threadid=3: reacting to signal 3
1568
I/dalvikvm(  914): Wrote stack traces to '/data/anr/traces.txt'
1569
D/dalvikvm(  203): GC_FOR_ALLOC freed 3709K, 60% free 4952K/12288K, paused 29ms
1570
W/AudioSystem(  203): AudioFlinger server died!
1571
W/IMediaDeathNotifier(  203): media server died
1572
W/AudioSystem(  203): AudioPolicyService server died!
1573
W/AudioSystem(  420): AudioFlinger server died!
1574
W/AudioSystem(  420): AudioPolicyService server died!
1575
I/ServiceManager(  124): service 'media.audio_flinger' died
1576
I/ServiceManager(  124): service 'media.player' died
1577
I/ServiceManager(  124): service 'media.camera' died
1578
I/ServiceManager(  124): service 'media.audio_policy' died
1579
W/IMediaDeathNotifier(  437): media server died
1580
W/Camera  (  914): Camera server died!
1581
W/Camera  (  914): ICamera died
1582
I/ActivityManager(  203): Displayed com.android.camera/.Camera: +4s438ms
1583
D/CameraStorage(  914): External storage state=mounted
1584
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)
1585
E/Camera  (  914): Error 100
1586
E/CameraErrorCallback(  914): Got camera error callback. error=100
1587
D/AndroidRuntime(  914): Shutting down VM
1588
W/dalvikvm(  914): threadid=1: thread exiting with uncaught exception (group=0x40a4e1f8)
1589
I/        (  948): ServiceManager: 0x5cd958
1590
I/AudioFlinger(  948): Loaded primary audio interface from Tuna audio HW HAL (audio)
1591
I/AudioFlinger(  948): Using 'Tuna audio HW HAL' (audio.primary) as the primary audio interface
1592
I/AudioFlinger(  948): Loaded a2dp audio interface from A2DP Audio HW HAL (audio)
1593
I/CameraService(  948): CameraService started (pid=948)
1594
I/AudioFlinger(  948): AudioFlinger's thread 0x5d44b8 ready to run
1595
D/dalvikvm(  203): GC_FOR_ALLOC freed 1181K, 59% free 5063K/12288K, paused 27ms
1596
I/AudioPolicyService(  948): Loaded audio policy from LEGACY Audio Policy HAL (audio_policy)
1597
I/Process (  203): Sending signal. PID: 914 SIG: 3
1598
I/dalvikvm(  914): threadid=3: reacting to signal 3
1599
I/dalvikvm(  914): Wrote stack traces to '/data/anr/traces.txt'
1600
E/AudioService(  203): Media server died.
1601
E/AudioService(  203): Media server started.
1602
W/AudioPolicyManagerBase(  948): setPhoneState() setting same state 0
1603
W/AudioFlinger(  948): session id 13 not found for pid 203
1604
I/Process (  914): Sending signal. PID: 914 SIG: 9
1605
[  104.225494] binder: release proc 914, transaction 18351, not freed
1606
[  104.234130] binder: release proc 914, transaction 18352, not freed
1607
W/InputDispatcher(  203): channel '40f93a50 com.android.camera/com.android.camera.Camera (server)' ~ Consumer closed input channel or an error occurred.  events=0x8
1608
E/InputDispatcher(  203): channel '40f93a50 com.android.camera/com.android.camera.Camera (server)' ~ Channel is unrecoverably broken and will be disposed!
1609
W/InputDispatcher(  203): Attempted to unregister already unregistered input channel '40f93a50 com.android.camera/com.android.camera.Camera (server)'
1610
</pre>
1611 21 Denis 'GNUtoo' Carikli
1612
h3. The flow when it works is the following:
1613
1614
<pre>if (!ion_phys(omx->ion_client, handle, &paddr, &unused)) {</pre>
1615
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>
1616
1617
h3. The flow when it fails is the following:
1618
1619
<pre>if (!ion_phys(omx->ion_client, handle, &paddr, &unused)) {</pre>
1620
returns false,then what's in #ifdef CONFIG_PVR_SGX fails or is skipped,
1621
Then it executes <pre>pa = (phys_addr_t) tiler_virt2phys(buffer);</pre> and goes to the end.
1622 22 Denis 'GNUtoo' Carikli
1623
h3. Inside the PVR driver
1624
1625
<pre>
1626
struct ion_handle *
1627
PVRSRVExportFDToIONHandle(int fd, struct ion_client **client)
1628
{
1629
[...]
1630
	eError = PVRSRVLookupHandle(KERNEL_HANDLE_BASE,
1631
								(IMG_PVOID *)&psKernelMemInfo,
1632
								psPrivateData->hKernelMemInfo,
1633
								PVRSRV_HANDLE_TYPE_MEM_INFO);
1634
[...]
1635
Then it uses psKernelMemInfo and returns a derivative of it.
1636
}
1637
</pre>
1638 23 Denis 'GNUtoo' Carikli
1639
<pre>
1640
PVRSRV_ERROR PVRSRVLookupHandle(PVRSRV_HANDLE_BASE *psBase, IMG_PVOID *ppvData, IMG_HANDLE hHandle, PVRSRV_HANDLE_TYPE eType)
1641
{
1642
        struct sHandle *psHandle;
1643
        PVRSRV_ERROR eError;
1644
1645
        PVR_ASSERT(eType != PVRSRV_HANDLE_TYPE_NONE)
1646
1647
        eError = GetHandleStructure(psBase, &psHandle, hHandle, eType);
1648
        if (eError != PVRSRV_OK)
1649
        {
1650
                PVR_DPF((PVR_DBG_ERROR, "PVRSRVLookupHandle: Error looking up handle (%d)", eError));
1651
                return eError;
1652
        }
1653
1654
        *ppvData = psHandle->pvData;
1655
1656
        return PVRSRV_OK;
1657
}
1658
</pre>
1659
1660
<pre>
1661
PVRSRV_ERROR GetHandleStructure(PVRSRV_HANDLE_BASE *psBase, struct sHandle **ppsHandle, IMG_HANDLE hHandle, PVRSRV_HANDLE_TYPE eType)
1662
#endif
1663
{
1664
        IMG_UINT32 ui32Index = HANDLE_TO_INDEX(hHandle);
1665
        struct sHandle *psHandle;
1666
1667
1668
        if (!INDEX_IS_VALID(psBase, ui32Index))
1669
        {
1670
                PVR_DPF((PVR_DBG_ERROR, "GetHandleStructure: Handle index out of range (%u >= %u)", ui32Index, psBase->ui32TotalHandCount));
1671
1672
                return PVRSRV_ERROR_HANDLE_INDEX_OUT_OF_RANGE;
1673
        }
1674
1675
        psHandle =  INDEX_TO_HANDLE_STRUCT_PTR(psBase, ui32Index);
1676
        if (psHandle->eType == PVRSRV_HANDLE_TYPE_NONE)
1677
        {
1678
                PVR_DPF((PVR_DBG_ERROR, "GetHandleStructure: Handle not allocated (index: %u)", ui32Index));
1679
1680
                return PVRSRV_ERROR_HANDLE_NOT_ALLOCATED;
1681
        }
1682
1683
1684
        if (eType != PVRSRV_HANDLE_TYPE_NONE && eType != psHandle->eType)
1685
        {
1686
                PVR_DPF((PVR_DBG_ERROR, "GetHandleStructure: Handle type mismatch (%d != %d)", eType, psHandle->eType));
1687
1688
                return PVRSRV_ERROR_HANDLE_TYPE_MISMATCH;
1689
        }
1690
1691
1692
        *ppsHandle = psHandle;
1693
1694
        return PVRSRV_OK;
1695
}
1696
1697
</pre>
1698 24 Denis 'GNUtoo' Carikli
1699
1700
<pre>
1701
#define INDEX_IS_VALID(psBase, i) ((i) < (psBase)->ui32TotalHandCount)
1702
</pre>
1703 25 Denis 'GNUtoo' Carikli
1704
h1. trying to fix the issue:
1705 26 Denis 'GNUtoo' Carikli
1706
1707 25 Denis 'GNUtoo' Carikli
<pre>
1708
<6>[  313.967468] PVR_K:(Error): GetHandleStructure: Handle index out of range (1835561824 >= 256) [454, /home/gnutoo/embedded/android/replicant-4.0/kernel/samsung/tuna/drivers/gpu/pvr/handle.c]
1709
<6>[  313.967681] 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]
1710
<6>[  313.967803] 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]
1711
</pre>
1712
was achieved with :
1713
<pre>
1714
#include <sys/types.h>
1715
#include <sys/stat.h>
1716
#include <fcntl.h>
1717
1718
int main(){
1719
1720
	int fd = open("/dev/pvrsrvkm",O_RDWR);
1721
	printf("fd = %d\n");
1722
	while(1)
1723
		sleep(10000);
1724
	return 0; //not reached
1725
}
1726
</pre>
1727 29 Denis 'GNUtoo' Carikli
1728 30 Denis 'GNUtoo' Carikli
h2. possible solution:
1729 29 Denis 'GNUtoo' Carikli
1730
https://groleo.wordpress.com/2012/07/24/ion-buffer-sharing-mechanism/
1731
https://groleo.wordpress.com/2012/07/31/jelly-bean-codec-infrastructure/
1732
1733
=> we need to modify OMXCameraAdapter.cpp not to send its acquired buffer to OMX, and instead to reimplement that part, by looking at how the TI V4l2 camera does it.
1734 31 Denis 'GNUtoo' Carikli
1735
=> we probably need to replace the UseBuffer functions and look at how OMX_UseBuffer works in order to replace them:
1736
there is a use buffer function which calls different functions according to its state, for instance OMXCameraAdapter::UseBuffersPreview which uses OMX_UseBuffer...
1737 32 Denis 'GNUtoo' Carikli
1738
1739
OMX_UseBuffer calls PROXY_UseBuffer in hardware/ti/omap4xxx/domx/domx/omx_proxy_common/src/omx_proxy_common.c