[Desire Android Development] BlueVD:
Hello folks, back with some good news =)

While I still failed to get the camera working, there's been some huge progress. I've learn a few things about android and the works of the inner hardware... After hours of compile and trial-and-error here's the latest update (dmesg dumps):

<6>[ 2100.066345] msm_open_common: open control0
<6>[ 2100.067199] wait event : 1 timeout:3000
<6>[ 2100.190185] s5k3e2fx_ctrl->prev_res:0
<6>[ 2100.190551] s5k3e2fx_setting rupdate:0 g_usModuleVersion:1
<6>[ 2100.209228] >>>>>>>>(2010-10-19 21:27:22.442565954 UTC)<<<<<<<
<6>[ 2100.209869] msm_open_common: open config0
<6>[ 2100.215728] s5k3e2fx: otp_vendorid1[0]:0x 4
<6>[ 2100.216339] s5k3e2fx: otp_vendorid2[0]:0x 50
<6>[ 2100.216674] s5k3e2fx: otp_vendorid3[0]:0x 2
<6>[ 2100.221496] s5k3e2fx: otp_vendorid1[1]:0x 0
<6>[ 2100.222106] s5k3e2fx: otp_vendorid2[1]:0x 0
<6>[ 2100.222808] s5k3e2fx: otp_vendorid3[1]:0x 0
<6>[ 2100.227294] s5k3e2fx: otp_fuseid1[0]:0x 44
<6>[ 2100.227661] s5k3e2fx: otp_fuseid2[0]:0x a5
<6>[ 2100.227966] s5k3e2fx: otp_fuseid3[0]:0x 31
<6>[ 2100.231506] s5k3e2fx: otp_fuseid1[1]:0x 0
<6>[ 2100.231872] s5k3e2fx: otp_fuseid2[1]:0x 0
<6>[ 2100.232208] s5k3e2fx: otp_fuseid3[1]:0x 0
<6>[ 2100.233062] s5k3e2fx: fuse->fuse_id_word1:0
<6>[ 2100.233398] s5k3e2fx: fuse->fuse_id_word2:0
<6>[ 2100.233734] s5k3e2fx: fuse->fuse_id_word3:0x00045002
<6>[ 2100.234344] s5k3e2fx: fuse->fuse_id_word4:0x0044a531
<6>[ 2100.286956] msm_enqueue: queue event new max is 1
<6>[ 2100.287414] msm_enqueue: queue control new max is 1
<6>[ 2100.330718] CFG_SET_MODE
<6>[ 2100.330841] s5k3e2fx_setting rupdate:1 g_usModuleVersion:1
<6>[ 2100.369262] >>>>>>>>(2010-10-19 21:27:22.602600131 UTC)<<<<<<<
<6>[ 2100.369445] msm_open_common: open frame0
<6>[ 2100.399566] CFG_SET_MODE
<6>[ 2100.399688] s5k3e2fx_setting rupdate:1 g_usModuleVersion:1
<6>[ 2100.538055] msm_enqueue: queue frame new max is 1
<6>[ 2100.575805] msm_enqueue: queue frame new max is 2
<6>[ 2100.575897] msm_enqueue: queue event new max is 2
<3>[ 2100.783294]
<3>[ 2100.783294] msm_get_stats: error -512
<3>[ 2100.893218]
<3>[ 2100.893218] msm_get_stats: error -512
<6>[ 2100.895965] binder: release 124:196 transaction 142335 in, still active
<6>[ 2100.896087] binder: send failed reply for transaction 142335 to 2791:2791
<6>[ 2100.901458] msm_release_config: config0
<6>[ 2100.901550] __msm_release:sync->opencnt:3
<6>[ 2100.902221] release config atomic_set pmsm->opened as 0
<6>[ 2100.908843] msm_release_control: control0
<6>[ 2100.908966] __msm_release:sync->opencnt:2
<6>[ 2100.909179] msm_release_frame: frame0
<6>[ 2100.909362] __msm_release:sync->opencnt:1
<6>[ 2100.909454] >>>>>>>>(2010-10-19 21:27:23.142822301 UTC)<<<<<<<
<3>[ 2100.957458] msm_vfe_sync: SPURIOUS INTERRUPT
<3>[ 2100.957672] msm_vfe_sync: SPURIOUS INTERRUPT
<3>[ 2100.969757] msm_vfe_sync: SPURIOUS INTERRUPT
<6>[ 2101.131622] release frame atomic_set pmsm->opened as 0
<6>[ 2103.070739] capella_cm3602_ioctl cmd 1
<6>[ 2103.071136] lightsensor_ioctl get enabled status: 1
<6>[ 2103.182189] __spi_bma150_set_mode: BMA get into SLEEP mode!

It seems that the flow for getting access to camera is the following:

APP->FrameWork->Native Binaries->libs (oemcamera.so, etc)->kernel;

And what I know now is that the apps are fine (dough! =) ), the framework is fine (inor exceptions when it comes to audio, but that isn't the problem!), native binaries (awb_camera, lsc_camera, mmcamera_test) all work, I've tested them. Right now I'm trying to figure out if the erroneous interrupts are from the libs or the kernel (though my money is on the libs). Anyway, in a few days maybe (this is a big maybe =) ) I'll get lucky and figure it out.

PS: I did manage to get the cam to work (using mmcamera_test) but it screws up the display (the cam preview kind of stay on an blends with the normal screen, see attached pic); the screenshot was made with QtADB (thanks to 7ymekk & mozarcik for the great app, otherwise I would have quit this whole camera stuff because of the console).

So bare with me =)

[EDIT]

A few notes for the suspicious people: it's not photoshopped, I'll try to do a vid tomorrow at work since I have no other cam at home (other than the desire's) =)

Oh, and yeah, if you want to mess with the files youself, find them at the following addr: wbss.ro/android/

sidenote: cam_ins_spmo and mm-venc-omx-test shouldn't be pushed to the phone!!! just push libcamera.so and liboemcamera.so to /system/lib and push awb_camera, lsc_camera and mmcamera_test to /system/bin After you can run from terminal emulator awb_camera (it should give you a small viewport from the cam, if not, run mmcamera_test but be warned, you'll either have to kill the mmcamera_test (ps, get the pid, kill <pid>) or reboot the phone to get rid of the flicker =)

Being the masochist type, I did the whole kill thingie;