[Android General] wladimir_tm:
why the back camera isn't working on the C230w with the Karbonn rom

because of different camera sensor on C230w vs Titanium S1 Plus:

C230w:

back: gc2235

front: gc0339

Titanium S1 Plus:

back: ??

front: gc0339

info from: ~/c230wEU_kernel/arch/arm/boot/dts$ gedit msm8612-qrd-camera-sensor.dtsi

...
/*c230w back camera*/
qcom,camera@20 {
compatible = "qcom,gc2235";
reg = <0x20>;
qcom,slave-id = <0x78 0xf0 0x2235>;
qcom,csiphy-sd-index = <0>;
qcom,csid-sd-index = <0>;
qcom,mount-angle = <90>;
qcom,sensor-name = "gc2235_c230w";
qcom,led-flash-src = <&led_flash0>;
cam_vdig-supply = <&pm8110_l2>;
cam_vana-supply = <&pm8110_l19>;
cam_vio-supply = <&pm8110_l14>;
qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana";
qcom,cam-vreg-type = <0 0 0>;
qcom,cam-vreg-min-voltage = <1200000 1800000 2850000>;
qcom,cam-vreg-max-voltage = <1200000 1800000 2850000>;
qcom,cam-vreg-op-mode = <200000 8000 80000>;
qcom,gpio-no-mux = <0>;
gpios = <&msmgpio 13 0>,
<&msmgpio 21 0>,
<&msmgpio 20 0>,
<&msmgpio 70 0>,
<&msmgpio 71 0>;
qcom,gpio-reset = <1>;
qcom,gpio-standby = <2>;
qcom,gpio-vana = <3>;
qcom,gpio-vdig = <4>;
qcom,gpio-req-tbl-num = <0 1 2 3 4>;
qcom,gpio-req-tbl-flags = <1 0 0 0 0>;
qcom,gpio-req-tbl-label = "CAMIF_MCLK",
"CAM_RESET1",
"CAM_STANDBY",
"CAM_VANA",
"CAM_VDIG";
qcom,csi-lane-assign = <0x4320>;
qcom,csi-lane-mask = <0x7>;
qcom,sensor-position = <0>;
qcom,sensor-mode = <1>;
qcom,sensor-type = <0>;
qcom,cci-master = <0>;
};

/*c230w front camera - 2013/10/28 */
qcom,camera@78 {
compatible = "shinetech,gc0339";
reg = <0x78>;
qcom,slave-id = <0x42 0x00 0xc8>;
qcom,csiphy-sd-index = <1>;
qcom,csid-sd-index = <1>;
qcom,mount-angle = <270>;
qcom,sensor-name = "gc0339_c230w";
cam_vdig-supply = <&pm8110_l14>;
cam_vana-supply = <&pm8110_l19>;
cam_vio-supply = <&pm8110_l14>;
qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana";
qcom,cam-vreg-type = <0 1 0>;
qcom,cam-vreg-min-voltage = <1800000 1800000 2850000>;
qcom,cam-vreg-max-voltage = <1800000 1800000 2850000>;
qcom,cam-vreg-op-mode = <200000 0 80000>;
qcom,gpio-no-mux = <0>;
gpios = <&msmgpio 14 0>,
<&msmgpio 85 0>,
<&msmgpio 70 0>,
<&msmgpio 71 0>;
qcom,gpio-standby = <1>;
qcom,gpio-vana = <2>;
qcom,gpio-vdig = <3>;
qcom,gpio-req-tbl-num = <0 1 2 3>;
qcom,gpio-req-tbl-flags = <1 0 0 0>;
qcom,gpio-req-tbl-label = "CAMIF_MCLK",
"CAM_STANDBY",
"CAM_VANA",
"CAM_VDIG";
qcom,gpio-set-tbl-num = <1 1>;
qcom,gpio-set-tbl-flags = <0 2>;
qcom,gpio-set-tbl-delay = <1000 4000>;
qcom,csi-lane-assign = <0xe4>;
qcom,csi-lane-mask = <0x3>;
qcom,sensor-position = <1>;
qcom,sensor-mode = <1>;
qcom,cci-master = <0>;
status = "ok";
};
};

DIFFS:

1. different camera libs (the main file: /system/lib/libmm-qcamera.so and addit. files at /system/vendor/lib/libchromatix_*)

2. kernel configs differs (adb pull /proc.config.gz config.gz )

3. device tree configs differs (dt.img) in boot.img

4. (maybe also) differ OpenGL version ...

so (besides of all other differs ..) "Titanium S1 Plus"'s kernel and dtb - compiled without gc2235 sensor support :( ;

(meanwhile at the same build server MBUILD-SJ-06 ;) ):

shell@msm8610:/ $ cat /proc/version
Linux version 3.4.0-gff2c55f-00052-gfbea7fb (scm@MBUILD-SJ-06) (gcc version 4.7 (GCC) ) #1 SMP PREEMPT Wed Jul 23 16:54:41 CST 2014
shell@msm8610:/ $
shell@msm8610:/ $ cat /system/build.prop
# begin build properties
# autogenerated by buildinfo.sh
ro.build.id=KVT49L
ro.build.display.id=Karbonn_V0006_07232014_1607
ro.phicomm.inner.version=C230wJA_0000_4.4_1.0T06_20140723-1607_SH
ro.phicomm.outer.version=Karbonn_V0006_07232014_1607
ro.phicomm.hardware.version=C230wJA_MB_V1.1
ro.phicomm.kernel.version=3.4.0-gf65603a-00286-geb9bf07
ro.build.version.incremental=41
ro.build.version.sdk=19
ro.build.version.codename=REL
ro.build.version.release=4.4.2
ro.build.date=Wed Jul 23 16:31:36 CST 2014
ro.build.date.utc=1406104296
ro.build.type=user
ro.build.user=scm
ro.build.host=MBUILD-SJ-06
ro.build.tags=test-keys
ro.product.model=Titanium S1 Plus
ro.product.brand=Karbonn
ro.product.name=Karbonn
ro.product.device=msm8610
ro.product.board=MSM8610
ro.product.cpu.abi=armeabi-v7a
ro.product.cpu.abi2=armeabi
ro.product.manufacturer=Karbonn
ro.product.locale.language=en
ro.product.locale.region=US
ro.wifi.channels=
ro.board.platform=msm8610
# ro.build.product is obsolete; use ro.product.device
ro.build.product=Titanium S1 Plus
# Do not try to parse ro.build.description or .fingerprint
ro.build.description=msm8610-user 4.4.2 KVT49L 41 test-keys
ro.build.fingerprint=Karbonn/Karbonn/msm8610:4.4.2/KVT49L/41:user/test-keys
ro.build.characteristics=default
# end build properties

// anyone can check/compare files on both ROMs -- acc. to statements above ))

/// addit - compare drivers at: ls -l /sys/bus/i2c/drivers/

most complex (for now) - is to recompile dtb :(