MTK Camera Open/Close流程
十分感谢
Camera(6) MTK camera启动流程介绍https://blog.csdn.net/karaskass/article/details/106261187
MTK Camera 从底层到应用层一网打尽
《Android Q 之MTK代码分析(一)--Camera Hal3 Service》
《Android Q 之MTK代码分析(二)--Camera Hal3 Search Sensor》
备忘:
文末支持一波,感谢鞠躬
0、前文回顾
前文已经简单说明CameraHalService服务、Serarch Sensor的过程。
接下来分析下Hal层的camera Open/Close流程。
1、CameraService
frameworks/av/services/camera/libcameraservice/CameraService.cpp
08-26 11:30:28.450083 4144 4144 I CameraService: CameraService started (pid=4144)
08-26 11:30:28.450097 4144 4144 I CameraService: CameraService process starting/*这里打印的“开始延迟”是对HAL从开始运行所需时间的估计进程创建,将自己注册为HAL。实际的启动时间可能更长
因为进程可能还没有加入线程池,所以它可能还没有准备好加入处理事务*/
08-26 11:30:28.460310 4144 4144 I HidlServiceManagement: Registered [email protected]::ICameraService/default (start delay of 129ms)
2、CameraHalService
vendor/mediatek/proprietary/hardware/mtkcam3/main/hal/service/service.cpp
08-26 11:30:28.462538 4145 4145 I camerahalserver: Camera HAL Server is starting..., ADV_CAM_SUPPORT(0)
3、Serarch sensor
08-26 11:30:28.684843 4145 4145 I mtkcam-devicemgr: [initialize] +
08-26 11:30:28.685697 4145 4145 D MtkCam/Util/LogicalDevice: (4145)[searchDevices] Create logical device map
08-26 11:30:28.686332 4145 4145 D MtkCam/HalSensorList: [searchSensors] searchSensors
// set mclk
08-26 11:30:28.687258 4145 4145 D SeninfDrvImp: [setMclk][setMclk]pcEn(1), clkPol(0), mMclkUser[0](1), TimestampClk(0), freq(24), mclkIdx 0
08-26 11:30:28.687995 4145 4145 D MtkCam/HalSensorList: [enumerateSensor_Locked] impSearchSensor search to 4
08-26 11:30:28.688013 4145 4145 D ImgSensorDrv: [searchSensor]SENSOR search start
08-26 11:30:28.740489 4145 4145 D ImgSensorDrv: [searchSensor]set sensor driver id =1
08-26 11:30:28.740519 4145 4145 D ImgSensorDrv: [searchSensor]sensorIdx 0 found <0x560d45/ov13b10_qtech_mipi_raw/SENSOR_DRVNAME_OV13B10_QTECH_MIPI_RAW>
08-26 11:30:28.740564 4145 4145 D ImgSensorDrv: [getInfo2]prv w=0x838,h=0x618
08-26 11:30:28.740572 4145 4145 D ImgSensorDrv: [getInfo2]cap w=0x1070,h=0xc30
08-26 11:30:28.740581 4145 4145 D ImgSensorDrv: [getInfo2]vd w=0x1070,h=0xc30
08-26 11:30:28.740590 4145 4145 D ImgSensorDrv: [getInfo2]pre GrapX=0x0,GrapY=0x008-26 11:30:28.740605 4145 4145 D MtkCam/HalSensorList: [getRawInfo] SensorOutputDataFormat: 0, ImageSensor Type: 0
// build sensor meta
08-26 11:30:28.740656 4145 4145 D MtkCam/HalSensorList: [buildSensorMetadata] impBuildSensorInfo start!
08-26 11:30:28.740757 4145 4145 D MtkCam/HalSensorList: [buildSensorMetadata] impBuildSensorInfo end!08-26 11:30:28.751473 4145 4145 I MtkCam/HalSensorList: [impBuildStaticInfo_v1] <load custom folder>
08-26 11:30:28.751473 4145 4145 I MtkCam/HalSensorList: STATIC_COMMON: [CAMERA]:1; [CONTROL_AE]:1; [CONTROL_AF]:1; [CONTROL_AWB]:1; [TUNING]:1; [FLASHLIGHT]:1; [SENSOR]:2; [LENS]:0;
08-26 11:30:28.751473 4145 4145 I MtkCam/HalSensorList: STATIC_PLATFORM: [MODULE]:8; [LENS]:8;
08-26 11:30:28.751473 4145 4145 I MtkCam/HalSensorList: STATIC_PROJECT: [MODULE]:0; [LENS]:0;08-26 11:30:28.758605 4145 4145 D MtkCam/HalSensorList: [updateAFData] MTK_LENS_INFO_MINIMUM_FOCUS_DISTANCE: 20.000000, add AF modes & regions
08-26 11:30:28.758626 4145 4145 D MtkCam/HalSensorList: [buildStaticInfo] MTK_SENSOR_INFO_ACTIVE_ARRAY_REGION(0, 0, 4208, 3120)
08-26 11:30:28.758638 4145 4145 D MtkCam/HalSensorList: [buildStaticInfo] MTK_SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE(0, 0, 4208, 3120)08-26 11:30:28.760406 4145 4145 I MtkCam/HalSensorList: [impBuildStaticInfo_v1_overwrite] <load custom folder - overwrite>
08-26 11:30:28.760406 4145 4145 I MtkCam/HalSensorList: STATIC_PLATFORM: [MOD_OVERWRITE]:8;
08-26 11:30:28.760406 4145 4145 I MtkCam/HalSensorList: STATIC_PROJECT: [MOD_OVERWRITE]:0;/*这块会search 到5次sensor*/
08-26 11:30:29.077172 4145 4145 D MtkCam/Util/LogicalDevice: (4145)[createDeviceMap] sensorNum : 5
08-26 11:30:33.480615 4145 4145 I mtkcam-devicemgr: [initialize] -
其实在search sensor之后open之前还有一个CameraProviderManager initial的操作
08-26 11:30:33.486717 4144 4147 I CameraProviderManager: Connecting to new camera provider: internal/0, isRemote? 1
08-26 11:30:33.487572 4145 4165 W mtkcam-camprovider: [notifyDeviceStateChange] Not implement
08-26 11:30:33.490413 4145 4164 W mtkcam-camprovider: [getConcurrentStreamingCameraIds] Not implement, return OK
08-26 11:30:33.490669 4144 4147 I CameraProviderManager: Enumerating new camera device: [email protected]/internal/0
08-26 11:30:33.491152 4145 4164 D mtkcam-dev3: 0[CameraDevice3Impl::getResourceCost] Camera Device 0: resourceCost 100, conflict to [[email protected]/internal/5]
08-26 11:30:33.494548 4144 4147 I CameraProviderManager: Camera provider internal/0 ready with 6 camera devices3、open camera
08-26 11:30:38.443727 4145 4145 I mtkcam-dev3: 0[CameraDevice3Impl::open] open camera3 device ([email protected]/internal/0) systraceLevel(1) instanceId(0) vid(0)
强力建议熟读Camera3.h Startup and general expected operation sequence
https://www.androidos.net.cn/android/10.0.0_r6/xref/hardware/libhardware/include/hardware/camera3.h
1、camera 架构分析
Camera的框架分为Kernel部分和hal部分,其中kernel部分主要有两块:
image sensor driver,负责具体型号的sensor的id检测,上电,以及在preview、capture、初始化、3A等等功能设定时的寄存器配置;
isp driver,通过DMA将sensor数据流上传;
HAL层部分主要有三部分组成:
imageio,主要负责数据buffer上传的pipe;
drv,包含imgsensor和isp的hal层控制;
feature io,包含各种3A等性能配置;
2、camera open 流程
2.1原文阅读
* 1. Framework calls camera_module_t->common.open(), which returns a
* hardware_device_t structure.
简单翻译-->
framework调用camera_module这块的common方法,camera_module_t-> common.open(),在结构体hw_module_methods_t这块的open你的方法来打开特定 Camera,返回一个结构体的 hardware_device_t结构
2.2 结构体
打开指定的Camera
camera_module{
hw_module_t{
.open = open_dev
}
}
这个结构体里面有一个函数指针,什么地方明确了函数指针的指向了?
在 hardware/libhardware/modules/camera/3_0/CameraHAL.cpp中的167行明确了函数指针指向。指向其中的open_dev函数
2.3代码分析
1、MTK Open Camera 框图
2、frameworks/av/services/camera/libcameraservice/common/CameraProviderManager.cpp
framework层 CameraProviderManager 调用ICameraDevice提供的API->Open() ,对应图中1.open()
status_t CameraProviderManager::openSession(const std::string &id,
const sp<device::V1_0::ICameraDeviceCallback>& callback,
/*out*/
sp<device::V1_0::ICameraDevice> *session) {std::lock_guard<std::mutex> lock(mInterfaceMutex);
auto deviceInfo = findDeviceInfoLocked(id,
/*minVersion*/ {1,0}, /*maxVersion*/ {2,0});
if (deviceInfo == nullptr) return NAME_NOT_FOUND;auto *deviceInfo1 = static_cast<ProviderInfo::DeviceInfo1*>(deviceInfo);
const sp<provider::V2_4::ICameraProvider> provider =
deviceInfo->mParentProvider->startProviderInterface();
if (provider == nullptr) {
return DEAD_OBJECT;
}
saveRef(DeviceMode::CAMERA, id, provider);auto interface = deviceInfo1->startDeviceInterface<
CameraProviderManager::ProviderInfo::DeviceInfo1::InterfaceT>();
if (interface == nullptr) {
return DEAD_OBJECT;
}
hardware::Return<Status> status = interface->open(callback);
if (!status.isOk()) {
removeRef(DeviceMode::CAMERA, id);
ALOGE("%s: Transaction error opening a session for camera device %s: %s",
__FUNCTION__, id.c_str(), status.description().c_str());
return DEAD_OBJECT;
}
if (status == Status::OK) {
*session = interface;
}
return mapToStatusT(status);
}
3、vendor/mediatek/proprietary/hardware/mtkcam3/main/hal/device/3.x/device/CameraDevice3Impl.cpp
Return<void>
CameraDevice3Impl::
open(const ::android::sp<V3_2::ICameraDeviceCallback>& callback, open_cb _hidl_cb)
{
int systraceLevel = ::property_get_int32("vendor.debug.mtkcam.systrace.level", MTKCAM_SYSTRACE_LEVEL_DEFAULT);
MY_LOGI("open camera3 device (%s) systraceLevel(%d) instanceId(%d) vid(%d)",
mStaticDeviceInfo->mInstanceName.c_str(),
systraceLevel,
mStaticDeviceInfo->mInstanceId,
mStaticDeviceInfo->mVirtualInstanceId);
::android::status_t status = mSession->open(V3_5::ICameraDeviceCallback::castFrom(callback));
if ( ::android::OK != status ) {
_hidl_cb(mapToHidlCameraStatus(status), nullptr);
}
else {
_hidl_cb(mapToHidlCameraStatus(status), mSession);
}return Void();
}
vendor/mediatek/proprietary/hardware/mtkcam3/main/hal/device/3.x/device/CameraDevice3SessionImpl.cpp
对应图上2.1 startOpenDevice()
open camera之前,CameraDevice 需要通过startOpenDevice()注册到CameraDeviceManager,后者会对CameraDevice检测是否有重新open的动作
auto
ThisNamespace::
open(
const ::android::sp<V3_5::ICameraDeviceCallback>& callback
) -> ::android::status_t
{
CAM_ULOG_APILIFE_GUARD(MOD_CAMERA_DEVICE);
::android::Mutex::Autolock _lOpsLock(mOpsLock);
MY_LOGI("+");//unlink to death notification for existed device callback
if ( mCameraDeviceCallback != nullptr ) {
mCameraDeviceCallback->unlinkToDeath(this);
mCameraDeviceCallback = nullptr;
::memset(&mLinkToDeathDebugInfo, 0, sizeof(mLinkToDeathDebugInfo));
}//link to death notification for device callback
if ( callback != nullptr ) {
hardware::Return<bool> linked = callback->linkToDeath(this, (uint64_t)this);
if (!linked.isOk()) {
MY_LOGE("Transaction error in linking to mCameraDeviceCallback death: %s", linked.description().c_str());
} else if (!linked) {
MY_LOGW("Unable to link to mCameraDeviceCallback death notifications");
}
callback->getDebugInfo([this](const auto& info){
mLinkToDeathDebugInfo = info;
});
MY_LOGD("Link death to ICameraDeviceCallback %s", toString(mLinkToDeathDebugInfo).c_str());
}if(mpCpuCtrl)
{
MY_LOGD("Enter CPU performance mode, time: %d sec", mCpuPerfTime);
mpCpuCtrl->cpuPerformanceMode(mCpuPerfTime);
}
mpCpuPrefIdleCtrl->enablePreferIdle();
mDisplayIdleDelayUtil.enable();::android::status_t status = OK;
String8 const stateTag("-> open");
mStateLog.add(stateTag + " +");do {
if (callback == nullptr) {
MY_LOGE("cannot open camera. callback is null!");
status = BAD_VALUE;
break;
}auto pDeviceManager = mStaticInfo.mDeviceManager;
auto const& instanceName = mStaticInfo.mStaticDeviceInfo->mInstanceName;status = pDeviceManager->startOpenDevice(instanceName);
if ( OK != status ) {
pDeviceManager->updatePowerOnDone();
break;
}do {
//------------------------------------------------------------------
mCommandHandler = new CommandHandler(getInstanceId());
if ( mCommandHandler == nullptr ) {
MY_LOGE("Bad mCommandHandler");
status = NO_INIT;
break;
}
else {
const std::string threadName{std::to_string(getInstanceId())+":dev3-cmd"};
status = mCommandHandler->run(threadName.c_str());
if ( OK != status ) {
MY_LOGE("Fail to run the thread %s - status:%d(%s)", threadName.c_str(), status, ::strerror(-status));
mCommandHandler = nullptr;
status = NO_INIT;
break;
}
}
//------------------------------------------------------------------
int err = NO_INIT;
status = tryRunCommandLocked(getWaitCommandTimeout(), "onOpenLocked", [&, this](){
err = onOpenLocked(callback);
});
if ( status == OK ) {
status = err;
}
} while (0);pDeviceManager->updatePowerOnDone();
if ( OK != status ) {
pDeviceManager->finishOpenDevice(instanceName, true/*cancel*/);
break;
}status = pDeviceManager->finishOpenDevice(instanceName, false/*cancel*/);
if ( OK != status ) {
break;
}} while (0);
mStateLog.add(stateTag + " - " + (0==status ? "OK" : ::strerror(-status)));
return status;
}
4、vendor/mediatek/proprietary/hardware/mtkcam3/main/hal/devicemgr/CameraDeviceManagerBase.cpp
对应图上2.1.1 attach the device to open map //这块代码追下去就是
2.1.2 lock & turn off torch when 1st camera opened
auto
CameraDeviceManagerBase::
startOpenDevice(
const std::string& deviceName
) -> ::android::status_t
{
status_t status = OK;
waitForPreviousPowerOnDone();
::android::sp<IVirtualDevice> pVirtualDevice = nullptr;
//
{
RWLock::AutoRLock _l(mDataRWLock);
status = getVirtualDeviceLocked(deviceName, nullptr, &pVirtualDevice);
if ( OK != status ) {
return status;
}
}
//
//CAM_TRACE_ASYNC_BEGIN
MyTraceAsyncBegin _lAsyncTrace(
String8::format("%s:" LOG_TAG ":OpenDevice", pVirtualDevice->getInstanceName()),
pVirtualDevice->getInstanceId(), status);
CAM_TRACE_NAME(LOG_TAG ":startOpenDevice");
//
// save the caller's information, which will be validated in future.
status = mActiveOperation.lock(pVirtualDevice, ActiveOperation::OPEN);
if ( OK != status ) {
return status;
}
//
do {
RWLock::AutoWLock _l(mDataRWLock);
//
size_t const nOriginalOpenNum = mOpenDeviceMap.size();
//
MY_LOGD(
"+ %s mActiveOperationCommandList.size:%zu mOpenDeviceMap.size:%zu mPhysEnumDeviceMap.size:%zu mVirtEnumDeviceMap.size:%zu",
pVirtualDevice->getInstanceName(), mActiveOperationCommandList.size(),
mOpenDeviceMap.size(), mPhysEnumDeviceMap.size(), mVirtEnumDeviceMap.size());
//
// [1] check to see whether it's ready to open.
status = validateOpenLocked(pVirtualDevice);
if ( OK != status ) {
break;
}
//
// [2] attach opened device
status = attachOpenDeviceLocked(pVirtualDevice);
if ( OK != status ) {
break;
}
//
// [3] lock & turn off torch when first camera opened
// Note: torch must be turned off before opening camera...
if ( nOriginalOpenNum == 0 && mOpenDeviceMap.size() != 0 ) {
for (size_t i = 0; i < mVirtEnumDeviceMap.size(); i++) {
auto const& pInfo = mVirtEnumDeviceMap.valueAt(i);
if( pInfo->mVirtDevice->getFacing() == pVirtualDevice->getFacing() )
{
::android::sp<ICommand> pCommand = new SetTorchModeStatusCommand(
this, pInfo->mVirtDevice, ETorchModeStatus::NOT_AVAILABLE);
if ( OK == pCommand->doExecute() ) {
mActiveOperationCommandList.push_back(pCommand);
}
}
}
}
} while (0);
//
if ( OK != status ) {
// get locked only when this function returns OK.
mActiveOperation.unlock(pVirtualDevice, ActiveOperation::OPEN);
MY_LOGE("%s status:%s(%d)", pVirtualDevice->getInstanceName(), ::strerror(-status), -status);
}
//
return status;
}
5、vendor/mediatek/proprietary/hardware/mtkcam3/main/hal/device/3.x/device/CameraDevice3SessionImpl.cpp
对应图上2.2 onOpenLocked
创建IAppStreamManager 对象,
open pPipelineModel实例
auto
ThisNamespace::
onOpenLocked(
const ::android::sp<V3_4::ICameraDeviceCallback>& callback
) -> ::android::status_t
{
mLogLevel = getCameraDevice3DebugLogLevel();mCameraDeviceCallback = callback;
//--------------------------------------------------------------------------
{
Mutex::Autolock _l(mAppStreamManagerLock);if ( mAppStreamManager != nullptr ) {
MY_LOGE("mAppStreamManager:%p != 0 while opening", mAppStreamManager.get());
mAppStreamManager->destroy();
mAppStreamManager = nullptr;
}
mAppStreamManager = IAppStreamManager::create(
IAppStreamManager::CreationInfo{
.mInstanceId = getInstanceId(),
.mCameraDeviceCallback = callback,
.mMetadataProvider = mStaticInfo.mMetadataProvider,
.mPhysicalMetadataProviders = mStaticInfo.mPhysicalMetadataProviders,
.mMetadataConverter = mStaticInfo.mMetadataConverter,
.mErrorPrinter = std::static_pointer_cast<android::Printer>(mAppStreamManagerErrorState),
.mWarningPrinter = std::static_pointer_cast<android::Printer>(mAppStreamManagerWarningState),
.mDebugPrinter = std::static_pointer_cast<android::Printer>(mAppStreamManagerDebugState),
}
);
if ( mAppStreamManager == nullptr ) {
MY_LOGE("IAppStreamManager::create");
return NO_INIT;
}
}
//--------------------------------------------------------------------------
{
Mutex::Autolock _l(mPipelineModelLock);
auto pPipelineModelMgr = IPipelineModelManager::get();
if ( CC_UNLIKELY(pPipelineModelMgr == nullptr) ) {
MY_LOGE("IPipelineModelManager::get() is null object!");
return NO_INIT;
}
//
auto pPipelineModel = pPipelineModelMgr->getPipelineModel( getInstanceId() );
if ( CC_UNLIKELY(pPipelineModel == nullptr) ) {
MY_LOGE("IPipelineModelManager::getPipelineModel(%d) is null object!", getInstanceId());
return NO_INIT;
}
//
::android::status_t err = OK;
err = pPipelineModel->open(getInstanceName().c_str(), this);
if ( CC_UNLIKELY(OK != err) ) {
MY_LOGE( "fail to IPipelinemodel->open() status:%d(%s)", -err, ::strerror(-err) );
return NO_INIT;
}
mPipelineModel = pPipelineModel;
mConfigTimestamp = (uint64_t)::systemTime();
MY_LOGD("timestamp(%" PRIu64 ")", mConfigTimestamp);
}
//--------------------------------------------------------------------------
return OK;
}
6、vendor/mediatek/proprietary/hardware/mtkcam3/main/hal/devicemgr/CameraDeviceManagerBase.cpp
对应 图上 2.3.1
reset 所有东西
有任何改变通知CameraService,在其中改变状态
auto
CameraDeviceManagerBase::
finishOpenDevice(
const std::string& deviceName,
bool cancel
) -> ::android::status_t
{
status_t status = OK;
::android::sp<IVirtualDevice> pVirtualDevice = nullptr;
//
{
RWLock::AutoRLock _l(mDataRWLock);
status = getVirtualDeviceLocked(deviceName, nullptr, &pVirtualDevice);
if ( OK != status ) {
return status;
}
}
//
{
CAM_TRACE_NAME(LOG_TAG ":finishOpenDevice");bool needToFlushTorchCallback = ( ! cancel );
//
// check to see whether this is called by the same device and operation.
status = mActiveOperation.validate(pVirtualDevice, ActiveOperation::OPEN);
if ( OK != status ) {
return status;
}
//
{
RWLock::AutoWLock _l(mDataRWLock);
//
// restore all states when the operation is cancelled.
if ( cancel ) {
// detach opened device
updatePowerOnDone();
detachOpenDeviceLocked(pVirtualDevice);
// undo commands
for (auto const& pCommand : mActiveOperationCommandList) {
pCommand->undoExecute();
}
}// reset everything
mActiveOperationCommandList.clear();
}
//
if ( OK == status ) {
// unlock only for the right owner.
mActiveOperation.unlock(pVirtualDevice, ActiveOperation::OPEN);
}
//
// flush torch callback
if ( needToFlushTorchCallback ) {
flushTorchModeStatusChangeCallback();
}
}
//
if ( OK == status ) {
CAM_TRACE_ASYNC_END(
String8::format("%s:" LOG_TAG ":OpenDevice", pVirtualDevice->getInstanceName()).string(),
pVirtualDevice->getInstanceId());
}
return status;
}
vendor/mediatek/proprietary/hardware/mtkcam3/main/hal/devicemgr/provider/2.4/CameraProviderImpl.cpp
void
CameraProviderImpl::
onTorchModeStatusChange(char const* deviceName, uint32_t new_status)
{
::android::sp<ICameraProviderCallback> callback;
{
Mutex::Autolock _l(mProviderCallbackLock);
callback = mProviderCallback;
}if ( callback == 0 ) {
MY_LOGW("bad mProviderCallback - %s new_status:%u", deviceName, new_status);
return;
}TorchModeStatus const status = (TorchModeStatus) new_status;
auto ret = callback->torchModeStatusChange(deviceName, status);
if (!ret.isOk()) {
MY_LOGE("Transaction error in ICameraProviderCallback::torchModeStatusChange: %s", ret.description().c_str());
}
MY_LOGI("%s TorchModeStatus:%u", deviceName, status);
}
3、camera close 流程
* 12. Alternatively, the framework may call camera3_device_t->common->close()
* to end the camera session. This may be called at any time when no other
* calls from the framework are active, although the call may block until all
* in-flight captures have completed (all results returned, all buffers
* filled). After the close call returns, no more calls to the
* camera3_callback_ops_t functions are allowed from the HAL. Once the
* close() call is underway, the framework may not call any other HAL device
* functions.
*
* 13. In case of an error or other asynchronous event, the HAL must call
* camera3_callback_ops_t->notify() with the appropriate error/event
* message. After returning from a fatal device-wide error notification, the
* HAL should act as if close() had been called on it. However, the HAL must
* either cancel or complete all outstanding captures before calling
* notify(), so that once notify() is called with a fatal error, the
* framework will not receive further callbacks from the device. Methods
* besides close() should return -ENODEV or NULL after the notify() method
* returns from a fatal error message.
close是open的逆序操作,一笔而过
4、log
08-26 11:30:38.443727 4145 4145 I mtkcam-dev3: 0[CameraDevice3Impl::open] open camera3 device ([email protected]/internal/0) systraceLevel(1) instanceId(0) vid(0)
mtkcam-dev3: [0-session::open] +
08-26 11:30:38.444652 4145 4145 D mtkcam-dev3: [0-session::open] Link death to ICameraDeviceCallback {.pid = 4144, .ptr = 4098102640, .arch = IS_32BIT}
08-26 11:30:38.444680 4145 4145 D mtkcam-dev3: [0-session::open] Enter camera perf mode08-26 11:30:38.444714 4145 4145 D Cam3CPUCtrl: [enterCameraPerf] enable PERF_RES_DRAM_CM_MGR_CAM_ENABLE
08-26 11:30:38.444733 4145 4145 D Cam3CPUCtrl: [enterCameraPerf] enable PERF_RES_SCHED_PREFER_IDLE_TA
08-26 11:30:38.444746 4145 4145 D Cam3CPUCtrl: [enterCameraPerf] enable PERF_RES_SCHED_PREFER_IDLE_FG
08-26 11:30:38.446214 4145 4145 I mtkpower_client: Loaded mtkperf HAL 1.0 service
08-26 11:30:38.446427 4145 4145 I mtkpower_client: Loaded mtkperf HAL 1.1 service
08-26 11:30:38.446467 4145 4145 I mtkpower_client: Link to death notification successful
08-26 11:30:38.446479 4145 4145 I mtkpower_client: perf_lock_acq, hdl:0, dur:0, num:6, tid:4145
08-26 11:30:38.446882 4145 4145 I mtkpower_client: ret_hdl:38
08-26 11:30:38.446940 4145 4145 D Cam3CPUCtrl: [enterCameraPerf] enterCameraPerf done
08-26 11:30:38.447057 4145 4145 I mtkpower_client: perf_lock_acq, hdl:0, dur:1000, num:2, tid:414508-26 11:30:38.447876 4145 4145 I mtkpower_client: ret_hdl:39
08-26 11:30:38.447934 4145 4145 D Cam3CPUCtrl: [enterCameraPerf] enter cpu high performance mode
08-26 11:30:38.447950 4145 4145 D Cam3CPUCtrl: [enterCameraPerf] enter camera perf mode08-26 11:30:38.448054 4145 4145 I mtkpower_client: perf_lock_acq, hdl:-1, dur:0, num:2, tid:4145
08-26 11:30:38.448300 4145 4145 I mtkpower_client: ret_hdl:40
08-26 11:30:38.448348 4145 4145 D mtkcam-dev3: [DisplayIdleDelayUtil] Set display idle delay to 100, handle 40
08-26 11:30:38.448418 4145 4145 D mtkcam-devicemgr: [startOpenDevice] + [email protected]/internal/0 mActiveOperationCommandList.size:0 mOpenDeviceMap.size:0 mPhysEnumDeviceMap.size:5 mVirtEnumDeviceMap.size:608-26 11:30:38.448472 4145 4145 D MtkCam/Utils/CamMgr: [getPermission] OpenId.size(0), mbRecord(0), mbAvailable(1), mbStereo(0), 0:fps(0); 1:fps(0)
08-26 11:30:38.448494 4145 4145 D MtkCam/Utils/CamMgr: [incDevice] openId 0
08-26 11:30:38.448529 4145 4145 I mtkcam-devicemgr: [attachOpenDeviceLocked] device: [email protected]/internal/0 openTimestamp:08-26 11:30:38.448
08-26 11:30:38.448703 4145 4145 I MtkCam/Utils: [setLogLevelToEngLoad] [enter camera]not mtk_internal_project (-1), no need to change log level
08-26 11:30:38.448838 4145 4145 I FlashHal: FlashHal(): sensorDev(1).
08-26 11:30:38.448985 4145 4145 I StrobeDrvFlashlightFops: openkd(): mUsers(1).
08-26 11:30:38.449049 4145 4145 I StrobeDrvFlashlightFops: closekd(): mUsers(0).
08-26 11:30:38.449087 4145 4145 I StrobeDrvFlashlight: getPartId(): partId(1).
08-26 11:30:38.449151 4145 4145 I StrobeDrvFlashlightFops: openkd(): mUsers(1).
08-26 11:30:38.449212 4145 4145 I StrobeDrvFlashlightFops: closekd(): mUsers(0).
08-26 11:30:38.449254 4145 4145 I StrobeDrvFlashlight: hasFlashHw(): hasHw(1).
08-26 11:30:38.449273 4145 4145 I FlashNvram: nvReadStrobe().
08-26 11:30:38.449293 4145 4145 W nvbuf_util.cpp: [getInstance:408] getInstance, bInit(1)
08-26 11:30:38.449309 4145 4145 W nvbuf_util.cpp: [getBufAndReadNoLock:695] ramId(5), sensorDev(1), p(0x0), bForceRead(0) +
08-26 11:30:38.449330 4145 4145 W nvbuf_util.cpp: [readRamVersion:256] nvRamId(5), ver: isp(0),3a(0),sh(0),lens(0),pl(0),stb(0),tsf(0),pdc(0),geo(0),fov(0),feature(0)
08-26 11:30:38.449344 4145 4145 D nvbuf_util.cpp: [getBufAndReadNoLock:715] readRamVersion, ver(0), err(0)
08-26 11:30:38.449381 4145 4145 D nvbuf_util.cpp: [getBufAndReadNoLock:723] getSensorIdandMem, p(0xb400007431535200), nvSize(5120), err(0)
08-26 11:30:38.449403 4145 4145 D NvramDrv: [readNvrameEx:440] sensor type(1); NVRAM data type(5)
08-26 11:30:38.449416 4145 4145 D NvramDrv: [checkDataVersionNew:336]
08-26 11:30:38.449428 4145 4145 D NvramDrv: [checkDataVersionNew:363] v(0) vTar(2)
08-26 11:30:38.449454 4145 4145 D NvramDrv: [readDefaultData:774] sensor ID(5639493); NVRAM data type(5)
08-26 11:30:38.449471 4145 4145 W NvramDrv: [readDefaultData:814] CAMERA_NVRAM_DATA_STROBE cust_fillDefaultStrobeNVRam
08-26 11:30:38.449573 4145 4145 D nvbuf_util.cpp: [getBufAndReadNoLock:737] -
08-26 11:30:38.449613 4145 4145 D flash_tuning_custom.cpp: paraIdx=0 aeSceneInd =2
08-26 11:30:38.449628 4145 4145 D flash_tuning_custom.cpp: copyTuningPara main yTarget=188
08-26 11:30:38.449645 4145 4145 I StrobeDrvFlashlight: setStrobeInfo(): table number(5), duty number(2).
08-26 11:30:38.449664 4145 4145 I StrobeDrvFlashlight: setStrobeInfo(): table id(0), timeout (1000000 ms), cooling time multiple(0.00).
08-26 11:30:38.449680 4145 4145 I StrobeDrvFlashlight: setStrobeInfo(): table id(1), timeout (500 ms), cooling time multiple(8.00).
08-26 11:30:38.449694 4145 4145 I StrobeDrvFlashlight: setStrobeInfo(): table id(16), timeout (500 ms), cooling time multiple(2.00).
08-26 11:30:38.449707 4145 4145 I StrobeDrvFlashlight: setStrobeInfo(): table id(21), timeout (500 ms), cooling time multiple(4.00).
08-26 11:30:38.449720 4145 4145 I StrobeDrvFlashlight: setStrobeInfo(): table id(29), timeout (500 ms), cooling time multiple(9.00).
08-26 11:30:38.449740 4145 4145 D flash_custom.cpp: cust_getFlashHalTorchDuty devid main id1
08-26 11:30:38.449772 4145 4145 I FlashNvram: nvReadStrobe().
08-26 11:30:38.449790 4145 4145 W nvbuf_util.cpp: [getInstance:408] getInstance, bInit(1)
08-26 11:30:38.449804 4145 4145 W nvbuf_util.cpp: [getBufAndReadNoLock:695] ramId(5), sensorDev(1), p(0x0), bForceRead(0) +
08-26 11:30:38.449818 4145 4145 D nvbuf_util.cpp: [getBufAndReadNoLock:707] getMem , p(0xb400007431535200), err(0)
08-26 11:30:38.449837 4145 4145 I FlashHal: Device: (1), Type: (1), CT number: (1), Part ID: (1), HW(1), in charge(1).
08-26 11:30:38.450670 4145 4145 I FlashHal: getTorchStatus(): torch status(0).
08-26 11:30:38.450753 4145 4145 D mtkcam-devicemgr: [onEnableTorchLocked] do nothing due to torch status unchanged - [email protected]/internal/0:0 torch enable:0
08-26 11:30:38.450780 4145 4145 D mtkcam-devicemgr: [setTorchModeStatusWhenOpenCloseCameraLocked] [email protected]/internal/0 newTorchModeStatus:0
08-26 11:30:38.450906 4145 4145 I FlashHal: FlashHal(): sensorDev(8).
08-26 11:30:38.451058 4145 4145 I StrobeDrvFlashlightFops: openkd(): mUsers(1).
08-26 11:30:38.451130 4145 4145 I StrobeDrvFlashlightFops: closekd(): mUsers(0).
08-26 11:30:38.451167 4145 4145 I StrobeDrvFlashlight: getPartId(): partId(1).
08-26 11:30:38.451232 4145 4145 I StrobeDrvFlashlightFops: openkd(): mUsers(1).
08-26 11:30:38.451295 4145 4145 I StrobeDrvFlashlightFops: closekd(): mUsers(0).
08-26 11:30:38.451334 4145 4145 I StrobeDrvFlashlight: hasFlashHw(): hasHw(1).
08-26 11:30:38.451357 4145 4145 I FlashNvram: nvReadStrobe().
08-26 11:30:38.451385 4145 4145 W nvbuf_util.cpp: [getInstance:408] getInstance, bInit(1)
08-26 11:30:38.451405 4145 4145 W nvbuf_util.cpp: [getBufAndReadNoLock:695] ramId(5), sensorDev(8), p(0x0), bForceRead(0) +
08-26 11:30:38.451431 4145 4145 W nvbuf_util.cpp: [readRamVersion:256] nvRamId(5), ver: isp(0),3a(0),sh(0),lens(0),pl(0),stb(0),tsf(0),pdc(0),geo(0),fov(0),feature(0)
08-26 11:30:38.451448 4145 4145 D nvbuf_util.cpp: [getBufAndReadNoLock:715] readRamVersion, ver(0), err(0)
08-26 11:30:38.451475 4145 4145 D nvbuf_util.cpp: [getBufAndReadNoLock:723] getSensorIdandMem, p(0xb40000743153a570), nvSize(5120), err(0)
08-26 11:30:38.451500 4145 4145 D NvramDrv: [readNvrameEx:440] sensor type(8); NVRAM data type(5)
08-26 11:30:38.451517 4145 4145 D NvramDrv: [checkDataVersionNew:336]
08-26 11:30:38.451531 4145 4145 D NvramDrv: [checkDataVersionNew:363] v(0) vTar(2)
08-26 11:30:38.451548 4145 4145 D NvramDrv: [readDefaultData:774] sensor ID(9860); NVRAM data type(5)
08-26 11:30:38.451563 4145 4145 W NvramDrv: [readDefaultData:814] CAMERA_NVRAM_DATA_STROBE cust_fillDefaultStrobeNVRam
08-26 11:30:38.451605 4145 4145 D flash_custom.cpp: devid sub_second id1
08-26 11:30:38.451656 4145 4145 D nvbuf_util.cpp: [getBufAndReadNoLock:737] -
08-26 11:30:38.451711 4145 4145 D flash_tuning_custom.cpp: paraIdx=0 aeSceneInd =2
08-26 11:30:38.451729 4145 4145 D flash_tuning_custom.cpp: copyTuningPara main yTarget=188
08-26 11:30:38.451754 4145 4145 I StrobeDrvFlashlight: setStrobeInfo(): table number(5), duty number(2).
08-26 11:30:38.451787 4145 4145 I StrobeDrvFlashlight: setStrobeInfo(): table id(0), timeout (1000000 ms), cooling time multiple(0.00).
08-26 11:30:38.451813 4145 4145 I StrobeDrvFlashlight: setStrobeInfo(): table id(1), timeout (500 ms), cooling time multiple(8.00).
08-26 11:30:38.451829 4145 4145 I StrobeDrvFlashlight: setStrobeInfo(): table id(16), timeout (500 ms), cooling time multiple(2.00).
08-26 11:30:38.451843 4145 4145 I StrobeDrvFlashlight: setStrobeInfo(): table id(21), timeout (500 ms), cooling time multiple(4.00).
08-26 11:30:38.451774 515 644 D hwcomposer: (0:4) Layer+ (mva=0x0/sec=0/prot=0/alpha=1:0xff/blend=0002/dim=0/fmt=4868/range=1(20000000)/x=0 y=32 w=1080 h=34 s=1088,66 -> x=0 y=0 w=1080 h=34/layer_type=0 ext_layer=-1 ds=0 fbdc=0) !
08-26 11:30:38.451857 4145 4145 I StrobeDrvFlashlight: setStrobeInfo(): table id(29), timeout (500 ms), cooling time multiple(9.00).
08-26 11:30:38.451886 4145 4145 D flash_custom.cpp: cust_getFlashHalTorchDuty devid main id1
08-26 11:30:38.451965 4145 4145 I FlashNvram: nvReadStrobe().
08-26 11:30:38.451989 4145 4145 W nvbuf_util.cpp: [getInstance:408] getInstance, bInit(1)
08-26 11:30:38.452006 4145 4145 W nvbuf_util.cpp: [getBufAndReadNoLock:695] ramId(5), sensorDev(8), p(0x0), bForceRead(0) +
08-26 11:30:38.452025 4145 4145 D nvbuf_util.cpp: [getBufAndReadNoLock:707] getMem , p(0xb40000743153a570), err(0)
08-26 11:30:38.452044 4145 4145 I FlashHal: Device: (1), Type: (1), CT number: (1), Part ID: (1), HW(1), in charge(1).
08-26 11:30:38.452062 4145 4145 I FlashHal: getTorchStatus(): torch status(0).
08-26 11:30:38.452088 4145 4145 D mtkcam-devicemgr: [onEnableTorchLocked] do nothing due to torch status unchanged - [email protected]/internal/20:3 torch enable:0
08-26 11:30:38.452109 4145 4145 D mtkcam-devicemgr: [setTorchModeStatusWhenOpenCloseCameraLocked] [email protected]/internal/20 newTorchModeStatus:0
08-26 11:30:38.452181 4145 4145 I FlashHal: FlashHal(): sensorDev(4).
08-26 11:30:38.452365 4145 4145 I StrobeDrvFlashlightFops: openkd(): mUsers(1).
08-26 11:30:38.452416 4145 4145 I StrobeDrvFlashlightFops: closekd(): mUsers(0).
08-26 11:30:38.452439 4145 4145 I StrobeDrvFlashlight: getPartId(): partId(1).
08-26 11:30:38.452487 4145 4145 I StrobeDrvFlashlightFops: openkd(): mUsers(1).
08-26 11:30:38.452527 4145 4145 I StrobeDrvFlashlightFops: closekd(): mUsers(0).
08-26 11:30:38.452547 4145 4145 I StrobeDrvFlashlight: hasFlashHw(): hasHw(1).
08-26 11:30:38.452566 4145 4145 I FlashNvram: nvReadStrobe().
08-26 11:30:38.452586 4145 4145 W nvbuf_util.cpp: [getInstance:408] getInstance, bInit(1)
08-26 11:30:38.452602 4145 4145 W nvbuf_util.cpp: [getBufAndReadNoLock:695] ramId(5), sensorDev(4), p(0x0), bForceRead(0) +
08-26 11:30:38.452625 4145 4145 W nvbuf_util.cpp: [readRamVersion:256] nvRamId(5), ver: isp(0),3a(0),sh(0),lens(0),pl(0),stb(0),tsf(0),pdc(0),geo(0),fov(0),feature(0)
08-26 11:30:38.452641 4145 4145 D nvbuf_util.cpp: [getBufAndReadNoLock:715] readRamVersion, ver(0), err(0)
08-26 11:30:38.452685 4145 4145 D nvbuf_util.cpp: [getBufAndReadNoLock:723] getSensorIdandMem, p(0xb40000743153dd10), nvSize(5120), err(0)
08-26 11:30:38.452711 4145 4145 D NvramDrv: [readNvrameEx:440] sensor type(4); NVRAM data type(5)
08-26 11:30:38.452728 4145 4145 D NvramDrv: [checkDataVersionNew:336]
08-26 11:30:38.452741 4145 4145 D NvramDrv: [checkDataVersionNew:363] v(0) vTar(2)
08-26 11:30:38.452757 4145 4145 D NvramDrv: [readDefaultData:774] sensor ID(34907); NVRAM data type(5)
08-26 11:30:38.452772 4145 4145 W NvramDrv: [readDefaultData:814] CAMERA_NVRAM_DATA_STROBE cust_fillDefaultStrobeNVRam
08-26 11:30:38.452832 4145 4145 D nvbuf_util.cpp: [getBufAndReadNoLock:737] -
08-26 11:30:38.452854 4145 4145 D flash_tuning_custom.cpp: paraIdx=0 aeSceneInd =2
08-26 11:30:38.452871 4145 4145 D flash_tuning_custom.cpp: copyTuningPara main yTarget=188
08-26 11:30:38.452890 4145 4145 I StrobeDrvFlashlight: setStrobeInfo(): table number(5), duty number(2).
08-26 11:30:38.452914 4145 4145 I StrobeDrvFlashlight: setStrobeInfo(): table id(0), timeout (1000000 ms), cooling time multiple(0.00).
08-26 11:30:38.452931 4145 4145 I StrobeDrvFlashlight: setStrobeInfo(): table id(1), timeout (500 ms), cooling time multiple(8.00).
08-26 11:30:38.452943 4145 4145 I StrobeDrvFlashlight: setStrobeInfo(): table id(16), timeout (500 ms), cooling time multiple(2.00).
08-26 11:30:38.452956 4145 4145 I StrobeDrvFlashlight: setStrobeInfo(): table id(21), timeout (500 ms), cooling time multiple(4.00).
08-26 11:30:38.452969 4145 4145 I StrobeDrvFlashlight: setStrobeInfo(): table id(29), timeout (500 ms), cooling time multiple(9.00).
08-26 11:30:38.452989 4145 4145 D flash_custom.cpp: cust_getFlashHalTorchDuty devid main id1
08-26 11:30:38.453026 4145 4145 I FlashNvram: nvReadStrobe().
08-26 11:30:38.453046 4145 4145 W nvbuf_util.cpp: [getInstance:408] getInstance, bInit(1)
08-26 11:30:38.453061 4145 4145 W nvbuf_util.cpp: [getBufAndReadNoLock:695] ramId(5), sensorDev(4), p(0x0), bForceRead(0) +
08-26 11:30:38.453074 4145 4145 D nvbuf_util.cpp: [getBufAndReadNoLock:707] getMem , p(0xb40000743153dd10), err(0)
08-26 11:30:38.453090 4145 4145 I FlashHal: Device: (1), Type: (1), CT number: (1), Part ID: (1), HW(1), in charge(1).
08-26 11:30:38.453104 4145 4145 I FlashHal: getTorchStatus(): torch status(0).
08-26 11:30:38.453123 4145 4145 D mtkcam-devicemgr: [onEnableTorchLocked] do nothing due to torch status unchanged - [email protected]/internal/21:2 torch enable:0
08-26 11:30:38.453138 4145 4145 D mtkcam-devicemgr: [setTorchModeStatusWhenOpenCloseCameraLocked] [email protected]/internal/21 newTorchModeStatus:0
08-26 11:30:38.453184 4145 4145 I FlashHal: FlashHal(): sensorDev(16).
08-26 11:30:38.453239 4145 4145 I StrobeDrvFlashlightFops: openkd(): mUsers(1).
08-26 11:30:38.453281 4145 4145 I StrobeDrvFlashlightFops: closekd(): mUsers(0).
08-26 11:30:38.453299 4145 4145 I StrobeDrvFlashlight: getPartId(): partId(1).
08-26 11:30:38.453338 4145 4145 I StrobeDrvFlashlightFops: openkd(): mUsers(1).
08-26 11:30:38.453377 4145 4145 I StrobeDrvFlashlightFops: closekd(): mUsers(0).
08-26 11:30:38.453396 4145 4145 I StrobeDrvFlashlight: hasFlashHw(): hasHw(1).
08-26 11:30:38.453410 4145 4145 I FlashNvram: nvReadStrobe().
08-26 11:30:38.453426 4145 4145 W nvbuf_util.cpp: [getInstance:408] getInstance, bInit(1)
08-26 11:30:38.453440 4145 4145 W nvbuf_util.cpp: [getBufAndReadNoLock:695] ramId(5), sensorDev(16), p(0x0), bForceRead(0) +
08-26 11:30:38.453455 4145 4145 W nvbuf_util.cpp: [readRamVersion:256] nvRamId(5), ver: isp(0),3a(0),sh(0),lens(0),pl(0),stb(0),tsf(0),pdc(0),geo(0),fov(0),feature(0)
08-26 11:30:38.453468 4145 4145 D nvbuf_util.cpp: [getBufAndReadNoLock:715] readRamVersion, ver(0), err(0)
08-26 11:30:38.453496 4145 4145 D nvbuf_util.cpp: [getBufAndReadNoLock:723] getSensorIdandMem, p(0xb400007431522010), nvSize(5120), err(0)
08-26 11:30:38.453518 4145 4145 D NvramDrv: [readNvrameEx:440] sensor type(16); NVRAM data type(5)
08-26 11:30:38.453531 4145 4145 D NvramDrv: [checkDataVersionNew:336]
08-26 11:30:38.453543 4145 4145 D NvramDrv: [checkDataVersionNew:363] v(0) vTar(2)
08-26 11:30:38.453556 4145 4145 D NvramDrv: [readDefaultData:774] sensor ID(20534); NVRAM data type(5)
08-26 11:30:38.453568 4145 4145 W NvramDrv: [readDefaultData:814] CAMERA_NVRAM_DATA_STROBE cust_fillDefaultStrobeNVRam
08-26 11:30:38.453610 4145 4145 D nvbuf_util.cpp: [getBufAndReadNoLock:737] -
08-26 11:30:38.453629 4145 4145 D flash_tuning_custom.cpp: paraIdx=0 aeSceneInd =2
08-26 11:30:38.453644 4145 4145 D flash_tuning_custom.cpp: copyTuningPara main yTarget=188
08-26 11:30:38.453659 4145 4145 I StrobeDrvFlashlight: setStrobeInfo(): table number(5), duty number(2).
08-26 11:30:38.453676 4145 4145 I StrobeDrvFlashlight: setStrobeInfo(): table id(0), timeout (1000000 ms), cooling time multiple(0.00).
08-26 11:30:38.453692 4145 4145 I StrobeDrvFlashlight: setStrobeInfo(): table id(1), timeout (500 ms), cooling time multiple(8.00).
08-26 11:30:38.453705 4145 4145 I StrobeDrvFlashlight: setStrobeInfo(): table id(16), timeout (500 ms), cooling time multiple(2.00).
08-26 11:30:38.453719 4145 4145 I StrobeDrvFlashlight: setStrobeInfo(): table id(21), timeout (500 ms), cooling time multiple(4.00).
08-26 11:30:38.453732 4145 4145 I StrobeDrvFlashlight: setStrobeInfo(): table id(29), timeout (500 ms), cooling time multiple(9.00).
08-26 11:30:38.453752 4145 4145 D flash_custom.cpp: cust_getFlashHalTorchDuty devid main id1
08-26 11:30:38.453788 4145 4145 I FlashNvram: nvReadStrobe().
08-26 11:30:38.453807 4145 4145 W nvbuf_util.cpp: [getInstance:408] getInstance, bInit(1)
08-26 11:30:38.453843 4145 4145 W nvbuf_util.cpp: [getBufAndReadNoLock:695] ramId(5), sensorDev(16), p(0x0), bForceRead(0) +
08-26 11:30:38.453893 4145 4145 D nvbuf_util.cpp: [getBufAndReadNoLock:707] getMem , p(0xb400007431522010), err(0)
08-26 11:30:38.453914 4145 4145 I FlashHal: Device: (1), Type: (1), CT number: (1), Part ID: (1), HW(1), in charge(1).
08-26 11:30:38.453931 4145 4145 I FlashHal: getTorchStatus(): torch status(0).
08-26 11:30:38.453949 4145 4145 D mtkcam-devicemgr: [onEnableTorchLocked] do nothing due to torch status unchanged - [email protected]/internal/22:4 torch enable:0
08-26 11:30:38.453966 4145 4145 D mtkcam-devicemgr: [setTorchModeStatusWhenOpenCloseCameraLocked] [email protected]/internal/22 newTorchModeStatus:0
08-26 11:30:38.454008 4145 4145 I FlashHal: getTorchStatus(): torch status(0).
08-26 11:30:38.454026 4145 4145 D mtkcam-devicemgr: [onEnableTorchLocked] do nothing due to torch status unchanged - [email protected]/internal/61:0 torch enable:0
08-26 11:30:38.454039 4145 4145 D mtkcam-devicemgr: [setTorchModeStatusWhenOpenCloseCameraLocked] [email protected]/internal/61 newTorchModeStatus:0
08-26 11:30:38.454609 4145 4145 D mtkcam-dev3: [0-session::tryRunCommandLocked] Run command onOpenLocked +
08-26 11:30:38.454677 4145 4145 I mtkcam-AppStreamMgr: [initialize] FMQ request size : 2097152, result size : 16777216
08-26 11:30:38.455136 4145 4145 E FMQ : grantorIdx must be less than 3
08-26 11:30:38.455249 4145 4145 E FMQ : grantorIdx must be less than 3
08-26 11:30:38.455280 4145 4145 D mtkcam-AppStreamMgr: [initialize] Disable HalBufHandler
08-26 11:30:38.456429 4145 4145 I mtkcam-AppStreamMgr: [0-CallbackHandler::CallbackHandler] enableMetaMerge 008-26 11:30:38.456930 4188 4188 D CamAp_CameraActivity: [ 23.804ms] [MARK] onCreate [23.804ms] - CameraAppUI initialized.
08-26 11:30:38.457774 4145 4145 I mtkcam-AppStreamMgr: [0-FrameHandler::FrameHandler] IsDejitterEnabled = 1, EnableMetaPending = 0
08-26 11:30:38.458019 4145 4145 I mtkcam-IonDevice: [IonDeviceProviderImpl] persist.vendor.camera.sharediondevicefd.threshold=0
08-26 11:30:38.458044 4145 4145 I mtkcam-IonDevice: [IonDeviceProviderImpl] Use shared ion device fd?(N) threshold:2048 max fd limit:(soft/hard)=32768/32768
08-26 11:30:38.458322 4145 4145 D mtkcam-DeviceAdapter: 0[HalDeviceAdapter::HalDeviceAdapter] 0xb4000073515256d0 HalDeviceAdapter:0
08-26 11:30:38.458375 4145 4145 D MtkCam/HwInfoHelper: [getSensorRawFmtType] SensorStaticInfo SensorRawFmtType(3)
08-26 11:30:38.458387 4145 4145 D MtkCam/HwInfoHelper: [get4CellSensorSupported] SensorStaticInfo 4CellSensor_Support(type:3) (support:0)
08-26 11:30:38.458401 4145 4145 D MtkCam/HwInfoHelper: [isType3PDSensorWithoutPDE] checkSensorOnly 1, sensorMode 0, mSensorStaticInfo.PDAF_Support 1, PDAFSupport 1, ret 0
08-26 11:30:38.458434 4145 4145 D mtkcam-pipelinemodel: [initPipelineStaticInfo] MTK_CONTROL_CAPTURE_ISP_TUNING_DATA_STREAM_SIZE_FOR_RAW(2560,1920)
08-26 11:30:38.458446 4145 4145 D mtkcam-pipelinemodel: [initPipelineStaticInfo] MTK_CONTROL_CAPTURE_ISP_TUNING_DATA_STREAM_SIZE_FOR_YUV(1280,720)
08-26 11:30:38.458455 4145 4145 D mtkcam-pipelinemodel: [initPipelineStaticInfo] MTK_STREAMING_FEATURE_CROP_OUTER_LINES_ENABLE(0)
08-26 11:30:38.458464 4145 4145 I mtkcam-pipelinemodel: [initPipelineStaticInfo] AIAWB flow : 0
08-26 11:30:38.458476 4145 4145 I mtkcam-pipelinemodel: [initPipelineStaticInfo] AIShutter flow : 0
08-26 11:30:38.458483 4145 4145 D mtkcam-pipelinemodel: [initPipelineStaticInfo] Must use P2 output process raw : 0
08-26 11:30:38.458492 4145 4145 D mtkcam-pipelinemodel: [initPipelineStaticInfo] Sensor driver not support VHDR
08-26 11:30:38.458593 4145 4145 D mtkcam-dev3: [0-session::onOpenLocked] timestamp(513658337568)
08-26 11:30:38.458611 4145 4145 D mtkcam-dev3: [0-session::onOpenLocked] get open id(0) active array: w(4208), h(3120)
08-26 11:30:38.458626 4145 4145 D MtkCam/ZoomRatioConverter: [Create] Create ZoomRatioConverter support(1), logLv(0)
08-26 11:30:38.458639 4145 4145 I mtkcam-dev3: [0-session::tryRunCommandLocked] Run command onOpenLocked -
08-26 11:30:38.458789 4145 4221 I mtkcam-DeviceAdapter: 0[HalDeviceAdapter::powerOn] powerOn +
08-26 11:30:38.458819 4144 4187 I CameraProviderManager: Camera device [email protected]/internal/0 torch status is now NOT_AVAILABLE
08-26 11:30:38.458880 4145 4221 D MtkCam/HwPipeline/Adapter: 0[Hal3AAdapter::Hal3AAdapter] 0xb40000730155cfb0
08-26 11:30:38.458883 4144 4187 I CameraService: onTorchStatusChangedLocked: Torch status changed for cameraId=0, newStatus=0
08-26 11:30:38.458992 4145 4145 I mtkcam-camprovider: [onTorchModeStatusChange] [email protected]/internal/0 TorchModeStatus:0
08-26 11:30:38.459002 4145 4222 D mtkcam-DeviceAdapter: [initSensor] powerOnSensor0
08-26 11:30:38.459038 4145 4222 D SeninfDrvImp: [init][init]: Entry count 0
08-26 11:30:38.459109 4144 4187 I CameraProviderManager: Camera device [email protected]/internal/20 torch status is now NOT_AVAILABLE
08-26 11:30:38.459133 4144 4187 I CameraService: onTorchStatusChangedLocked: Torch status changed for cameraId=20, newStatus=0
08-26 11:30:38.459264 4145 4145 I mtkcam-camprovider: [onTorchModeStatusChange] [email protected]/internal/20 TorchModeStatus:0
08-26 11:30:38.459349 4144 4187 I CameraProviderManager: Camera device [email protected]/internal/21 torch status is now NOT_AVAILABLE
08-26 11:30:38.459365 4144 4187 I CameraService: onTorchStatusChangedLocked: Torch status changed for cameraId=21, newStatus=0
08-26 11:30:38.459440 4145 4145 I mtkcam-camprovider: [onTorchModeStatusChange] [email protected]/internal/21 TorchModeStatus:0
08-26 11:30:38.459532 4144 4187 I CameraProviderManager: Camera device [email protected]/internal/22 torch status is now NOT_AVAILABLE
08-26 11:30:38.459549 4144 4187 I CameraService: onTorchStatusChangedLocked: Torch status changed for cameraId=22, newStatus=0
08-26 11:30:38.459698 4145 4221 D Hal3Av3 : [createInstance] sensorIdx(0) HalDeviceAdapter:0
08-26 11:30:38.459716 4145 4145 I mtkcam-camprovider: [onTorchModeStatusChange] [email protected]/internal/22 TorchModeStatus:0
08-26 11:30:38.459825 4145 4221 D Hal3Av3Meta: [doInit]+ sensorDev(0), sensorIdx(0)
08-26 11:30:38.459850 4145 4221 D aaa_hal_if: [getInstance] sensoridx(0)
08-26 11:30:38.459851 4144 4187 I CameraProviderManager: Camera device [email protected]/internal/61 torch status is now NOT_AVAILABLE
08-26 11:30:38.459879 4145 4221 D Hal3AFlowCtrl: [init] +
08-26 11:30:38.459886 4144 4187 I CameraService: onTorchStatusChangedLocked: Torch status changed for cameraId=61, newStatus=0
08-26 11:30:38.459923 4145 4221 D Hal3AFlowCtrl_thread: [Thread3AImp] Enter (1)
08-26 11:30:38.459942 4145 4221 D Hal3AFlowCtrl_thread: [createThread] +
08-26 11:30:38.460120 4145 4221 D Hal3AFlowCtrl_thread: [createThread] -
08-26 11:30:38.460120 4145 4145 I mtkcam-camprovider: [onTorchModeStatusChange] [email protected]/internal/61 TorchModeStatus:0
5、参考文档
1、https://blog.csdn.net/karaskass/article/details/106261187
6、恰饭
如果您觉得有用,感谢老铁请支持一波