CQ
文章目录
- CQ
- Bug 1441328-前摄hm2140,i2c通讯成功,可以读到ID,但是无法点亮
- Bug 1441965试主摄gc4653,上电电压正常,i2c没有报错,但是读不到id,测量mclk波形发现只有瞬时的0.9v电压,没有波形
- bug [1444292](https://bugzilla.unisoc.com/bugzilla/show_bug.cgi?id=1444292)
- Bug 1444355
- bug**1445120**
- 关键字
- 打印信息
- bug1446365-第三方应用拍照有条纹
- bug1447504-[**使用testingcamera app,发现无法连接camera service**](https://bugzilla.unisoc.com/bugzilla/show_bug.cgi?id=1447504)
- [Bug 1451746**](https://bugzilla.unisoc.com/bugzilla/show_bug.cgi?id=1451746)平台是否有接口或者log可以获知camera实时的帧率
- [**Bug 1452066**](https://bugzilla.unisoc.com/bugzilla/show_bug.cgi?id=1452066) 打了pwm相关的patch后,在相机界面按电源键休眠会进sysdump
- [**Bug 1456327**](https://bugzilla.unisoc.com/bugzilla/show_bug.cgi?id=1456327)**点亮gc0310 yuv sensor,请帮忙确认目前的基线是否支持yuv sensor**
- bug1464620使用camera app打开camera报错,但是另外一个app能打开camera
- Bug 1462989X7项目,摄像头压力人脸识别之后,摄像头打开很慢,要重启才能恢复
- Bug 1464620 使用camera app打开camera报错,但是另外一个app能打开camera
- 1464620-使用camera app打开camera报错,但是另外一个app能打开camera
- 1465726-闪光灯打闪通过i2c写命令,但实际设计打闪应该是通过GPIO口
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vrIx92Lo-1611556899072)(C:\Users\cong.hai\AppData\Roaming\Typora\typora-user-images\image-20201203203233207.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wBanI2rx-1611556899074)(C:\Users\cong.hai\AppData\Roaming\Typora\typora-user-images\image-20201112112942114.png)]
exif信息——记录数码照片的属性信息和拍摄数据
电话:02120360600转7457
SHARKLE—SL8541E
9832E
Shark L3(SC9863)
8581E即SC9863
sharkl5pro-UIS7862S
查看user-debug exif信息
adb shell persist.vendor.cam.debug.mode debug
Bug 1440519
camera FAE反馈拍图debug分析时有异常,ct和pg不可能为-1,请帮忙看看
将图片转化为二进制之后,搜索 AWB_ 可以看到下边的数据都为FF,没有数据,所以色温ct值就会是-1,pg是AWB2.0版本类似tint的一个值。
Bug 1441328-前摄hm2140,i2c通讯成功,可以读到ID,但是无法点亮
#define PREVIEW_WIDTH 1920
#define PREVIEW_HEIGHT 1080
#define SNAPSHOT_WIDTH 1920
#define SNAPSHOT_HEIGHT 1080
#define VIDEO_WIDTH 1920
#define VIDEO_HEIGHT 1080
这个宽高比要符合4/3以及16位对齐,init_setting对应的寄存器也要修改。
/*line time unit: 1ns*/
#define PREVIEW_LINE_TIME 33391
#define SNAPSHOT_LINE_TIME 33391
#define VIDEO_LINE_TIME 29984
/* frame length*/
#define PREVIEW_FRAME_LENGTH 1110
#define SNAPSHOT_FRAME_LENGTH 1110
#define VIDEO_FRAME_LENGTH 1110
line_time和frame_length的乘以30要等于10的九次方,满足展讯平台帧率30,否则画面可能会卡。
Bug 1441965试主摄gc4653,上电电压正常,i2c没有报错,但是读不到id,测量mclk波形发现只有瞬时的0.9v电压,没有波形
identify发生了失败,应该是配置上存在问题,现在展讯平台还在分析具体原因,稍后给出分析结果。同时请尽快提供模组的打样图,
3: 582, gc4653_drv_identify: mipi raw identify
000001 04-01 07:03:53.545 338 338 E hw_sensor: 610, hw_sensor_read_reg: zxd, addr = 0x3f0, value=0xff, bit=128, ret=0
000001 04-01 07:03:53.545 338 338 E 9850ka_gc4653: 596, gc4653_drv_identify: sensor identify fail, pid_value = ff, ver_value = 0
000001 04-01 07:03:53.545 338 338 I sns_drv_u: 192, sensor_power_on: E:power_on = 0
000001 04-01 07:03:53.545 338 338 D hw_sensor: 303, hw_sensor_power_down: power_level 0
000001 04-01 07:03:53.547 338 338 I hw_sensor: 382, hw_sensor_set_mclk: mclk 0, ret 0
Hi Customer:
展锐这边没有认证过模组,该问题从平台的角度来分析还是需要sensor 厂商去处理:
建议按照以下条件去实验:
1.检查三路电压是否符合sensor规格书要求,并检查sensor 上下电以及PWDN等是否满足芯片规格书要求。
2.试着修改MIPI驱动能力
3.增加I/O口的驱动能力。
4.上下电过程中增加延时。
5.检查init_setting寄存器的值。
针对这种问题,平台这边没有可修改的,平台最多能修改的就是在PIN MAP里面修改部分PIN的驱动能力。
由于该问题紧跟sensor,和sensor 关系比较大,建议贵司推动sensor fae 检查相关配置。
bug 1444292
自拍照像时即使把美颜效果关闭,拍的照片也还是有美颜效果,照片给人感觉有点失真。
调整boardconfig.mk文件中有关美颜(bokeh)部分的设置:
TARGET_BOARD_BOKEH_MODE_SUPPORT := false 这里改为关闭
Bug 1444355
找一个样机,打闪拍照,导出log
看代码和log:
找camera_focus_post_proc函数下flash_capture_skip_num的值
这个值最终一般是24,过程中是18+6,就看下过程中是怎么得来的。
找到调用camera_focus_post_proc函数的函数
init_param.ops.af_post_proc = camera_focus_post_proc;
cmr_preview.c下的
prev_set_preview_skip_frame_num
cmr_oem.h下的
cmr_int prev_set_preview_skip_frame_num
bug1445120
后摄录像时帧率被限制了影响亮度,需要取消帧率限制
从log看 录像模式帧率为固定帧率, 30 - 30 , 请apk同事适当降低帧率
01563F 10-29 12:06:00.321 316 614 D cmr_oem : 7955, camera_isp_ioctl: fps 30 30
015640 10-29 12:06:00.321 316 614 D cmr_setting: 1153, setting_set_range_fps: min_fps=30, max_fps=30
请贵司尝试修改所需对应camera和对应模式下的配置。
device/sprd/sharkle/sl8541e_1h10/media_profiles.xml
例720p的frameRate 30适当降低,请注意相关修改可能影响cts测试,需加强验证,谢谢!
<EncoderProfile quality="720p" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="8000000"
width="1280"
height="720"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="44100"
channels="1" />
</EncoderProfile>
关键字
CameraService::connect|processCapture|setting_set_range_fps|:hal3:|fps
CameraService::connect|processCa|setting_set_flashdevice|ignore this frame|camera_focus_post_proc
identify|configurestreams|processcapture|handlecbdatawithlock
stream_on|identify|error|fail|sensor_id
打印信息
2>&1 | tee build_all.log
bug1446365-第三方应用拍照有条纹
升高cpu频率
-
/sys/devices/system/cpu/
-
在cpu目录下有cpu0和cpu4,表示大合和小合,要在这两个目录下分别设置
-
进入到cpu0目录,执行:
echo userspace >cpufreq/scaling_governor
之后再进入到cpufreq查看最大频率、当前频率的指令
s9863a1h10_go_32b:/sys/devices/system/cpu/cpu0/cpufreq # ls ls affected_cpus scaling_available_frequencies scaling_max_freq cpuinfo_cur_freq scaling_available_governors scaling_min_freq cpuinfo_max_freq scaling_cur_freq scaling_setspeed cpuinfo_min_freq scaling_driver stats cpuinfo_transition_latency scaling_fix_freq related_cpus scaling_governor s9863a1h10_go_32b:/sys/devices/system/cpu/cpu0/cpufreq # cat cpuinfo_max_ at cpuinfo_max_freq < 1200000
-
echo xxx >cpufreq/scaling_setspeed(XXX表示频率)
echo 1200000 > scaling_setspeed
-
scaling_cur_freq通过这个频率查看是否修改成功
C:\Users\cong.hai>adb shell s9863a1h10_go_32b:/ # cd /sys/devices/ cd /sys/devices/ s9863a1h10_go_32b:/sys/devices # cd system/cpu/ cd system/cpu/ s9863a1h10_go_32b:/sys/devices/system/cpu # ls ls cpu0 cpu3 cpu6 cpuhotplug isolated offline power cpu1 cpu4 cpu7 cpuidle kernel_max online present cpu2 cpu5 cpufreq hotplug modalias possible uevent s9863a1h10_go_32b:/sys/devices/system/cpu # cat max cat max cat: max: No such file or directory 1|s9863a1h10_go_32b:/sys/devices/system/cpu # cat kernel_max cat kernel_max 7 s9863a1h10_go_32b:/sys/devices/system/cpu # cd cpu0 cd cpu0 s9863a1h10_go_32b:/sys/devices/system/cpu/cpu0 # echo userspace >/cpufreq/scaling_governor cho userspace >/cpufreq/scaling_governor < /system/bin/sh: can't create /cpufreq/scaling_governor: No such file or directory 1|s9863a1h10_go_32b:/sys/devices/system/cpu/cpu0 # echo userspace >/cpufreq/scaling_governor cho userspace >/cpufreq/scaling_governor < /system/bin/sh: can't create /cpufreq/scaling_governor: No such file or directory 1|s9863a1h10_go_32b:/sys/devices/system/cpu/cpu0 # ls ls cpu_capacity cpuidle of_node subsystem uevent cpufreq hotplug power topology s9863a1h10_go_32b:/sys/devices/system/cpu/cpu0 # echo userspace >cpufreq/scaling_governor cho userspace >cpufreq/scaling_governor < s9863a1h10_go_32b:/sys/devices/system/cpu/cpu0 # s9863a1h10_go_32b:/sys/devices/system/cpu/cpu0 # s9863a1h10_go_32b:/sys/devices/system/cpu/cpu0 # ls ls cpu_capacity cpuidle of_node subsystem uevent cpufreq hotplug power topology s9863a1h10_go_32b:/sys/devices/system/cpu/cpu0 # cd cpu cd cpu cpu_capacity cpufreq/ cpuidle/ d cpu < /system/bin/sh: cd: /sys/devices/system/cpu/cpu0/cpu: No such file or directory 2|s9863a1h10_go_32b:/sys/devices/system/cpu/cpu0 # cd cpuf d cpufreq/ < s9863a1h10_go_32b:/sys/devices/system/cpu/cpu0/cpufreq # ls ls affected_cpus scaling_available_frequencies scaling_max_freq cpuinfo_cur_freq scaling_available_governors scaling_min_freq cpuinfo_max_freq scaling_cur_freq scaling_setspeed cpuinfo_min_freq scaling_driver stats cpuinfo_transition_latency scaling_fix_freq related_cpus scaling_governor s9863a1h10_go_32b:/sys/devices/system/cpu/cpu0/cpufreq # cat cpuinfo_max_ at cpuinfo_max_freq < 1200000 s9863a1h10_go_32b:/sys/devices/system/cpu/cpu0/cpufreq # echo 1200000 > scaling_setspeed cho 1200000 > scaling_setspeed < s9863a1h10_go_32b:/sys/devices/system/cpu/cpu0/cpufreq # s9863a1h10_go_32b:/sys/devices/system/cpu/cpu0/cpufreq # s9863a1h10_go_32b:/sys/devices/system/cpu/cpu0/cpufreq # s9863a1h10_go_32b:/sys/devices/system/cpu/cpu0/cpufreq # cat scaling_cur_freq cat scaling_cur_freq 1200000 s9863a1h10_go_32b:/sys/devices/system/cpu/cpu0/cpufreq # cat scaling_cur_freq cat scaling_cur_freq 1200000 s9863a1h10_go_32b:/sys/devices/system/cpu/cpu0/cpufreq # cat scaling_cur_freq cat scaling_cur_freq 1200000 s9863a1h10_go_32b:/sys/devices/system/cpu/cpu0/cpufreq # cat scaling_cur_freq cat scaling_cur_freq 1200000 s9863a1h10_go_32b:/sys/devices/system/cpu/cpu0/cpufreq # cd ../ cd ../ s9863a1h10_go_32b:/sys/devices/system/cpu/cpu0 # cd .. cd .. s9863a1h10_go_32b:/sys/devices/system/cpu # ls ls cpu0 cpu3 cpu6 cpuhotplug isolated offline power cpu1 cpu4 cpu7 cpuidle kernel_max online present cpu2 cpu5 cpufreq hotplug modalias possible uevent s9863a1h10_go_32b:/sys/devices/system/cpu # cd cpu1 cd cpu1 s9863a1h10_go_32b:/sys/devices/system/cpu/cpu1 # ls ls cpu_capacity cpuidle of_node power topology cpufreq hotplug online subsystem uevent s9863a1h10_go_32b:/sys/devices/system/cpu/cpu1 # cd cpu cd cpu cpu_capacity cpufreq/ cpuidle/ d cpu < /system/bin/sh: cd: /sys/devices/system/cpu/cpu1/cpu: No such file or directory 2|s9863a1h10_go_32b:/sys/devices/system/cpu/cpu1 # cd cpuf d cpufreq/ < s9863a1h10_go_32b:/sys/devices/system/cpu/cpu1/cpufreq # ls ls affected_cpus scaling_available_frequencies scaling_max_freq cpuinfo_cur_freq scaling_available_governors scaling_min_freq cpuinfo_max_freq scaling_cur_freq scaling_setspeed cpuinfo_min_freq scaling_driver stats cpuinfo_transition_latency scaling_fix_freq related_cpus scaling_governor s9863a1h10_go_32b:/sys/devices/system/cpu/cpu1/cpufreq # cat scaling_cur at scaling_cur_freq < 1200000 s9863a1h10_go_32b:/sys/devices/system/cpu/cpu1/cpufreq # cd ../.. cd ../.. s9863a1h10_go_32b:/sys/devices/system/cpu # ls ls cpu0 cpu3 cpu6 cpuhotplug isolated offline power cpu1 cpu4 cpu7 cpuidle kernel_max online present cpu2 cpu5 cpufreq hotplug modalias possible uevent s9863a1h10_go_32b:/sys/devices/system/cpu # C:\Users\cong.hai>s9863a1h10_go_32b:/sys/devices/system/cpu/cpu0/cpufreq # cat scaling_cur_freq cat scaling_cur_freq 1200000
\shnas02\CustomerData\产品工程管理部\zte_sh\FTPDATA\SPCSS00750688
- 工程模式:调试bai模式,一般是手机维修时候使用。相当于电脑编程调试。
【1】工程模式下前后摄拍照有条纹,用户模式下拍照无条纹:
分析:
工程模式为非ZSL拍照,用户模式为ZSL拍照
将工程模式改为ZSL拍照后,工程模式下前后摄拍摄4000张无条纹问题
结论:zsl模式拍照无条纹。仅非zsl出现问题
【2】user版本有条纹问题,userdebug版本无条纹问题:
分析
在驱动文件中sensor出图后(cmr_int st55a_091_drv_stream_on)增加延时(增加延时的原因就是userdebug版本要打印很多log,时间会久一点),复现概率降低,8台样机中4台问题可复现
修改驱动文件中的寄存器,将init_setting[]中的值分别复制到preview_setting[]和snapshot_setting[]中。验证800多次未出现条纹问题,后期复拍150次出现一次条纹,概率降为极低。
结论:通过延时 和 对比userdebug版本和user版本,确定和驱动代码无关,应该和某个部件的读写速率相关
客户本地验证,相同的sensor setting , F50有问题,F20无问题,说明本问题和sensor setting无关
概念
- 非ZSL
1.开始预览,出预览帧,这个时候已经正常预览了
2.这个时候按下shutter,开始拍照,开始拍照的时候,预览流停止,
3.拍照的时候要做一系列的动作,af对焦,准备拍照,曝光,
4.拍照流数据回调,这个时候是raw数据,然后开始对raw数据进行编码
5.编码成为JPEG,然后保存,此时拍照完成,从新开始预览。
传统的快照,也就是在拍照的时候,预览是停止的。
拍照结束后,预览将在C2D模块之后,重新开始预览
- ZSL:零延时拍照
-
一个surfaceView用于预览
-
一个队列缓存snapshot的数据
-
拍照动作获取队列某桢数据作为拍照数据输出
-
输出的照片需要YUV->JPEG数据的转码
日报
- 计算一秒出多少帧
一帧有多少行1925
一行多少时间 line_time28804
1925×28804/10^6=55.44ms
1000/55.44=18帧
- sensor_if.img_ptn置0
位置:cmr_grab.c
含义是不用经过Dcam、ISP这些,sensor给什么就会出什么。
bug1447504-使用testingcamera app,发现无法连接camera service
4812 E libc : Access denied finding property “media.settings.xml”
11-05 16:35:49.864 3627 3691 E libc : Access denied finding property “hwc.external.plugin”
从log可以看出,找不到"media.settings.xml"文件,
请您在路径"vendor/etc/media_profiles_turnkey.xml"下查看下是否有此文件
- testcameraApp路径:/sprdroid10_trunk_19c/pdk/apps/TestingCamera2/
Testingcamera2的目标是允许所有API原语和行为都通过一个合理的UI,并允许在其上构建简单的演示和测试用例。
应用程序使用的概念与API本身的概念相匹配,因此任何给定的配置都是如此在应用程序中,可以很容易地用camera2 API直接复制。
- 用户界面的概念:
用户界面分为两个面板,并排(横向)或彼此上方(纵向)。
左侧(或上方)面板通常显示相机子系统的输出,而右侧面板(或以下)面板通常具有与摄像机子系统交互的控件。
API中的每个对象类别都是通过一个专用于该类别的窗格进行配置的窗格按类别分组在列表中,可以在视图中添加、删除或折叠窗格任意地。
左侧窗格包含目标窗格以及应用程序的总体日志窗格。右窗格包含照相机、请求、连拍和实用程序窗格
- 应用程序的基本操作如下:
- 添加摄影机窗格,选择要使用的摄影机
- 至少添加一个目标窗格,并为每个窗格选择所需的目标类型及其配置选项
- 从“摄影机”窗格打开并配置摄影机
- 添加一个请求窗格,选择所需的摄像机和目标,以及所需的用例模板。
- 根据请求,使用“捕获”(一次拍摄)或“重复”(连续)按钮开始捕捉图像。
应用程序还有一组预设配置,可以从右上角的下拉菜单访问这些配置,以加快操作速度
2.1 相机窗格
摄像头窗格包括单个摄像头的设备级控件,可以从Android设备上的所有摄像头中进行选择。它允许打开设备,读取其摄像头特征信息,配置一组目标,以及停止或冲洗摄像头。
2.2 目标窗格
目标窗格表示摄影机数据的各种目的地。目的地的类型,以及此目标的摄像头始终可供选择。每种目的地都有自己的一组用于配置和操作的控件。
窗格始终有一个“配置”开关,用于指定是否包含该目标窗格在选定摄影机的下一个配置操作中。在摄影机的配置中包含目标窗格之前,它不能用作对该摄影机的捕获求的目标。
2.2.1 TextureView和SurfaceView目标
这些是通常用于相机预览的基本输出;每个输出都是由它从相机请求的缓冲区大小来配置的。
2.2.2 图像阅读器目标
这是基本的静态捕获输出,用于需要应用程序访问的JPEG或未压缩数据。它只需配置所需的输出格式和大小。
2.2.3 MediaCodec和MediaRecorder目标
这些是视频录制目标,它们使用Android设备的视频编码API来创建视频文件。
2.2.4 RenderScript目标
这个目标将相机数据发送到RenderScript分配,Android的renderscriptapi可以从中高效地处理这些数据
2.3 请求窗格
请求窗格用于设置单个相机捕获请求的配置。它包括相机设备捕捉一帧数据所需的所有设置。它包含选择器将请求发送到的摄像头,然后选择要用于图像输出的已配置目标窗格。给定的请求可以向配置的目标的任何子集发送数据,但它必须至少包含一个目标。
摄像机设备为各种用例的所有请求设置提供默认值可以从下拉列表中选择起始模板。
一旦打开并配置了摄像头,并且为请求时,可以使用“捕获”或“重复”按钮将请求发送到相机。
捕获是一个一次性操作,它只是指示相机捕捉一帧数据。这通常用于高分辨率快照、触发自动对焦或其他单一事件。捕获按先进先出的顺序排队和处理。
Repeat是一种连续操作,相机设备使用相同的请求设置连续捕捉图像。它们的优先级低于捕获,因此,如果某个请求正在活动地重复,其他请求仍然可以使用“捕获”操作来触发单个捕获。另一个请求触发repeat将优先于其他请求之前的任何repeat操作。
若要停止重复,请使用摄影机窗格的停止方法。
2.4 爆裂窗格
一组单一的请求以很快的速度突然聚集在一起。以原子的方式捕捉突发事件,而不干预其他请求。与单个请求类似,它们可以是一次性的,也可以是连续的。
“突发”窗格包含要将突发发送到的目标摄影机,然后允许在突发中包含一个或多个请求,这些请求来自所选目标的请求列表
2.5 实用程序窗格
还可以实现各种功能,如自动抓取功能或其他高级功能。
2.6 配置加载/保存
TestingCamera2支持从XML定义加载预定义的一组窗格。定义可以是默认包含的集合之一,也可以位于设备SD卡上。
三 内部架构
每个窗格都是一个专门的视图,有一些通用方法来设置它们并通知它们其他窗格中的更改。窗格由全局窗格跟踪器跟踪,该跟踪器允许单个窗格通知其他窗格状态更改(例如选定摄影机中的更改,以便所有以该摄影机窗格为目标的窗格都可以更新其显示的设置选项),以查找给定类型的窗格,等等。
摄像机设备的操作集中在一个单独的camera ops类中,该类跟踪打开的设备,通知窗格相机设备状态的变化,并允许实用程序窗格截获/覆盖相机设备操作作为desi
定位错误:/system/lib/libcameraservice.so (android::camera2::initializeEx
在ParametersExFun.cpp
中加ALOG输出变量,如果没有输出,就说明有一个变量没有传入参数,即地址为空。
/frameworks/av/services/camera/libcameraservice/api1/client2/Parameters.h
/vendor/sprd/platform/frameworks/av/service/camera/libcameraservice/api1/client2/
/cts/tests/camera/libctscamera2jni/native-camera-jni.cpp (revision 70d4f1e1)
class StaticInfo
升级前:W20.31.2
升级后:W20.43.3
pac包路径:\10.0.1.110\Hudson\ShareData\CSDataRelease\Test_Products_Library\sprdroid10_trunk_19c\MOCORDROID10_Trunk_19C_RLS1\MOCORDROID10_Trunk_19C_RLS1_W20.43.3\Images
- sharkle手机,大概相同版本的手机
pac包路径:\10.0.1.110\Hudson\ShareData\CSDataRelease\Test_Products_Library\sprdroid10_trunk_19c\MOCORDROID10_Trunk_19C\MOCORDROID10_Trunk_19C_PATCH_W20.43.7\Images\sp9832e_1h10_gofu-userdebug-native
然后再.cpp中加log, 打印所有的count的iso的值,
然后看客户问题机器下发多少?
hal层传输给app,app传输给framework
Bug 1451746**平台是否有接口或者log可以获知camera实时的帧率
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DCJE3CNK-1611556899075)(C:\Users\cong.hai\AppData\Roaming\Typora\typora-user-images\image-20201112151051270.png)]
在log中搜索processcapture,可以看到每秒有多少帧。后边的cap_intent=1表示预览、2表示拍照、3表示录像。
setPreviewFps搜索帧率范围,动态帧率。
Bug 1452066 打了pwm相关的patch后,在相机界面按电源键休眠会进sysdump
834976
1416513之前
背光用的是pwmb,闪光灯用的是pwmc。
PWM信号把模拟信号转化为数字电路所需要的编码,现在基本是采用数字电路,因此在很多场合都采用PWM信号,我们经常见到的就是交流调光电路。
systemstate dump 系统状态奔溃
camera 检查一下闪光灯配置
k 4.4 pwm 底层驱动如果关闭pwm ,又去修改pwm的会引起死机的。要保证上层的逻辑是正确的。
关闭pwmb,再把栈空比置空,然后再去检验
现在要使用pwmc控制闪光灯,然后把pwmb关闭,这时要把栈空比置0,回退代码验证。
之前打的patch是修改的闪光灯部分即pwmc,现在打入patch出现sysdump。所以要把代码回退掉,看下在背光(pwmb)和闪光灯情况下是否还有sysdump情况出现。
Bug 1456327点亮gc0310 yuv sensor,请帮忙确认目前的基线是否支持yuv sensor
http://review.source.unisoc.com/gerrit/#/c/701507/
1 9747f6d.diff.zip请直接打到vendor/sprd/modules/libcamera
2 sprd_camera.rar直接覆盖kernel/drivers/misc下的sprd_camera
参考:Bug 1081222 - [SL8541E] [FOTON] [M04] 是否支持yuv摄像头
不支持YUV Sensor ,GC0310是支持Bayer Raw输出的,建议Sensor支持输出Bayer Raw
这样版本默认是支持的。功能,性能,稳定性都是有保证的,是经过量产验收的,
如果重新开发YUV Sensor,开发周期,功能,性能,稳定性都需要大量时间才能达到
量产需求,时间上是不可控的。
bug1464620使用camera app打开camera报错,但是另外一个app能打开camera
从log中分析:
11-27 03:05:47.771 456 812 D cmr_oem : 11734, camera_local_stop_preview: E
11-27 03:05:47.771 456 812 I cmr_oem : 11738, camera_local_stop_preview: don't previewing
11-27 03:05:47.771 456 812 D cmr_oem : 11817, camera_local_stop_preview: X
11-27 03:05:47.771 456 812 D Cam3OEMIf: 2496, setCameraState: X: camera state = SPRD_IDLE, preview state = SPRD_IDLE, capture state = SPRD_IDLE focus state = SPRD_IDLE set param state = SPRD_IDLE
11-27 03:05:47.771 456 812 I Cam3OEMIf: 3512, stopPreviewInternal: X Time:0 ms camera id 0
11-27 03:05:47.788 456 812 E CamDevSession@3.2-impl: processOneCaptureRequest: HAL process_capture_request call failed!
11-27 03:05:47.788 743 9524 E Camera3-Device: Camera 0: sendRequestsBatch: RequestThread: Unable to submit capture request 3 to HAL device: Function not implemented (-38)
11-27 03:05:47.789 8981 8981 E CAM_ModeListView: Capture layout helper needs to be set first.
11-27 03:05:47.795 8981 9472 E CAM2PORT_AndCam2AgntImp: Camera device '0' encountered error code '4'
492 E cmr_prev: 3393, prev_error_handle: hal_err error type 0x10001, camera_id 0
搜10001错误
Bug 1462989X7项目,摄像头压力人脸识别之后,摄像头打开很慢,要重启才能恢复
人脸解锁前摄——打开前摄——关闭前摄——打开后摄——预览
在打开后摄和预览之间时间太长,看log时间在5s左右。
目前系统log等级为四级,可能会有些影响,建议降为一级试下。
搜this is看进入camera
slowmotion 高帧率 sensor work mode3 高帧率模式
FaceLock|libfacedetect|stopPreview|requestCameraOpen|cmr_oem|cmr_fd_sprd|camera_id|this is
Bug 1464620 使用camera app打开camera报错,但是另外一个app能打开camera
修改zsl配置
iff --git a/device/sprd/sharkle/sp9820e_2h10/BoardConfig.mk b/device/sprd/sharkle/sp9820e_2h10/BoardCo
index e711141…358aeeb 100644
— a/device/sprd/sharkle/sp9820e_2h10/BoardConfig.mk
+++ b/device/sprd/sharkle/sp9820e_2h10/BoardConfig.mk
@@ -132,7 +132,7 @@ TARGET_BOARD_AF_VCM_DW9800W := false
#------section 3: feature config------
#select camera zsl cap mode
TARGET_BOARD_CAMERA_CAPTURE_MODE := false
-TARGET_BOARD_CAMERA_CAPTURE_NOZSL := false
+TARGET_BOARD_CAMERA_CAPTURE_NOZSL := true
#support 4k record
TARGET_BOARD_CAMERA_SUPPORT_4K_RECORD := false
diff --git a/vendor/sprd/modules/libcamera/hal3_2v1/SprdCamera3Setting.cpp b/vendor/sprd/modules/libcam
index 6b1ebcc…df76193 100644
— a/vendor/sprd/modules/libcamera/hal3_2v1/SprdCamera3Setting.cpp
+++ b/vendor/sprd/modules/libcamera/hal3_2v1/SprdCamera3Setting.cpp
@@ -3651,8 +3651,6 @@ int SprdCamera3Setting::updateWorkParameters(
pushAndroidParaTag(ANDROID_SPRD_ZSL_ENABLED);
}
- s_setting[mCameraId].sprddefInfo.sprd_zsl_enabled = 1;
- pushAndroidParaTag(ANDROID_SPRD_ZSL_ENABLED);
int32_t cropRegionUpdate = false;
if (frame_settings.exists(ANDROID_SCALER_CROP_REGION)) {
这个修改是不进行zsl的拍照
-TARGET_BOARD_CAMERA_CAPTURE_NOZSL := false
+TARGET_BOARD_CAMERA_CAPTURE_NOZSL := true
下面这个修改是强制让底层走zsl拍照.原生代码里面没有,应该是贵司添加的
- s_setting[mCameraId].sprddefInfo.sprd_zsl_enabled = 1;
- pushAndroidParaTag(ANDROID_SPRD_ZSL_ENABLED);
1464620-使用camera app打开camera报错,但是另外一个app能打开camera
updateWorkParameters
1465726-闪光灯打闪通过i2c写命令,但实际设计打闪应该是通过GPIO口
修改DTS,把i2c0里边的写到i2c2里
已经有驱动,修改makefile中的依赖关系
/sprdroid10_trunk_20a/bsp/kernel/kernel4.14/arch/arm64/boot/dts/sprd/ud710-20c10.dts
/sprdroid10_trunk_20a/bsp/modules/camera/flash/ocp8137/flash_ic_ocp8137_drv.c
datasheet
AW36423是一个高功率双通道LED闪存驱动,在2.7V到5.5V输入电压范围内,两个源LED都能提供最高可达1.0A的输出。
该设备为硬件闪存启用(STROBE频闪仪)有一个逻辑输入。这个逻辑输入有一个内部300k下拉电阻到GND。
该设备是通过一个I2c兼容接口控制,包括调整闪光灯和手电筒当前值,改变闪光超时持续时间和IVFM水平,此外,还有标志和状态位,指示flash电流超时,LED超温条件,LED故障(短),设备终端关机和VIN欠压条件。
- 闪光模式
在闪光模式下,LED电流源(LED1/2)提供从3.9mA到10A的256个目标电流电平。闪光电流通过LED1和LED2闪光亮度寄存器进行调节。闪光灯模式通过使能寄存器激活(将M1、M0设置为“11”),或者在使能时通过拉频闪仪引脚(使能寄存器)。一旦闪光序列被激活,
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0qiu2ZpE-1611556899077)(C:\Users\cong.hai\AppData\Roaming\Typora\typora-user-images\image-20201203170742304.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IwiAirLF-1611556899078)(C:\Users\cong.hai\AppData\Roaming\Typora\typora-user-images\image-20201203170920779.png)]