void _ddp_mmp_ovl_raw_under_session(unsigned int session, OVL_CONFIG_STRUCT *pLayer, MMP_MetaData_t *meta) { if (session == 1) { if (ovl_get_status() == DDP_OVL1_STATUS_PRIMARY || ovl_get_status() == DDP_OVL1_STATUS_SUB_REQUESTING) { /* 8+0 */ if (pLayer->layer < 4) MMProfileLogMeta(DDP_MMP_Events.ovl1layer_dump[pLayer->layer], MMProfileFlagPulse, meta); else if (pLayer->layer >= 4 && pLayer->layer < 8) MMProfileLogMeta(DDP_MMP_Events.layer_dump[pLayer->layer % 4], MMProfileFlagPulse, meta); } else { MMProfileLogMeta(DDP_MMP_Events.layer_dump[pLayer->layer % 4], MMProfileFlagPulse, meta); } } else if (session == 2) { MMProfileLogMeta(DDP_MMP_Events. ovl1layer_dump[pLayer->layer], MMProfileFlagPulse, meta); } }
void ddp_mmp_wdma_layer(WDMA_CONFIG_STRUCT *wdma_layer,unsigned int wdma_num, unsigned int down_sample_x,unsigned int down_sample_y) { if(wdma_num > 1) { DDPERR("dprec_mmp_dump_wdma_layer is error %d\n",wdma_num); return; } MMP_MetaDataBitmap_t Bitmap; MMP_MetaData_t meta; int raw = 0; Bitmap.data1 = wdma_layer->dstAddress; Bitmap.width = wdma_layer->srcWidth; Bitmap.height = wdma_layer->srcHeight; switch (wdma_layer->outputFormat) { case eRGB565: case eBGR565: Bitmap.format = MMProfileBitmapRGB565; Bitmap.bpp = 16; break; case eRGB888: Bitmap.format = MMProfileBitmapRGB888; Bitmap.bpp = 24; break; case eBGRA8888: Bitmap.format = MMProfileBitmapBGRA8888; Bitmap.bpp = 32; break; case eBGR888: Bitmap.format = MMProfileBitmapBGR888; Bitmap.bpp = 24; break; case eRGBA8888: Bitmap.format = MMProfileBitmapRGBA8888; Bitmap.bpp = 32; break; default: DDPERR("dprec_mmp_dump_wdma_layer(), unknow fmt=%d, dump raw\n", wdma_layer->outputFormat); raw = 1; } if(!raw) { Bitmap.start_pos =0; Bitmap.pitch = wdma_layer->dstPitch; Bitmap.data_size = Bitmap.pitch * Bitmap.height; Bitmap.down_sample_x = down_sample_x; Bitmap.down_sample_y = down_sample_y; if (m4u_mva_map_kernel(wdma_layer->dstAddress, Bitmap.data_size,(unsigned long*)&Bitmap.pData, &Bitmap.data_size)==0) { MMProfileLogMetaBitmap(DDP_MMP_Events.wdma_dump[wdma_num], MMProfileFlagPulse, &Bitmap); m4u_mva_unmap_kernel(wdma_layer->dstAddress, Bitmap.data_size, (unsigned long)Bitmap.pData); } else { DDPERR("dprec_mmp_dump_wdma_layer(),fail to dump rgb(0x%x)\n", wdma_layer->outputFormat); } } else { meta.data_type = MMProfileMetaRaw; meta.size = wdma_layer->dstPitch * wdma_layer->srcHeight; if(m4u_mva_map_kernel(wdma_layer->dstAddress, meta.size, (unsigned long*)&meta.pData, &meta.size)==0) { MMProfileLogMeta(DDP_MMP_Events.wdma_dump[wdma_num], MMProfileFlagPulse, &meta); } else { DDPERR("dprec_mmp_dump_wdma_layer(),fail to dump raw(0x%x)\n", wdma_layer->outputFormat); } } return 0; }
void ddp_mmp_ovl_layer(OVL_CONFIG_STRUCT* pLayer,unsigned int down_sample_x,unsigned int down_sample_y,unsigned int session/*1:primary, 2:external, 3:memory*/) { MMP_MetaDataBitmap_t Bitmap; MMP_MetaData_t meta; int raw = 0; if(session == 1) MMProfileLogEx(DDP_MMP_Events.layer_dump_parent,MMProfileFlagStart, pLayer->layer, pLayer->layer_en); else if(session == 2) MMProfileLogEx(DDP_MMP_Events.Extd_layer_dump_parent,MMProfileFlagStart, pLayer->layer, pLayer->layer_en); if (pLayer->layer_en) { Bitmap.data1 = pLayer->vaddr; Bitmap.width = pLayer->dst_w; Bitmap.height = pLayer->dst_h; switch (pLayer->fmt) { case eRGB565: case eBGR565: Bitmap.format = MMProfileBitmapRGB565; Bitmap.bpp = 16; break; case eRGB888: Bitmap.format = MMProfileBitmapRGB888; Bitmap.bpp = 24; break; case eBGRA8888: Bitmap.format = MMProfileBitmapBGRA8888; Bitmap.bpp = 32; break; case eBGR888: Bitmap.format = MMProfileBitmapBGR888; Bitmap.bpp = 24; break; case eRGBA8888: Bitmap.format = MMProfileBitmapRGBA8888; Bitmap.bpp = 32; break; default: DDPERR("ddp_mmp_ovl_layer(), unknow fmt=%d, dump raw\n", pLayer->fmt); raw = 1; } if(!raw) { Bitmap.start_pos =0; Bitmap.pitch = pLayer->src_pitch; Bitmap.data_size = Bitmap.pitch * Bitmap.height; Bitmap.down_sample_x = down_sample_x; Bitmap.down_sample_y = down_sample_y; if (m4u_mva_map_kernel(pLayer->addr, Bitmap.data_size,(unsigned long*)&Bitmap.pData, &Bitmap.data_size)==0) { if(session == 1) MMProfileLogMetaBitmap(DDP_MMP_Events.layer_dump[pLayer->layer], MMProfileFlagPulse, &Bitmap); else if(session == 2) MMProfileLogMetaBitmap(DDP_MMP_Events.ovl1layer_dump[pLayer->layer], MMProfileFlagPulse, &Bitmap); m4u_mva_unmap_kernel(pLayer->addr, Bitmap.data_size, (unsigned long)Bitmap.pData); } else { DDPERR("ddp_mmp_ovl_layer(),fail to dump rgb(0x%x)\n", pLayer->fmt); } } else { meta.data_type = MMProfileMetaRaw; meta.size = pLayer->src_pitch * pLayer->src_h; if(m4u_mva_map_kernel(pLayer->addr, meta.size, (unsigned long*)&meta.pData, &meta.size)==0) { if(session == 1) MMProfileLogMeta(DDP_MMP_Events.layer_dump[pLayer->layer], MMProfileFlagPulse, &meta); else if(session == 2) MMProfileLogMeta(DDP_MMP_Events.ovl1layer_dump[pLayer->layer], MMProfileFlagPulse, &meta); m4u_mva_unmap_kernel(pLayer->addr, meta.size, (unsigned long)meta.pData); } else { DDPERR("ddp_mmp_ovl_layer(),fail to dump raw(0x%x)\n", pLayer->fmt); } } } if(session == 1) MMProfileLogEx(DDP_MMP_Events.layer_dump_parent,MMProfileFlagEnd, pLayer->fmt, pLayer->addr); else if(session == 2) MMProfileLogEx(DDP_MMP_Events.Extd_layer_dump_parent,MMProfileFlagEnd, pLayer->fmt, pLayer->addr); return ; }