I have gone back and forth rewriting this post with different information for the last 2 hours as I learn more. I think I've finally come full circle.
Found a difference in msm_camera.h in libcamera2/camerahal and the kernel. Got excited, but it looks like it isn't being used. It's in native_get_picture() in QualcommCameraHardware.cpp, and it probably won't work if anyone tries to use it
Then I took a closer look at your logcat, and saw the window is NULL message, and got excited again. But, I traced it back through the android source and it looks like that is what they do for QCOM_HARDWARE.
I don't know why I couldn't find some of your logcat messages yesterday, I see them all fine now. But, I realized that the data parameter of QualcommCameraHardware::runFrameThread() is really an msm_frame, which is where the difference is in msm_camera.h. So I'm back to where I was, this is certainly a problem. Here is the diff, I believe the kernel version is correct:
[HIGH]
diff -u ./hardware/qcom/libcamera2/msm_camera.h ./kernel/motorola/triumph/include/media/msm_camera.h
--- ./hardware/qcom/libcamera2/msm_camera.h 2012-11-26 19:35:09.714678299 -0700
+++ ./kernel/motorola/triumph/include/media/msm_camera.h 2012-11-26 19:35:22.370519193 -0700
@@ -584,8 +584,8 @@
int stcam_quality_ind;
uint32_t stcam_conv_value;
- struct ion_allocation_data * ion_alloc;
- struct ion_fd_data * fd_data;
+ struct ion_allocation_data ion_alloc;
+ struct ion_fd_data fd_data;
};
[/HIGH]