您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ DISP_REG_SET_FIELD函数代码示例

51自学网 2021-06-01 20:22:07
  C++
这篇教程C++ DISP_REG_SET_FIELD函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中DISP_REG_SET_FIELD函数的典型用法代码示例。如果您正苦于以下问题:C++ DISP_REG_SET_FIELD函数的具体用法?C++ DISP_REG_SET_FIELD怎么用?C++ DISP_REG_SET_FIELD使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了DISP_REG_SET_FIELD函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: OVLLayerSwitch

int OVLLayerSwitch(unsigned layer, bool en) {    ASSERT(layer<=3);    switch(layer) {    case 0:        DISP_REG_SET_FIELD(SRC_CON_FLD_L0_EN, DISP_REG_OVL_SRC_CON, en);        DISP_REG_SET(DISP_REG_OVL_RDMA0_CTRL, 0);        break;    case 1:        DISP_REG_SET_FIELD(SRC_CON_FLD_L1_EN, DISP_REG_OVL_SRC_CON, en);        DISP_REG_SET(DISP_REG_OVL_RDMA1_CTRL, 0);        break;    case 2:        DISP_REG_SET_FIELD(SRC_CON_FLD_L2_EN, DISP_REG_OVL_SRC_CON, en);        DISP_REG_SET(DISP_REG_OVL_RDMA2_CTRL, 0);        break;    case 3:        DISP_REG_SET_FIELD(SRC_CON_FLD_L3_EN, DISP_REG_OVL_SRC_CON, en);        DISP_REG_SET(DISP_REG_OVL_RDMA3_CTRL, 0);        break;    default:        printk("error: invalid layer=%d /n", layer);           // invalid layer        ASSERT(0);    }    return 0;}
开发者ID:resbeut,项目名称:S5501-3.10,代码行数:28,


示例2: OVLLayerSwitch

int OVLLayerSwitch(DISP_MODULE_ENUM module,                        unsigned layer,                        unsigned int en,                       void * handle){           int idx = ovl_index(module);    ASSERT(layer<=3);        switch(layer) {        case 0:            DISP_REG_SET_FIELD(handle,SRC_CON_FLD_L0_EN, idx*DISP_INDEX_OFFSET+DISP_REG_OVL_SRC_CON, en);            break;        case 1:            DISP_REG_SET_FIELD(handle,SRC_CON_FLD_L1_EN, idx*DISP_INDEX_OFFSET+DISP_REG_OVL_SRC_CON, en);            break;        case 2:            DISP_REG_SET_FIELD(handle,SRC_CON_FLD_L2_EN, idx*DISP_INDEX_OFFSET+DISP_REG_OVL_SRC_CON, en);            break;        case 3:            DISP_REG_SET_FIELD(handle,SRC_CON_FLD_L3_EN, idx*DISP_INDEX_OFFSET+DISP_REG_OVL_SRC_CON, en);            break;        default:            DDPERR("invalid layer=%d/n", layer);           // invalid layer            ASSERT(0);    }    return 0;}
开发者ID:Scorpio92,项目名称:mediatek,代码行数:28,


示例3: SCLStart

/* start module */int SCLStart(void){	DISP_REG_SET_FIELD(DSCL_INTEN_FLD_OF_END_INT_EN, DISP_REG_SCL_INTEN, 0);	DISP_REG_SET_FIELD(DSCL_INTEN_FLD_IF_END_INT_EN, DISP_REG_SCL_INTEN, 0);	DISP_REG_SET_FIELD(DSCL_CTRL_FLD_SCL_EN, DISP_REG_SCL_CTRL, 1);	return 0;}
开发者ID:vitek999,项目名称:android_kernel_lg_mm,代码行数:8,


示例4: rdma_reset

int rdma_reset(DISP_MODULE_ENUM module,void * handle) {    unsigned int delay_cnt=0;    int ret =0;    unsigned int idx = rdma_index(module);    ASSERT(idx <= 2);    DISP_REG_SET_FIELD(handle,GLOBAL_CON_FLD_SOFT_RESET, idx*DISP_RDMA_INDEX_OFFSET+ DISP_REG_RDMA_GLOBAL_CON, 1);    while((DISP_REG_GET(idx*DISP_RDMA_INDEX_OFFSET+ DISP_REG_RDMA_GLOBAL_CON)&0x700)==0x100)    {        delay_cnt++;        udelay(10);        if(delay_cnt>10000)        {            ret = -1;            DDPERR("rdma%d_reset timeout, stage 1! DISP_REG_RDMA_GLOBAL_CON=0x%x /n", idx, DISP_REG_GET(idx*DISP_RDMA_INDEX_OFFSET+ DISP_REG_RDMA_GLOBAL_CON));            break;        }    }          DISP_REG_SET_FIELD(handle,GLOBAL_CON_FLD_SOFT_RESET, idx*DISP_RDMA_INDEX_OFFSET+ DISP_REG_RDMA_GLOBAL_CON, 0);    delay_cnt =0;    while((DISP_REG_GET(idx*DISP_RDMA_INDEX_OFFSET+ DISP_REG_RDMA_GLOBAL_CON)&0x700)!=0x100)    {        delay_cnt++;        udelay(10);        if(delay_cnt>10000)        {            ret = -1;            DDPERR("rdma%d_reset timeout, stage 2! DISP_REG_RDMA_GLOBAL_CON=0x%x /n", idx, DISP_REG_GET(idx*DISP_RDMA_INDEX_OFFSET+ DISP_REG_RDMA_GLOBAL_CON));            break;        }    }       return ret;}
开发者ID:TechExhibeo,项目名称:kernel_lenovo_a7000,代码行数:34,


示例5: ufoe_reset

static int ufoe_reset(DISP_MODULE_ENUM module, void *handle){	DISP_REG_SET_FIELD(handle, START_FLD_DISP_UFO_SW_RST_ENGINE, DISP_REG_UFO_START, 1);	DISP_REG_SET_FIELD(handle, START_FLD_DISP_UFO_SW_RST_ENGINE, DISP_REG_UFO_START, 0);	 DDPMSG("ufoe reset done/n");	return 0;}
开发者ID:freelinux-zs,项目名称:linux,代码行数:7,


示例6: disp_scl_enable_relay_mode

/*scale reg enable relay mode*/void disp_scl_enable_relay_mode(BOOL enable, unsigned src_width, unsigned src_height){	DISP_REG_SET_FIELD(DSCL_CFG_FLD_RELAY_MODE, DISP_REG_SCL_CFG, enable);	DISP_REG_SET_FIELD(DSCL_HRZ_SIZE_FLD_HRZ_TARSZ, DISP_REG_SCL_HRZ_SIZE, src_width);	DISP_REG_SET_FIELD(DSCL_HRZ_SIZE_FLD_HRZ_SRCSZ, DISP_REG_SCL_HRZ_SIZE, src_width);	DISP_REG_SET_FIELD(DSCL_VRZ_SIZE_FLD_VRZ_TARSZ, DISP_REG_SCL_VRZ_SIZE, src_height);	DISP_REG_SET_FIELD(DSCL_VRZ_SIZE_FLD_VRZ_SRCSZ, DISP_REG_SCL_VRZ_SIZE, src_height);}
开发者ID:vitek999,项目名称:android_kernel_lg_mm,代码行数:12,


示例7: disp_scl_reg_enable

/*scale reg enable*/void disp_scl_reg_enable(BOOL enable){	BOOL bEnable = enable;	if (bEnable) {		DISP_REG_SET_FIELD(DSCL_INTEN_FLD_OF_END_INT_EN, DISP_REG_SCL_INTEN, 1);		DISP_REG_SET_FIELD(DSCL_INTEN_FLD_IF_END_INT_EN, DISP_REG_SCL_INTEN, 1);	}	DISP_REG_SET_FIELD(DSCL_CTRL_FLD_SCL_EN, DISP_REG_SCL_CTRL, bEnable);}
开发者ID:vitek999,项目名称:android_kernel_lg_mm,代码行数:14,


示例8: WDMASlowMode

void WDMASlowMode(unsigned int idx,                           unsigned int enable,                           unsigned int level,                           unsigned int cnt,                          unsigned int threadhold){        DISP_REG_SET_FIELD(WDMA_SMI_CON_FLD_Slow_Enable, DISP_REG_WDMA_SMI_CON, enable&0x01);    DISP_REG_SET_FIELD(WDMA_SMI_CON_FLD_Slow_Count,  DISP_REG_WDMA_SMI_CON, cnt&0xff);    DISP_REG_SET_FIELD(WDMA_SMI_CON_FLD_Slow_Level,  DISP_REG_WDMA_SMI_CON, level&0x7);    DISP_REG_SET_FIELD(WDMA_SMI_CON_FLD_Threshold,   DISP_REG_WDMA_SMI_CON, threadhold&0xf);}
开发者ID:dimsink1,项目名称:KK_huawei_y511,代码行数:13,


示例9: SCLConfig

/* configu module */int SCLConfig(DISP_INTERLACE_FORMAT interlace,	      int rotateDegree, int srcWidth, int srcHeight, int dstWidth, int dstHeight, int flip){	unsigned char rotate = 0;	unsigned char isInterlace = (interlace == DISP_INTERLACE_FORMAT_NONE) ? 0 : 1;	unsigned char isBottomField = (interlace == DISP_INTERLACE_FORMAT_BOTTOM_FIELD) ? 1 : 0;	switch (rotateDegree) {	case 0:		rotate = 0;		break;	case 90:		rotate = 1;		break;	case 180:		rotate = 2;		break;	case 270:		rotate = 3;		break;	default:		DDP_SCL_LOG("unsupport rotate degree %d", rotateDegree);		break;	}	DDP_SCL_LOG("DpEngine_SCL config.../n");	DDP_SCL_LOG(" input (w, h) : %d %d/n", srcWidth, srcHeight);	DDP_SCL_LOG(" output (w, h) : %d %d/n", dstWidth, dstHeight);	DDP_SCL_LOG(" rotate : %d, flip=%d/n", rotate, flip);	disp_scl_set_scale_param(srcWidth,				 srcHeight,				 dstWidth,				 dstHeight,				 isInterlace,	/* 0=progressive source, 1=interlaced source */				 isBottomField,	/* 0=source is top field, 1=source is bottom field */				 rotate,	/* source rotated; 0=no, 1=90, 2=180, 3=270 (clockwise) */				 flip);	/* source horizontal flipped; 0=no flip, 1=flipped */	DISP_REG_SET_FIELD(DSCL_INP_CHKSUM_FLD_INP_CHKSUM_EN, DISP_REG_SCL_INP_CHKSUM, 1);	DISP_REG_SET_FIELD(DSCL_OUTP_CHKSUM_FLD_OUTP_CHKSUM_EN, DISP_REG_SCL_OUTP_CHKSUM, 1);	return 0;}
开发者ID:vitek999,项目名称:android_kernel_lg_mm,代码行数:49,


示例10: ovl_start

int ovl_start(DISP_MODULE_ENUM module, void *handle){	int idx = ovl_index(module);	int idx_offset = idx*DISP_OVL_INDEX_OFFSET;	DISP_REG_SET(handle, idx_offset+DISP_REG_OVL_EN, 0x01);	int enable_ovl_irq = 1;#if defined(CONFIG_TRUSTONIC_TEE_SUPPORT) && defined(CONFIG_MTK_SEC_VIDEO_PATH_SUPPORT)	enable_ovl_irq = 1;#else	if(gEnableIRQ==1)	    enable_ovl_irq = 1;	else		enable_ovl_irq = 0;#endif	if(enable_ovl_irq)	    DISP_REG_SET(handle, idx_offset+DISP_REG_OVL_INTEN, 0x1e2);	else	    DISP_REG_SET(handle, idx_offset+DISP_REG_OVL_INTEN, 0x1e0);	    	DISP_REG_SET_FIELD(handle, DATAPATH_CON_FLD_LAYER_SMI_ID_EN,			idx_offset+DISP_REG_OVL_DATAPATH_CON, 0x1);	return 0;}
开发者ID:hacknmtk,项目名称:android_kernel_alcatel_5017,代码行数:25,


示例11: SCLStop

/* stop module */int SCLStop(void){	DISP_REG_SET_FIELD(DSCL_CTRL_FLD_SCL_EN, DISP_REG_SCL_CTRL, 0);	DISP_REG_SET(DISP_REG_SCL_INTEN, 0);	DISP_REG_SET(DISP_REG_SCL_INTSTA, 0);	return 0;}
开发者ID:vitek999,项目名称:android_kernel_lg_mm,代码行数:8,


示例12: RDMAReset

int RDMAReset(unsigned idx){	unsigned int delay_cnt = 0;	/* static unsigned int cnt=0; */	ASSERT(idx <= 2);	DISP_REG_SET_FIELD(GLOBAL_CON_FLD_SOFT_RESET,			   idx * DISP_INDEX_OFFSET + DISP_REG_RDMA_GLOBAL_CON, 1);	while ((DISP_REG_GET(idx * DISP_INDEX_OFFSET + DISP_REG_RDMA_GLOBAL_CON) & 0x700) == 0x100) {		delay_cnt++;		if (delay_cnt > 10000) {			DISP_ERR			    ("[DDP] error, RDMAReset(%d) timeout, stage 1! DISP_REG_RDMA_GLOBAL_CON=0x%x/n",			     idx, DISP_REG_GET(idx * DISP_INDEX_OFFSET + DISP_REG_RDMA_GLOBAL_CON));			break;		}	}	DISP_REG_SET_FIELD(GLOBAL_CON_FLD_SOFT_RESET,			   idx * DISP_INDEX_OFFSET + DISP_REG_RDMA_GLOBAL_CON, 0);	while ((DISP_REG_GET(idx * DISP_INDEX_OFFSET + DISP_REG_RDMA_GLOBAL_CON) & 0x700) != 0x100) {		delay_cnt++;		if (delay_cnt > 10000) {			DISP_ERR			    ("[DDP] error, RDMAReset(%d) timeout, stage 2! DISP_REG_RDMA_GLOBAL_CON=0x%x/n",			     idx, DISP_REG_GET(idx * DISP_INDEX_OFFSET + DISP_REG_RDMA_GLOBAL_CON));			ddp_dump_info(DISP_MODULE_CONFIG);			ddp_dump_info(DISP_MODULE_MUTEX);			ddp_dump_info(DISP_MODULE_OVL);			ddp_dump_info(DISP_MODULE_RDMA);			break;		}	}#if 0	DISP_REG_SET(idx * DISP_INDEX_OFFSET + DISP_REG_RDMA_GLOBAL_CON, 0x00);	DISP_REG_SET(idx * DISP_INDEX_OFFSET + DISP_REG_RDMA_SIZE_CON_0, 0x00);	DISP_REG_SET(idx * DISP_INDEX_OFFSET + DISP_REG_RDMA_SIZE_CON_1, 0x00);	DISP_REG_SET(idx * DISP_INDEX_OFFSET + DISP_REG_RDMA_MEM_CON, 0x00);	DISP_REG_SET(idx * DISP_INDEX_OFFSET + DISP_REG_RDMA_MEM_START_ADDR, 0x00);	DISP_REG_SET(idx * DISP_INDEX_OFFSET + DISP_REG_RDMA_MEM_SRC_PITCH, 0x00);	DISP_REG_SET(idx * DISP_INDEX_OFFSET + DISP_REG_RDMA_MEM_GMC_SETTING_1, 0x20);	/* /TODO: need check */	/* DISP_REG_SET(idx * DISP_INDEX_OFFSET + DISP_REG_RDMA_FIFO_CON , 0x80f00008);        ///TODO: need check */#endif	return 0;}
开发者ID:vitek999,项目名称:android_kernel_lg_mm,代码行数:47,


示例13: hdmi_dst_display_path_config

int hdmi_dst_display_path_config(bool enable){    HDMI_FUNC();    if (enable)    {        //FIXME: now nothing can be seen on TV if output UYVY from WDMA0        unsigned int hdmiSourceAddr = hdmi_mva_r;// + p->hdmi_width * p->hdmi_height * hdmi_bpp * hdmi_buffer_read_id;        struct disp_path_config_struct config = {0};        // Config RDMA->DPI1        config.srcWidth = 1280;        config.srcHeight = 720;        config.srcModule = DISP_MODULE_RDMA1;        config.inFormat = RDMA_INPUT_FORMAT_ARGB;        config.outFormat = RDMA_OUTPUT_FORMAT_ARGB;        config.addr = hdmiSourceAddr;        config.pitch = config.srcWidth * 4;        config.dstModule = DISP_MODULE_DPI0;        //if(-1 == dp_mutex_dst)        //   dp_mutex_dst = disp_lock_mutex();        dp_mutex_dst = 2;        disp_dump_reg(DISP_MODULE_RDMA0);        disp_dump_reg(DISP_MODULE_RDMA1);        disp_dump_reg(DISP_MODULE_CONFIG);        HDMI_LOG("Get mutex ID %d for RDMA1>DPI1/n", dp_mutex_dst);        disp_path_get_mutex_(dp_mutex_dst);        disp_path_config_(&config, dp_mutex_dst);        disp_path_release_mutex_(dp_mutex_dst);        disp_dump_reg(DISP_MODULE_CONFIG);        disp_dump_reg(DISP_MODULE_RDMA0);        disp_dump_reg(DISP_MODULE_RDMA1);    }    else    {        if (-1 != dp_mutex_dst)        {            //FIXME: release mutex timeout            HDMI_LOG("Stop RDMA1>DPI1/n");            disp_path_get_mutex_(dp_mutex_dst);            DISP_REG_SET_FIELD(1 << dp_mutex_src , DISP_REG_CONFIG_MUTEX_INTEN,  1);            RDMAStop(1);            RDMAReset(1);            disp_path_release_mutex_(dp_mutex_dst);            //disp_unlock_mutex(dp_mutex_dst);            dp_mutex_dst = -1;        }    }    return 0;}
开发者ID:4Fwolf,项目名称:motorola-hawk-kernel-3.4.67,代码行数:59,


示例14: RDMAReset

int RDMAReset(unsigned idx) {	unsigned int delay_cnt = 0;    ASSERT(idx <= 2);    DISP_REG_SET_FIELD(GLOBAL_CON_FLD_SOFT_RESET, idx * DISP_INDEX_OFFSET + DISP_REG_RDMA_GLOBAL_CON, 1);    while((DISP_REG_GET(idx * DISP_INDEX_OFFSET + DISP_REG_RDMA_GLOBAL_CON)&0x700)==0x100) {    	delay_cnt++;    	if(delay_cnt > 10000) {    		printf("[DDP] error, RDMAReset(%d) timeout, stage 1! DISP_REG_RDMA_GLOBAL_CON=0x%x /n", idx, DISP_REG_GET(idx * 0x1000 + DISP_REG_RDMA_GLOBAL_CON));    		break;    	}    }    DISP_REG_SET_FIELD(GLOBAL_CON_FLD_SOFT_RESET, idx * DISP_INDEX_OFFSET + DISP_REG_RDMA_GLOBAL_CON, 0);    return 0;}
开发者ID:amadews,项目名称:j608_fly_4511,代码行数:17,


示例15: RDMAStop

int RDMAStop(unsigned idx) {    ASSERT(idx <= 2);    DISP_REG_SET_FIELD(GLOBAL_CON_FLD_ENGINE_EN, idx * DISP_INDEX_OFFSET + DISP_REG_RDMA_GLOBAL_CON, 0);    DISP_REG_SET(idx * DISP_INDEX_OFFSET + DISP_REG_RDMA_INT_ENABLE, 0);    DISP_REG_SET(idx * DISP_INDEX_OFFSET + DISP_REG_RDMA_INT_STATUS, 0);    return 0;}
开发者ID:Proshivalskiy,项目名称:MT6582_kernel_source,代码行数:8,


示例16: RDMAReset

int RDMAReset(unsigned idx) {    ASSERT(idx <= 2);    DISP_REG_SET_FIELD(GLOBAL_CON_FLD_SOFT_RESET, DISP_REG_RDMA_GLOBAL_CON, 1);     DISP_REG_SET_FIELD(GLOBAL_CON_FLD_SOFT_RESET, DISP_REG_RDMA_GLOBAL_CON, 0);     DISP_REG_SET(DISP_REG_RDMA_GLOBAL_CON     , 0x00);    DISP_REG_SET(DISP_REG_RDMA_SIZE_CON_0     , 0x00);    DISP_REG_SET(DISP_REG_RDMA_SIZE_CON_1     , 0x00);    DISP_REG_SET(DISP_REG_RDMA_MEM_CON         , 0x00);    DISP_REG_SET(DISP_REG_RDMA_MEM_START_ADDR , 0x00);    DISP_REG_SET(DISP_REG_RDMA_MEM_SRC_PITCH     , 0x00);    DISP_REG_SET(DISP_REG_RDMA_MEM_GMC_SETTING_1 , 0x20);     ///TODO: need check    DISP_REG_SET(DISP_REG_RDMA_FIFO_CON , 0x81000040);        ///TODO: need check        return 0;}
开发者ID:WayWingsDev,项目名称:mediatek,代码行数:17,


示例17: OVLStart

int OVLStart(DISP_MODULE_ENUM module,void * handle) {    int idx = ovl_index(module);    DISP_REG_SET(handle,idx*DISP_INDEX_OFFSET+DISP_REG_OVL_INTEN, 0x0E);    DISP_REG_SET(handle,idx*DISP_INDEX_OFFSET+DISP_REG_OVL_EN, 0x01);    DISP_REG_SET_FIELD(handle,DATAPATH_CON_FLD_LAYER_SMI_ID_EN,		                idx*DISP_INDEX_OFFSET+DISP_REG_OVL_DATAPATH_CON,0x1);    return 0;}
开发者ID:Scorpio92,项目名称:mediatek,代码行数:9,


示例18: rdma_stop

int rdma_stop(DISP_MODULE_ENUM module,void * handle) {    unsigned int idx = rdma_index(module);    ASSERT(idx <= 2);    DISP_REG_SET_FIELD(handle,GLOBAL_CON_FLD_ENGINE_EN, idx*DISP_RDMA_INDEX_OFFSET+ DISP_REG_RDMA_GLOBAL_CON, 0);    DISP_REG_SET(handle,idx*DISP_RDMA_INDEX_OFFSET+ DISP_REG_RDMA_INT_ENABLE, 0);    DISP_REG_SET(handle,idx*DISP_RDMA_INDEX_OFFSET+ DISP_REG_RDMA_INT_STATUS, 0);    return 0;}
开发者ID:TechExhibeo,项目名称:kernel_lenovo_a7000,代码行数:9,


示例19: ufoe_start

int ufoe_start(DISP_MODULE_ENUM module, void* cmdq){	if(ufoe_enable)	{		DISP_REG_SET_FIELD(cmdq, START_FLD_DISP_UFO_START, DISP_REG_UFO_START, 1);	}	DDPMSG("ufoe_start, ufoe_start:0x%x/n", DISP_REG_GET(DISP_REG_UFO_START));	return 0;}
开发者ID:freelinux-zs,项目名称:linux,代码行数:9,


示例20: WDMAConfigUV

int WDMAConfigUV(unsigned idx, unsigned int uAddr, unsigned int vAddr, unsigned int dstWidth){    unsigned int bpp=1;    DISP_REG_SET(idx*DISP_INDEX_OFFSET+DISP_REG_WDMA_DST_U_ADDR, uAddr);    DISP_REG_SET(idx*DISP_INDEX_OFFSET+DISP_REG_WDMA_DST_V_ADDR, vAddr);    DISP_REG_SET_FIELD(WDMA_BUF_ADDR_FLD_UV_Pitch, idx*DISP_INDEX_OFFSET+DISP_REG_WDMA_DST_UV_PITCH, dstWidth * bpp/2);    return 0;}
开发者ID:CobraJet93,项目名称:kernel-3.10.54,代码行数:10,


示例21: WDMADumpHidenReg

static int WDMADumpHidenReg(unsigned idx){  unsigned int i=0;  printk("[DDP] dump WDMA 0xac:/n [DDP]:");  for(i=0;i<16;i++)  {      DISP_REG_SET_FIELD(WDMA_CFG_FLD_REG_MASK, idx*DISP_INDEX_OFFSET+DISP_REG_WDMA_CFG, i);      printk("0x%x, ", DISP_REG_GET(DISP_REG_WDMA_CFG));  }}
开发者ID:Proshivalskiy,项目名称:MT6582_kernel_source,代码行数:10,


示例22: RDMAReset

int RDMAReset(unsigned idx) {    unsigned int delay_cnt=0;    //static unsigned int cnt=0;        // printk("[DDP] RDMAReset called %d /n", cnt++);    ASSERT(idx <= 2);    DISP_REG_SET_FIELD(GLOBAL_CON_FLD_SOFT_RESET, idx * DISP_INDEX_OFFSET + DISP_REG_RDMA_GLOBAL_CON, 1);    while((DISP_REG_GET(idx * DISP_INDEX_OFFSET + DISP_REG_RDMA_GLOBAL_CON)&0x700)==0x100)    {        delay_cnt++;        if(delay_cnt>10000)        {            printk("[DDP] error, RDMAReset(%d) timeout, stage 1! DISP_REG_RDMA_GLOBAL_CON=0x%x /n", idx, DISP_REG_GET(idx * DISP_INDEX_OFFSET + DISP_REG_RDMA_GLOBAL_CON));            break;        }    }          DISP_REG_SET_FIELD(GLOBAL_CON_FLD_SOFT_RESET, idx * DISP_INDEX_OFFSET + DISP_REG_RDMA_GLOBAL_CON, 0);    // printk("[DDP] start reset! /n");    while((DISP_REG_GET(idx * DISP_INDEX_OFFSET + DISP_REG_RDMA_GLOBAL_CON)&0x700)!=0x100)    {        delay_cnt++;        if(delay_cnt>10000)        {            printk("[DDP] error, RDMAReset(%d) timeout, stage 2! DISP_REG_RDMA_GLOBAL_CON=0x%x /n", idx, DISP_REG_GET(idx * DISP_INDEX_OFFSET + DISP_REG_RDMA_GLOBAL_CON));            break;        }    }       // printk("[DDP] end reset! /n");        DISP_REG_SET(idx * DISP_INDEX_OFFSET + DISP_REG_RDMA_GLOBAL_CON     , 0x00);    DISP_REG_SET(idx * DISP_INDEX_OFFSET + DISP_REG_RDMA_SIZE_CON_0     , 0x00);    DISP_REG_SET(idx * DISP_INDEX_OFFSET + DISP_REG_RDMA_SIZE_CON_1     , 0x00);    DISP_REG_SET(idx * DISP_INDEX_OFFSET + DISP_REG_RDMA_MEM_CON         , 0x00);    DISP_REG_SET(idx * DISP_INDEX_OFFSET + DISP_REG_RDMA_MEM_START_ADDR , 0x00);    DISP_REG_SET(idx * DISP_INDEX_OFFSET + DISP_REG_RDMA_MEM_SRC_PITCH     , 0x00);    DISP_REG_SET(idx * DISP_INDEX_OFFSET + DISP_REG_RDMA_MEM_GMC_SETTING_1 , 0x20);     ///TODO: need check    DISP_REG_SET(idx * DISP_INDEX_OFFSET + DISP_REG_RDMA_FIFO_CON , 0x80f00008);        ///TODO: need check        return 0;}
开发者ID:Proshivalskiy,项目名称:MT6582_kernel_source,代码行数:42,


示例23: rdma_resolution_test

int rdma_resolution_test(DISP_MODULE_ENUM module,unsigned int fw,unsigned fh){	int ret=0;	unsigned int idx = rdma_index(module);		int pw = DISP_REG_GET(DISP_REG_RDMA_SIZE_CON_0+DISP_RDMA_INDEX_OFFSET*idx)&0xfff;	int ph = DISP_REG_GET(DISP_REG_RDMA_SIZE_CON_1+DISP_RDMA_INDEX_OFFSET*idx)&0xfffff;    //reset rdma	ret=rdma_reset(module,NULL);	if(ret!=0)	{		printk("reset fail/n");		return -1;	}	DISP_REG_SET_FIELD(NULL,SIZE_CON_0_FLD_OUTPUT_FRAME_WIDTH, idx*DISP_RDMA_INDEX_OFFSET+ DISP_REG_RDMA_SIZE_CON_0, pw);    DISP_REG_SET_FIELD(NULL,SIZE_CON_1_FLD_OUTPUT_FRAME_HEIGHT, idx*DISP_RDMA_INDEX_OFFSET+ DISP_REG_RDMA_SIZE_CON_1, ph);	DISP_REG_SET_FIELD(NULL,SIZE_CON_0_FLD_OUTPUT_FRAME_WIDTH, idx*DISP_RDMA_INDEX_OFFSET+ DISP_REG_RDMA_SIZE_CON_0, fw);    DISP_REG_SET_FIELD(NULL,SIZE_CON_1_FLD_OUTPUT_FRAME_HEIGHT, idx*DISP_RDMA_INDEX_OFFSET+ DISP_REG_RDMA_SIZE_CON_1, fh);	int w = DISP_REG_GET(DISP_REG_RDMA_SIZE_CON_0+DISP_RDMA_INDEX_OFFSET*idx)&0xfff;    int h = DISP_REG_GET(DISP_REG_RDMA_SIZE_CON_1+DISP_RDMA_INDEX_OFFSET*idx)&0xfffff;    if((w!=pw) && (h!=ph))    {        printk("w=%d,h=%d,pw=%d,ph=%d,fw=%d,fh=%d/n",w,h,pw,ph,fw,fh);		DISP_REG_SET_FIELD(NULL,SIZE_CON_0_FLD_OUTPUT_FRAME_WIDTH, idx*DISP_RDMA_INDEX_OFFSET+ DISP_REG_RDMA_SIZE_CON_0, pw);    	DISP_REG_SET_FIELD(NULL,SIZE_CON_1_FLD_OUTPUT_FRAME_HEIGHT, idx*DISP_RDMA_INDEX_OFFSET+ DISP_REG_RDMA_SIZE_CON_1, ph);		ret =-1;    }		return ret;}
开发者ID:TechExhibeo,项目名称:kernel_lenovo_a7000,代码行数:33,


示例24: rdma_set_ultra

// set ultra registersvoid rdma_set_ultra(unsigned int idx, unsigned int width, unsigned int height, unsigned int bpp, unsigned int frame_rate,void * handle){  // constant  static const unsigned int blank_overhead = 115; //it is 1.15, need to divide 100 later  static const unsigned int rdma_fifo_width = 16; //in unit of byte  static const unsigned int ultra_low_time      = 5; //in unit of us  static const unsigned int pre_ultra_low_time  = 7; //in unit of us  static const unsigned int pre_ultra_high_time = 8; //in unit of us  static const unsigned int fifo_size = 512;  static const unsigned int fifo_valid_line_ratio = 125; //valid size 1/8 line;  static const unsigned int fifo_min_size = 24;  // working variables  unsigned int consume_levels_per_sec;  unsigned int ultra_low_level;  unsigned int pre_ultra_low_level;  unsigned int pre_ultra_high_level;  unsigned int ultra_high_ofs;  unsigned int pre_ultra_low_ofs;  unsigned int pre_ultra_high_ofs;  unsigned int fifo_valid_size = 16;  /* compute fifo valid size */  fifo_valid_size = (width * bpp * fifo_valid_line_ratio) / (rdma_fifo_width * 1000);  fifo_valid_size = fifo_valid_size > fifo_min_size ? fifo_valid_size : fifo_min_size;  //consume_levels_per_sec = ((long long unsigned int)width*height*frame_rate*blank_overhead*bpp)/rdma_fifo_width/100;  //change calculation order to prevent overflow of unsigned int  consume_levels_per_sec = (width*height*frame_rate*bpp/rdma_fifo_width/100)*blank_overhead;    // /1000000 for ultra_low_time in unit of us  ultra_low_level      = (unsigned int)(ultra_low_time      * consume_levels_per_sec / 1000000 );   pre_ultra_low_level  = (unsigned int)(pre_ultra_low_time  * consume_levels_per_sec / 1000000 );   pre_ultra_high_level = (unsigned int)(pre_ultra_high_time * consume_levels_per_sec / 1000000 );     pre_ultra_low_ofs = pre_ultra_low_level - ultra_low_level;  ultra_high_ofs = 1;   pre_ultra_high_ofs = pre_ultra_high_level - pre_ultra_low_level ;    //write ultra_low_level, ultra_high_ofs, pre_ultra_low_ofs, pre_ultra_high_ofs into register DISP_RDMA_MEM_GMC_SETTING_0  DISP_REG_SET(handle,idx*DISP_RDMA_INDEX_OFFSET+ DISP_REG_RDMA_MEM_GMC_SETTING_0,     ultra_low_level|(pre_ultra_low_ofs<<8)|(ultra_high_ofs<<16)|(pre_ultra_high_ofs<<24));  DISP_REG_SET_FIELD(handle,FIFO_CON_FLD_OUTPUT_VALID_FIFO_THRESHOLD, idx*DISP_RDMA_INDEX_OFFSET+ DISP_REG_RDMA_FIFO_CON, fifo_valid_size);  DDPDBG("FIFO_VALID_Size      = 0x%03x = %d/n", fifo_valid_size     , fifo_valid_size     );   DDPDBG("ultra_low_level      = 0x%03x = %d/n", ultra_low_level     , ultra_low_level     );   DDPDBG("pre_ultra_low_level  = 0x%03x = %d/n", pre_ultra_low_level , pre_ultra_low_level );  DDPDBG("pre_ultra_high_level = 0x%03x = %d/n", pre_ultra_high_level, pre_ultra_high_level);  DDPDBG("ultra_high_ofs       = 0x%03x = %d/n", ultra_high_ofs      , ultra_high_ofs      );  DDPDBG("pre_ultra_low_ofs    = 0x%03x = %d/n", pre_ultra_low_ofs   , pre_ultra_low_ofs   );  DDPDBG("pre_ultra_high_ofs   = 0x%03x = %d/n", pre_ultra_high_ofs  , pre_ultra_high_ofs  );}
开发者ID:AudioGod,项目名称:MediaTek-HelioX10-Kernel,代码行数:53,


示例25: WDMAConfigUV

int WDMAConfigUV(unsigned idx, unsigned int uAddr, unsigned int vAddr, unsigned int dstWidth){    unsigned int bpp=1;    DISP_REG_SET(DISP_REG_WDMA_DST_ADDR1, uAddr);    DISP_REG_SET(DISP_REG_WDMA_DST_ADDR2, vAddr);    DISP_REG_SET_FIELD(WDMA_BUF_ADDR_FLD_UV_Pitch, DISP_REG_WDMA_DST_UV_PITCH, dstWidth * bpp/2);    return 0;}
开发者ID:WayWingsDev,项目名称:mediatek,代码行数:13,


示例26: RDMAConfig

int RDMAConfig(unsigned idx,                    enum RDMA_MODE mode,                    enum RDMA_INPUT_FORMAT inputFormat,                     unsigned address,                     enum RDMA_OUTPUT_FORMAT outputFormat,                     unsigned pitch,                    unsigned width,                     unsigned height,                     bool isByteSwap, // input setting                    bool isRGBSwap)  // ourput setting{    unsigned bpp;        ASSERT(idx <= 2);    ASSERT((width <= RDMA_MAX_WIDTH) && (height <= RDMA_MAX_HEIGHT));    switch(inputFormat) {    case RDMA_INPUT_FORMAT_YUYV:    case RDMA_INPUT_FORMAT_UYVY:    case RDMA_INPUT_FORMAT_YVYU:    case RDMA_INPUT_FORMAT_VYUY:    case RDMA_INPUT_FORMAT_RGB565:        bpp = 2;        break;    case RDMA_INPUT_FORMAT_RGB888:        bpp = 3;        break;    case RDMA_INPUT_FORMAT_ARGB:        bpp = 4;        break;    default:        ASSERT(0);    }    printk("RDMA: w=%d, h=%d, addr=%x, pitch=%d, mode=%d /n", width, height, address, width*bpp, mode);	    DISP_REG_SET_FIELD(GLOBAL_CON_FLD_MODE_SEL, idx * DISP_INDEX_OFFSET + DISP_REG_RDMA_GLOBAL_CON, mode);    DISP_REG_SET_FIELD(MEM_CON_FLD_MEM_MODE_INPUT_FORMAT, idx * DISP_INDEX_OFFSET + DISP_REG_RDMA_MEM_CON, inputFormat);        DISP_REG_SET(idx * DISP_INDEX_OFFSET + DISP_REG_RDMA_MEM_START_ADDR, address);    DISP_REG_SET(idx * DISP_INDEX_OFFSET + DISP_REG_RDMA_MEM_SRC_PITCH, pitch);    DISP_REG_SET(idx * DISP_INDEX_OFFSET + DISP_REG_RDMA_INT_ENABLE, 0x1F);        DISP_REG_SET_FIELD(SIZE_CON_0_FLD_INPUT_BYTE_SWAP, idx * DISP_INDEX_OFFSET + DISP_REG_RDMA_SIZE_CON_0, isByteSwap);    DISP_REG_SET_FIELD(SIZE_CON_0_FLD_OUTPUT_FORMAT, idx * DISP_INDEX_OFFSET + DISP_REG_RDMA_SIZE_CON_0, outputFormat);    DISP_REG_SET_FIELD(SIZE_CON_0_FLD_OUTPUT_FRAME_WIDTH, idx * DISP_INDEX_OFFSET + DISP_REG_RDMA_SIZE_CON_0, width);    DISP_REG_SET_FIELD(SIZE_CON_0_FLD_OUTPUT_RGB_SWAP, idx * DISP_INDEX_OFFSET + DISP_REG_RDMA_SIZE_CON_0, isRGBSwap);    DISP_REG_SET_FIELD(SIZE_CON_1_FLD_OUTPUT_FRAME_HEIGHT, idx * DISP_INDEX_OFFSET + DISP_REG_RDMA_SIZE_CON_1, height);    return 0;}
开发者ID:Lesozav25,项目名称:mtk_6572,代码行数:52,


示例27: ufoe_config

static int ufoe_config(DISP_MODULE_ENUM module, disp_ddp_path_config* pConfig, void* handle){	LCM_PARAMS *disp_if_config = &(pConfig->dispif_config);	LCM_DSI_PARAMS *lcm_config = &(disp_if_config->dsi);	if(lcm_config->ufoe_enable == 1 && pConfig->dst_dirty)	{		ufoe_enable = true;		DISP_REG_SET_FIELD(handle, START_FLD_DISP_UFO_BYPASS, DISP_REG_UFO_START, 0);//disable BYPASS ufoe//		DISP_REG_SET_FIELD(handle, START_FLD_DISP_UFO_START, DISP_REG_UFO_START, 1);		if(lcm_config->ufoe_params.lr_mode_en == 1)		{			DISP_REG_SET_FIELD(handle, START_FLD_DISP_UFO_LR_EN, DISP_REG_UFO_START, 1);		}		else		{			DISP_REG_SET_FIELD(handle, START_FLD_DISP_UFO_LR_EN, DISP_REG_UFO_START, 0);			if(lcm_config->ufoe_params.compress_ratio == 3)			{				unsigned int internal_width = disp_if_config->width + disp_if_config->width%4;				DISP_REG_SET_FIELD(handle, CFG_0B_FLD_DISP_UFO_CFG_COM_RATIO, DISP_REG_UFO_CFG_0B, 1);				if(internal_width % 6 != 0)				{					DISP_REG_SET_FIELD(handle, CR0P6_PAD_FLD_DISP_UFO_STR_PAD_NUM, DISP_REG_UFO_CR0P6_PAD , (internal_width/6 + 1) * 6 - internal_width);				}			}			else				DISP_REG_SET_FIELD(handle, CFG_0B_FLD_DISP_UFO_CFG_COM_RATIO, DISP_REG_UFO_CFG_0B, 0);			if(lcm_config->ufoe_params.vlc_disable)			{				DISP_REG_SET_FIELD(handle, CFG_0B_FLD_DISP_UFO_CFG_VLC_EN, DISP_REG_UFO_CFG_0B, 0);				DISP_REG_SET(handle, DISP_REG_UFO_CFG_1B, 0x1);			}			else			{				DISP_REG_SET_FIELD(handle, CFG_0B_FLD_DISP_UFO_CFG_VLC_EN, DISP_REG_UFO_CFG_0B, 1);				DISP_REG_SET(handle, DISP_REG_UFO_CFG_1B,  (lcm_config->ufoe_params.vlc_config == 0)?5: lcm_config->ufoe_params.vlc_config);			}		}		DISP_REG_SET(handle, DISP_REG_UFO_FRAME_WIDTH, pConfig->dst_w);		DISP_REG_SET(handle, DISP_REG_UFO_FRAME_HEIGHT, pConfig->dst_h);		ufoe_dump();	}		return 0;}
开发者ID:AudioGod,项目名称:MediaTek-HelioX10-Kernel,代码行数:47,


示例28: OVLLayerSwitch

int OVLLayerSwitch(unsigned layer, bool en) {        ASSERT(layer<=3);        switch(layer) {        case 0:            DISP_REG_SET_FIELD(SRC_CON_FLD_L0_EN, DISP_REG_OVL_SRC_CON, en);            break;        case 1:            DISP_REG_SET_FIELD(SRC_CON_FLD_L1_EN, DISP_REG_OVL_SRC_CON, en);            break;        case 2:            DISP_REG_SET_FIELD(SRC_CON_FLD_L2_EN, DISP_REG_OVL_SRC_CON, en);            break;        case 3:            DISP_REG_SET_FIELD(SRC_CON_FLD_L3_EN, DISP_REG_OVL_SRC_CON, en);            break;        default:            DDP_DRV_ERR("error: invalid layer=%d /n", layer);           // invalid layer            ASSERT(0);    }    return 0;}
开发者ID:dimsink1,项目名称:KK_huawei_y511,代码行数:24,


示例29: rdma_build_cmdq

int rdma_build_cmdq(DISP_MODULE_ENUM module,void *cmdq_trigger_handle, CMDQ_STATE state){	int ret = 0;    unsigned int idx = rdma_index(module);	if(cmdq_trigger_handle == NULL) 	{		DDPERR("cmdq_trigger_handle is NULL/n");		return -1;	}		if(disp_helper_get_option(DISP_HELPER_OPTION_DYNAMIC_SWITCH_UNDERFLOW_EN))	{		if(state == CMDQ_AFTER_STREAM_EOF) 	{	    DISP_REG_SET_FIELD(cmdq_trigger_handle,FIFO_CON_FLD_FIFO_UNDERFLOW_EN, idx*DISP_RDMA_INDEX_OFFSET+ DISP_REG_RDMA_FIFO_CON, 0);	}	else if(state == CMDQ_AFTER_STREAM_SOF)	{	    DISP_REG_SET_FIELD(cmdq_trigger_handle,FIFO_CON_FLD_FIFO_UNDERFLOW_EN, idx*DISP_RDMA_INDEX_OFFSET+ DISP_REG_RDMA_FIFO_CON, 1);	}	}	return 0;}
开发者ID:AudioGod,项目名称:MediaTek-HelioX10-Kernel,代码行数:24,


示例30: ddp_mutex_set_l

static int ddp_mutex_set_l(int mutex_id, int* module_list, DDP_MODE ddp_mode, void * handle){    int i=0;    kal_uint32 value = 0;    int module_num = ddp_get_module_num_l(module_list);    MUTEX_SOF mode = ddp_get_mutex_sof(module_list[module_num-1],ddp_mode);    if(mutex_id < DISP_MUTEX_DDP_FIRST || mutex_id > DISP_MUTEX_DDP_LAST)    {        DDPERR("exceed mutex max (0 ~ %d)/n",DISP_MUTEX_DDP_LAST);        return -1;    }    for(i = 0 ; i < module_num ; i++)    {        if(module_mutex_map[module_list[i]].bit != -1)        {            DDPDBG("module %s added to mutex %d/n",ddp_get_module_name(module_list[i]),mutex_id);            value |= (1 << module_mutex_map[module_list[i]].bit);        }        else        {            DDPDBG("module %s not added to mutex %d/n",ddp_get_module_name(module_list[i]),mutex_id);        }    }    DISP_REG_SET(handle,DISP_REG_CONFIG_MUTEX_MOD(mutex_id),value);    DISP_REG_SET(handle,DISP_REG_CONFIG_MUTEX_SOF(mutex_id),mode);    // for primary config thread, save more time for register config    if(gEnableMutexRisingEdge==1 && primary_display_is_video_mode()==1 && mutex_id==0)    {        DISP_REG_SET_FIELD(handle, SOF_FLD_MUTEX0_SOF_TIMING, DISP_REG_CONFIG_MUTEX0_SOF, 1);    }    if(gEnableSWTrigger==1 && primary_display_is_video_mode()==1 && mutex_id==0)    {        // set OVL0/OVL1 to separate mutex        DISP_REG_SET(handle,DISP_REG_CONFIG_MUTEX_MOD(DISP_OVL_SEPARATE_MUTEX_ID),value&((1 << module_mutex_map[DISP_MODULE_OVL0].bit)|(1 << module_mutex_map[DISP_MODULE_OVL1].bit)));        DISP_REG_SET(handle,DISP_REG_CONFIG_MUTEX_SOF(DISP_OVL_SEPARATE_MUTEX_ID), SOF_SINGLE);        // move OVL0/OVL1 out from primary path        DISP_REG_SET(handle,DISP_REG_CONFIG_MUTEX_MOD(mutex_id),value&(~((1 << module_mutex_map[DISP_MODULE_OVL0].bit)|(1 << module_mutex_map[DISP_MODULE_OVL1].bit))));    }        DDPDBG("mutex %d value=0x%x, sof=%s/n",mutex_id, value, ddp_get_mutex_sof_name(mode));    return 0;}
开发者ID:Jlsmily,项目名称:android_kernel_meilan2,代码行数:44,



注:本文中的DISP_REG_SET_FIELD函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ DISSECTOR_ASSERT函数代码示例
C++ DISP_REG_SET函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。