第21讲 CRM之Bubble恢复机制详解

本讲是Camera KMD ISP子系统专题的第21讲,我们讲解Camera KMD ISP子系统CRM之bubble recovery流程详解。

更多资源:

资源 描述
在线课程 极客笔记在线课程
知识星球 星球名称:深入浅出Android Camera
星球ID: 17296815
Wechat 极客笔记圈

Isp bubble recovery handle

Camera KMD ISP子系统CRM之bubble recovery流程详解

cam_req_mgr_process_error(void *priv, void *data)
{
    switch (err_info->error) {
        case CRM_KMD_ERR_BUBBLE:
            idx = __cam_req_mgr_find_slot_for_req(in_q, err_info->req_id);//在in_q中找到bubble request对应下标
     __cam_req_mgr_tbl_set_all_skip_cnt(&link->req.l_tbl);//让bubble这次遍历skip掉pd 1的request
            in_q->rd_idx = idx;//重置rd_idx为bubble request对应的下标
            slot_diff = in_q->last_applied_idx - idx;//计算出最新applied request到 发生bubble request的下标偏差
            //把出现bubble request开始到last appiled之间的request都标为CRM_SLOT_STATUS_REQ_ADDED,
            //这些request都需要在SOF/EOF来时重新配置到realtime HW
            for (i = 0; i < slot_diff; i++) {
                __cam_req_mgr_inc_idx(&idx, 1, link->req.l_tbl->num_slots);
                if (in_q->slot[idx].status == CRM_SLOT_STATUS_REQ_APPLIED)
                    in_q->slot[idx].status = CRM_SLOT_STATUS_REQ_ADDED;
            }
            __cam_req_mgr_apply_on_bubble(link, err_info);//立刻重新配置pd 2的设备的request到hw
    }
}

CRM Bubble recovery

Camera KMD ISP子系统CRM之bubble recovery流程详解

假如request 3出现bubble,那么crm bubble recovery reapply的配置如下

(3,-1)

(4,3)

(5,4)

Camera KMD ISP子系统CRM之bubble recovery流程详解

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程