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