当前位置: 首页 > 工具软件 > flash light > 使用案例 >

flashlight问题调试

微生俊健
2023-12-01

主要调试文件:

1.kernel-4.4\drivers\misc\mediatek\flashlight\flashlights-dummy-gpio.c

2.vendor\mediatek\proprietary\custom\mt6739\hal\flashlight\flash_tuning_custom.cpp

3.vendor\mediatek\proprietary\custom\mt6739\hal\flashlight\flash_tuning_custom_cct.cpp

一:常见闪光灯问题处理

1.开启闪光灯拍照和录像的照片跟视频偏色(我这里主要偏绿色)

修改vendor\mediatek\proprietary\custom\mt6739\hal\camera_3a\flashawb_tuning_custom.cpp中MTRUE为MFALSE(关掉白平衡)

2.明亮处拍照闪光灯会亮起

vendor/mediatek/proprietary/custom/mt6739/hal/imgsensor/gc5025_mipi_raw/camera_AE_PLineTable_gc5025mipiraw.h

适当减小u4StrobeTrigerBv值,即环境亮度低于所设 BV 门限值时才会打闪,设的越小,越需要到更暗的环境才会打闪,gc5025默认是20,可以适当调低

3.闪光灯打闪暗处和亮处拍照均会变暗

gain 值补不上来,则导致拍照变暗很多

解决办法:vendor\mediatek\proprietary\custom\mt6739\hal\flashlight\flash_tuning_custom.cpp

para.maxCapExpTimeUs默认值从80000改成100000,即闪光灯打闪时,capture shutter 最大值。默认为 80000,即 80ms,主要目的为了防止闪光灯工作时间较长会导致寿命缩短。通常建议不大于 12500

4.flashlights-dummy-gpio.c驱动拍黑暗处闪光灯起不了补光作用

kernel-4.4\drivers\misc\mediatek\flashlight\flashlights-dummy-gpio.c

解决办法:在开闪光灯拍照的时候,适当加500ms延时

dummy_enable();
 mdelay(500);

5.利用SGM37891闪光灯IC编程,降低手电筒电流,防止长时间开启后打闪或者提高闪光灯亮度

控制IC的1W管脚

spin_lock_irq(&g_strobeSMPLock);
        if(pinctrl_select_state(dummy_pinctrl, dummy_xxx_high)){printk("[constant_flashlight] set gpio failed!!\n");}
        udelay(200);     

        for(i=0; i<3; i++){  //4 Pulse    
            if(pinctrl_select_state(dummy_pinctrl, dummy_xxx_low)){printk("[constant_flashlight] set gpio failed!!\n");}
            udelay(30);
            if(pinctrl_select_state(dummy_pinctrl, dummy_xxx_high)){printk("[constant_flashlight] set gpio failed!!\n");}
            udelay(30);
     } 

spin_unlock_irq(&g_strobeSMPLock);

待续。。。。。。。。。。

闪光灯问题,可参考https://blog.csdn.net/qq_33575901/article/details/80906981

 类似资料: