DSI_STATUS DSI_PowerOff(void) { if (s_isDsiPowerOn) { BOOL ret = TRUE; _WaitForEngineNotBusy(); _BackupDSIRegisters(); #if 1 // FIXME //ret = hwDisableClock(MT65XX_PDN_MM_DSI, "DSI"); ret = disable_clock(MT65XX_PDN_MM_DSI, "DSI"); ASSERT(!ret); #endif s_isDsiPowerOn = FALSE; } return DSI_STATUS_OK; }
DSI_STATUS DSI_PowerOff(void) { if (s_isDsiPowerOn) { BOOL ret = TRUE; //_WaitForEngineNotBusy(); _BackupDSIRegisters(); #if 0 // FIXME ret = hwDisableClock(MT65XX_PDN_MM_DSI, "DSI"); ASSERT(ret); #else MASKREG32(0xC2080018, 0x00000020, 0x00000020); printf("[DISP] - uboot - DSI_PowerOff. 0x%8x,0x%8x,0x%8x\n", INREG32(0xC2080000), INREG32(0xC2080004), INREG32(0xC2080008)); #endif s_isDsiPowerOn = FALSE; } return DSI_STATUS_OK; }
DSI_STATUS DSI_Init(BOOL isDsiPoweredOn) { DSI_STATUS ret = DSI_STATUS_OK; memset(&_dsiContext, 0, sizeof(_dsiContext)); if (isDsiPoweredOn) { _BackupDSIRegisters(); } else { _ResetBackupedDSIRegisterValues(); } ret = DSI_PowerOn(); OUTREG32(&DSI_REG->DSI_MEM_CONTI, (DSI_WMEM_CONTI<<16)|(DSI_RMEM_CONTI)); ASSERT(ret == DSI_STATUS_OK); mipitx_con0=DSI_PHY_REG->MIPITX_CON0; mipitx_con1=DSI_PHY_REG->MIPITX_CON1; mipitx_con3=DSI_PHY_REG->MIPITX_CON3; mipitx_con6=DSI_PHY_REG->MIPITX_CON6; mipitx_con8=DSI_PHY_REG->MIPITX_CON8; mipitx_con9=DSI_PHY_REG->MIPITX_CON9; #if ENABLE_DSI_INTERRUPT init_waitqueue_head(&_dsi_wait_queue); init_waitqueue_head(&_dsi_dcs_read_wait_queue); if (request_irq(MT6575_DSI_IRQ_ID, _DSI_InterruptHandler, IRQF_TRIGGER_LOW, MTKFB_DRIVER, NULL) < 0) { DISP_LOG_PRINT(ANDROID_LOG_ERROR, "DSI", "fail to request DSI irq\n"); return DSI_STATUS_ERROR; } //mt65xx_irq_unmask(MT6575_DSI_IRQ_ID); DSI_REG->DSI_INTEN.CMD_DONE=1; DSI_REG->DSI_INTEN.RD_RDY=1; #endif return DSI_STATUS_OK; }