微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 手机设计讨论 > MTK手机平台交流 > 在驱动中怎样区别是手电筒还是闪光灯?

在驱动中怎样区别是手电筒还是闪光灯?

时间:10-02 整理:3721RD 点击:
         flashlight在有CAMERA是要用闪光灯模式,用第三方手电筒时是用手电筒模式。请问在底层怎么区别是调用闪光灯还是手电筒模式?应该在这文件中leds_strobe.c的ioctl函数有宏的。如果是请问是哪两个宏表明这两种模式?

我没有做过,简单的搞法就是在CAM的打开供电LDO的代码地方kd_camera_hw.c中设置一个标志,到了打开LED的代码地方加以判断。

有道理!  再看看有没有人知道  没有就按你的想法搞!

驱动没法区分,只是提供接口。看看上层掉的是那个命令把命令打出来就知道了。
另外兄弟头像比较牛逼!

CUSTOM_HAL_FLASHLIGHT = constant_flashlight 这个是闪光灯
手电筒是
CUSTOM_HAL_FLASHLIGHT = torch_flashlight

这我知道  你理解错了

搞完贴出来哈

这一个,我的理解是,摄像头的闪光灯控制与普通手电筒的控制架构虽然放在同一个leds_strobe.c里面,并且共用硬件资源和软件中的部分资源(比如基本宏定义和基本LED开关函数),但是实际上它们走的是两路软件架构。也就是说在这个.c文件里面,在基本的宏和开关函数之上存在着两个架构:
1,闪光灯:camera的架构里会调用EXPORT_SYMBOL(strobe_VDIrq);这个接口,在这个借口里,直接调用基本的LED开关函数打开LED,并启动定时器,闪光结束后关掉LED,并没有通过
FLASHLIGHT_FUNCTION_STRUCT        constantFlashlightFunc=
{
        constant_flashlight_open,
        constant_flashlight_release,
        constant_flashlight_ioctl
};
这个结构体进行操作。
2,手电筒,会通过上面那个结构体进行标准操作,开关LED也是通过结构体封装过的开关函数(ioctl),而不是直接调用最底层的开关函数。
相对而言,闪光灯在这个文件里面只是实现了很简单的架构,就实现了定时器的功能而已。

呵呵!哪我按光辉的想法做算了!谢谢

这个只是看代码得来的,没有实际抓log看过。


明白 !谢谢

constant_flashlight_ioctl  这个函数读入的参数值怎么来的呢?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top