forked from Elemag/cm-kernel
-
Notifications
You must be signed in to change notification settings - Fork 4
/
camera_bug
119 lines (83 loc) · 4.3 KB
/
camera_bug
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
PERSONAL KERNEL DEBUG FILE
Matteo Benetti (MrBang) - mathew.benetti@gmail.com
===============================================
Device: HTC Hero
Kernel: 2.6.35.10,
**Camera Problems**
March 2, 2011. Matteo Benetti (MrBang)
Booted my Hero with kernel builded on hero_defconf config file.
Speed issue (cpu freq), bad screen on/off (power management).
Try to take a photo and the frame stucks on screen. Even press
"return" hw button and no response, only way to exit is
to press "home" hw button and activity was push underground.
While frame stucks on screen and after a lock/unlock procedure,
camera backs to *work*.
After some investigation i know there are problem
on AF (auto focus) procedure and with /proc/kmesg and the
AF fails throws some I2C exceptions ("error during data xfer").
Looked that if camera_settings->widescreen option is enable the
zoom works bad. (When zoom is max there are many artefacts on screen.
To repeat the *fail* situation, open camera app and enable AF option.
With ADB shell command "cat /proc/kmesg", looking to log outputs
while camera is pointed somewhere.
Ex. kmesg output:
| msm_open_common: open control0
| msm_i2c msm_i2c.0: error, status 43c8
| msm_i2c msm_i2c.0: Error during data xfer c (-5)
| i2c_transfer_retry: try 1/20: i2c_transfer sent: -5, len 1
| msm_i2c msm_i2c.0: error, status c8
My opinion is there are some bugs about i2c driver maybe caused
by missing header and/or minor porting errors.
March 3, 2011. Matteo Benetti (MrBang)
Into drivers/i2c/busses/i2c-msm.c from legend there is an include
that isn't into cm-kernel:
#include <linux/i2c-msm.h>
than added include above but the header missed so
imported it from legend kernel.
Building fails 'cause a method into system.h was bad.
The system.h was different from old .29 and legend .35
Than corrected mach/system.h and rebuild cm-kernel.
Another error during build process.
The i2c-msm.c call kzalloc() and kfree() implicit declarate functions.
Corrected error by including include/slab.h into i2c.c file.
Now while taking a photo the app crashes and quit, so no long
stucking frame on screen and unresponive terminal.
March 21, 2011. Riemer van der Zee
i2c problems are caused as I disabled the AF acuator earlier.
It seems with disabling this device, it is sometimes able to take a picture.
However disabling it, also disables the focusing a little.
I have reverted the driver totally to act like the original .29 HTC Hero drv
The problem seems to be somekind of timing problem or so?
Another possible lead is that it reports the gain and/or line is zero?
Getting quite clueless actually...
April 4, 2011. Riemer van der Zee
Camera is stable when using the default frequencies.
However changing them (or the governor) leads to problems.
We are now able to use preview mode, take videos and the AF sharper seems
to work properly. However the important part: taking the picture fails.
The hang has been identified at:
http://tinyurl.com/3nq392x
update:
The next log-item after timeout: 5000, with no Clock-tampering is a prinfo
in msm_vfe_sync at the event VFE_MSG_SNAPSHOT. It should be noted that this
function does not get called when the freq has been changed.
It seems this function is called at vfe_7x_ops in the msm_vfe7x.c.
This function is then again bound to two adsp tasks called:
QCAMTASK and VFETASK
When using a different freq, this function suddenly receives a
"13" message-type. expected message-type is 2 which translates to
VFE_MSG_SNAPSHOT. 13 is unknown
April 5, 2011. Riemer van der Zee
Function which calls vfe_7x_ops is:
adsp_rtos_read_ctrl_word_cmd_tast_to_h_v
to be found at file:
/arch/arm/mach-msm/qdsp5_comp/adsp.c
Couldn't find any strange differences between our qdsp5_comp and qdsp5
.35 version on this point.
I have the idea it is more smd related... Sobe made alternations to these
files, while I never have taken a look at them. Just copied his version
a while ago, this fixed bonesey's problem with connecting to his network.
Differences between HeroC.29 and GSM.29 version between these files don't
seem too big. Will fiddle a little with them... otherwise we will have to
revert them to original .35? and implement any hero-specific parts?
Always had the idea smd-stuff was a bit voodoo tbh.