313 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			313 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
| /*
 | |
|     panel device open/close Common control.
 | |
| 
 | |
|     @file       dispdev_panlcomn.c
 | |
|     @ingroup
 | |
|     @note       Nothing
 | |
| 
 | |
|     Copyright   Novatek Microelectronics Corp. 2011.  All rights reserved.
 | |
| */
 | |
| #include "dispdev_panlcomn.h"
 | |
| 
 | |
| 
 | |
| /*
 | |
|     Set Display open
 | |
| 
 | |
|     Open the specified display engine with the specified engine parameters.
 | |
| */
 | |
| ER dispdev_set_display(DISPDEV_IOCTRL p_disp_dev_control, T_LCD_INF lcd_inf, T_LCD_PARAM *p_mode, PINMUX_FUNC_ID pin_func_id)
 | |
| {
 | |
| 	UINT32                  pinmux_value;
 | |
| 	T_IDE_PARAM             *p_ide    = &p_mode->ide;
 | |
| 	T_PANEL_PARAM           *p_panel  = &p_mode->panel;
 | |
| 	//UINT32                  ui_src_clk_freq;
 | |
| 	DISPDEV_IOCTRL_PARAM    dev_io_ctrl;
 | |
| 	BOOL                    b_ycc8bit;
 | |
| 
 | |
| 	//DBG_IND("dispdev_set_display START 1 [0x%08x] 0x%08x\r\n", p_ide->pinmux_select_lcd, *(UINT32 *)0xF0010008);
 | |
| 
 | |
| 	dispdev_platform_set_pinmux(pin_func_id, p_ide->pinmux_select_lcd);
 | |
| 
 | |
| 	//DBG_IND("dispdev_set_display START 2 [0x%08x] 0x%08x\r\n", p_ide->pinmux_select_lcd, *(UINT32 *)0xF0010008);
 | |
| 
 | |
| 	p_disp_dev_control(DISPDEV_IOCTRL_GET_SRCCLK, &dev_io_ctrl);
 | |
| 	/*if( dev_io_ctrl.SEL.GET_SRCCLK.src_clk == DISPCTRL_SRCCLK_MI_ENGINE)
 | |
| 	{
 | |
| 	    // This path is for MI engine DRAM direct path display object
 | |
| 	    dev_io_ctrl.SEL.SET_DISPSIZE.ui_buf_width     = p_panel->ui_buffer_width;
 | |
| 	    dev_io_ctrl.SEL.SET_DISPSIZE.ui_buf_height    = p_panel->ui_buffer_height;
 | |
| 	    dev_io_ctrl.SEL.SET_DISPSIZE.ui_win_width     = p_panel->ui_window_width;
 | |
| 	    dev_io_ctrl.SEL.SET_DISPSIZE.ui_win_height    = p_panel->ui_window_height;
 | |
| 	    p_disp_dev_control(DISPDEV_IOCTRL_SET_DISPSIZE, &dev_io_ctrl);
 | |
| 	    return E_OK;
 | |
| 	}*/
 | |
| 
 | |
| 	// Make sure ide Disable
 | |
| 	p_disp_dev_control(DISPDEV_IOCTRL_GET_ENABLE, &dev_io_ctrl);
 | |
| 	if (dev_io_ctrl.SEL.GET_ENABLE.b_en == TRUE) {
 | |
| 		UINT32 logo_en=0;
 | |
| 		p_disp_dev_control(DISPDEV_IOCTRL_GET_LOGOMODE, &dev_io_ctrl);
 | |
| 		logo_en = (int) dev_io_ctrl.SEL.GET_LOGOMODE.b_en_logo;
 | |
| 		if(logo_en==0)
 | |
| 		{
 | |
| 			dev_io_ctrl.SEL.SET_ENABLE.b_en = FALSE;
 | |
| 			p_disp_dev_control(DISPDEV_IOCTRL_SET_ENABLE, &dev_io_ctrl);
 | |
| 			p_disp_dev_control(DISPDEV_IOCTRL_WAIT_FRAMEEND, NULL);
 | |
| 		}
 | |
| 		else
 | |
| 			p_disp_dev_control(DISPDEV_IOCTRL_KEEP_LOGO_SETTING, &dev_io_ctrl);
 | |
| 	}
 | |
| 
 | |
| 	if (lcd_inf == T_LCD_INF_SERIAL_8BITS) {
 | |
| 		switch (p_panel->lcd_mode) {
 | |
| 		case PINMUX_LCDMODE_RGB_SERIAL:
 | |
| 			dev_io_ctrl.SEL.SET_DEVICE.disp_dev_type = DISPDEV_TYPE_RGB_SERIAL;
 | |
| 			break;
 | |
| 		case PINMUX_LCDMODE_YUV640:
 | |
| 		case PINMUX_LCDMODE_YUV720:
 | |
| 			dev_io_ctrl.SEL.SET_DEVICE.disp_dev_type = DISPDEV_TYPE_YUV;
 | |
| 			break;
 | |
| 		case PINMUX_LCDMODE_RGBD360:
 | |
| 		case PINMUX_LCDMODE_RGBD320:
 | |
| 			dev_io_ctrl.SEL.SET_DEVICE.disp_dev_type = DISPDEV_TYPE_RGBD;
 | |
| 			break;
 | |
| 		case PINMUX_LCDMODE_RGB_THROUGH:
 | |
| 			dev_io_ctrl.SEL.SET_DEVICE.disp_dev_type = DISPDEV_TYPE_RGB_THROUGH;
 | |
| 			break;
 | |
| 		case PINMUX_LCDMODE_CCIR601:
 | |
| 			dev_io_ctrl.SEL.SET_DEVICE.disp_dev_type = DISPDEV_TYPE_CCIR601_8BIT;
 | |
| 			break;
 | |
| 		case PINMUX_LCDMODE_CCIR656:
 | |
| 			dev_io_ctrl.SEL.SET_DEVICE.disp_dev_type = DISPDEV_TYPE_CCIR656_8BIT;
 | |
| 			break;
 | |
| 		default:
 | |
| 			DBG_ERR("Invalid lcd_mode %d lcd_inf %d\r\n", (int)p_panel->lcd_mode, (int)lcd_inf);
 | |
| 			return E_NOSPT;
 | |
| 		}
 | |
| 		p_disp_dev_control(DISPDEV_IOCTRL_SET_DEVICE, &dev_io_ctrl);
 | |
| 
 | |
| 	} else if (lcd_inf == T_LCD_INF_MI) {
 | |
| 		if ((p_panel->lcd_mode >= PINMUX_LCDMODE_MI_FMT0) && (p_panel->lcd_mode <= PINMUX_LCDMODE_MI_SERIAL_SEP)) {
 | |
| 			dev_io_ctrl.SEL.SET_DEVICE.disp_dev_type = DISPDEV_TYPE_MI;
 | |
| 			p_disp_dev_control(DISPDEV_IOCTRL_SET_DEVICE, &dev_io_ctrl);
 | |
| 		} else {
 | |
| 			DBG_ERR("Invalid lcd_mode %d lcd_inf %d\r\n", (int)p_panel->lcd_mode, (int)lcd_inf);
 | |
| 		}
 | |
| 	} else if (lcd_inf == T_LCD_INF_MIPI_DSI) {
 | |
| 		dev_io_ctrl.SEL.SET_DEVICE.disp_dev_type = DISPDEV_TYPE_EMBD_MIPIDSI;
 | |
| 		p_disp_dev_control(DISPDEV_IOCTRL_SET_DEVICE, &dev_io_ctrl);
 | |
| 	} else if (lcd_inf == T_LCD_INF_PARALLEL_16BITS) {
 | |
| 		switch (p_panel->lcd_mode) {
 | |
| 		case PINMUX_LCDMODE_RGB_PARALL:
 | |
| 			dev_io_ctrl.SEL.SET_DEVICE.disp_dev_type = DISPDEV_TYPE_RGB_PARALL;
 | |
| 			break;
 | |
| 		case PINMUX_LCDMODE_RGB_PARALL666:
 | |
| 			dev_io_ctrl.SEL.SET_DEVICE.disp_dev_type = DISPDEV_TYPE_RGB_PARALL;
 | |
| 			break;
 | |
| 		case PINMUX_LCDMODE_RGB_PARALL565:
 | |
| 			dev_io_ctrl.SEL.SET_DEVICE.disp_dev_type = DISPDEV_TYPE_RGB_PARALL;
 | |
| 			break;
 | |
| 		case PINMUX_LCDMODE_RGB_PARALL_DELTA:
 | |
| 			dev_io_ctrl.SEL.SET_DEVICE.disp_dev_type = DISPDEV_TYPE_RGBDELTA_16BIT;
 | |
| 			break;
 | |
| 		case PINMUX_LCDMODE_CCIR601:
 | |
| 			dev_io_ctrl.SEL.SET_DEVICE.disp_dev_type = DISPDEV_TYPE_CCIR601_16BIT;
 | |
| 			break;
 | |
| 		case PINMUX_LCDMODE_CCIR656:
 | |
| 			dev_io_ctrl.SEL.SET_DEVICE.disp_dev_type = DISPDEV_TYPE_CCIR656_16BIT;
 | |
| 			break;
 | |
| 		case PINMUX_LCDMODE_RGB_THROUGH:
 | |
| 			dev_io_ctrl.SEL.SET_DEVICE.disp_dev_type = DISPDEV_TYPE_RGB_THROUGH;
 | |
| 			break;
 | |
| 		default:
 | |
| 			DBG_ERR("Invalid lcd_mode %d lcd_inf %d\r\n", (int)p_panel->lcd_mode, (int)lcd_inf);
 | |
| 			return E_NOSPT;
 | |
| 		}
 | |
| 		p_disp_dev_control(DISPDEV_IOCTRL_SET_DEVICE, &dev_io_ctrl);
 | |
| 
 | |
| 	} else {
 | |
| 		DBG_ERR("lcd_inf Has not implemented!(%d)\r\n", (int)lcd_inf);
 | |
| 		return E_NOSPT;
 | |
| 	}
 | |
| 
 | |
| 	DBG_IND("YCbCrFormat %d pinmux_select_lcd = 0x%08x\r\n", (int)p_panel->b_ycbcr_format, (unsigned int)p_ide->pinmux_select_lcd);
 | |
| 
 | |
| 	if (p_panel->b_ycbcr_format) {
 | |
| 		pinmux_value = p_ide->pinmux_select_lcd & ~(PINMUX_LCD_SEL_FEATURE_MSK);
 | |
| 		if ((pinmux_value == PINMUX_LCD_SEL_CCIR601_16BITS) || (pinmux_value == PINMUX_LCD_SEL_CCIR656_16BITS)) {
 | |
| 			b_ycc8bit = FALSE;
 | |
| 		} else {
 | |
| 			b_ycc8bit = TRUE;
 | |
| 		}
 | |
| 		// set ICST
 | |
| 		dev_io_ctrl.SEL.SET_ICST_EN.b_en = FALSE;
 | |
| 		dev_io_ctrl.SEL.SET_ICST_EN.select = CST_RGB2YCBCR;
 | |
| 		p_disp_dev_control(DISPDEV_IOCTRL_SET_ICST_EN, &dev_io_ctrl);
 | |
| 	} else {
 | |
| 		b_ycc8bit = FALSE;
 | |
| 		// set ICST
 | |
| 		dev_io_ctrl.SEL.SET_ICST_EN.b_en = TRUE;
 | |
| 		dev_io_ctrl.SEL.SET_ICST_EN.select = CST_YCBCR2RGB;
 | |
| 		p_disp_dev_control(DISPDEV_IOCTRL_SET_ICST_EN, &dev_io_ctrl);
 | |
| 	}
 | |
| 
 | |
| 	// set clock rate
 | |
| 	DBG_IND("set clock rate = %d Hz\r\n", (int)p_panel->fd_clk);
 | |
| 	dev_io_ctrl.SEL.SET_CLK_FREQ.ui_freq = p_panel->fd_clk;
 | |
| 	dev_io_ctrl.SEL.SET_CLK_FREQ.b_ycc8bit = b_ycc8bit;
 | |
| 	DBG_IND("dev_io_ctrl.SEL.SET_CLK_FREQ.b_ycc8bit = %d\r\n", (int)dev_io_ctrl.SEL.SET_CLK_FREQ.b_ycc8bit);
 | |
| 	p_disp_dev_control(DISPDEV_IOCTRL_SET_CLK_FREQ, &dev_io_ctrl);
 | |
| 
 | |
| 	// enable clock
 | |
| 	dev_io_ctrl.SEL.SET_CLK_EN.b_clk_en = TRUE;
 | |
| 	p_disp_dev_control(DISPDEV_IOCTRL_SET_CLK_EN, &dev_io_ctrl);
 | |
| 
 | |
| 
 | |
| 	dev_io_ctrl.SEL.SET_SRGB_OUTORDER.pix_order     = p_ide->pdir;
 | |
| 	dev_io_ctrl.SEL.SET_SRGB_OUTORDER.odd_start     = p_ide->odd;
 | |
| 	dev_io_ctrl.SEL.SET_SRGB_OUTORDER.even_start    = p_ide->even;
 | |
| 	p_disp_dev_control(DISPDEV_IOCTRL_SET_SRGB_OUTORDER, &dev_io_ctrl);
 | |
| 
 | |
| 	dev_io_ctrl.SEL.SET_DITHER_EN.b_en      = p_ide->dithering[0];
 | |
| 	dev_io_ctrl.SEL.SET_DITHER_EN.b_free_run = p_ide->dithering[1];
 | |
| 	dev_io_ctrl.SEL.SET_DITHER_EN.r_bits    = p_ide->dither_bits[0];
 | |
| 	dev_io_ctrl.SEL.SET_DITHER_EN.g_bits    = p_ide->dither_bits[1];
 | |
| 	dev_io_ctrl.SEL.SET_DITHER_EN.b_bits    = p_ide->dither_bits[2];
 | |
| 	p_disp_dev_control(DISPDEV_IOCTRL_SET_DITHER_EN, &dev_io_ctrl);
 | |
| 
 | |
| 
 | |
| 	dev_io_ctrl.SEL.SET_SYNC_INVERT.b_hs_inv  = p_ide->hsinv;
 | |
| 	dev_io_ctrl.SEL.SET_SYNC_INVERT.b_vs_inv  = p_ide->vsinv;
 | |
| 	dev_io_ctrl.SEL.SET_SYNC_INVERT.b_clk_inv = p_ide->clkinv;
 | |
| 	p_disp_dev_control(DISPDEV_IOCTRL_SET_SYNC_INVERT, &dev_io_ctrl);
 | |
| 
 | |
| 
 | |
| 	dev_io_ctrl.SEL.SET_VLD_INVERT.b_hvld_inv    = p_ide->hvldinv;
 | |
| 	dev_io_ctrl.SEL.SET_VLD_INVERT.b_vvld_inv    = p_ide->vvldinv;
 | |
| 	dev_io_ctrl.SEL.SET_VLD_INVERT.b_field_inv   = p_ide->fieldinv;
 | |
| 	dev_io_ctrl.SEL.SET_VLD_INVERT.b_de_inv      = FALSE;
 | |
| 	p_disp_dev_control(DISPDEV_IOCTRL_SET_VLD_INVERT, &dev_io_ctrl);
 | |
| 
 | |
| 
 | |
| 	if (p_panel->b_ycbcr_format) {
 | |
| 		if ((p_ide->pinmux_select_lcd == PINMUX_LCD_SEL_CCIR601_16BITS) || (p_ide->pinmux_select_lcd == PINMUX_LCD_SEL_CCIR656_16BITS)) {
 | |
| 			dev_io_ctrl.SEL.SET_WINDOW_H_TIMING.ui_hsync        = p_panel->ui_hsync_sync_width;
 | |
| 			dev_io_ctrl.SEL.SET_WINDOW_H_TIMING.ui_htotal       = p_panel->ui_hsync_total_period - 1;
 | |
| 			dev_io_ctrl.SEL.SET_WINDOW_H_TIMING.ui_hvld_start    = p_panel->ui_hsync_back_porch;
 | |
| 			dev_io_ctrl.SEL.SET_WINDOW_H_TIMING.ui_hvld_end      = (p_panel->ui_hsync_active_period + p_panel->ui_hsync_back_porch) - 1;
 | |
| 			p_disp_dev_control(DISPDEV_IOCTRL_SET_WINDOW_H_TIMING, &dev_io_ctrl);
 | |
| 		} else {
 | |
| 			dev_io_ctrl.SEL.SET_WINDOW_H_TIMING.ui_hsync        = p_panel->ui_hsync_sync_width;
 | |
| 			dev_io_ctrl.SEL.SET_WINDOW_H_TIMING.ui_htotal       = (p_panel->ui_hsync_total_period >> 1) - 1;
 | |
| 			dev_io_ctrl.SEL.SET_WINDOW_H_TIMING.ui_hvld_start    = p_panel->ui_hsync_back_porch >> 1;
 | |
| 			dev_io_ctrl.SEL.SET_WINDOW_H_TIMING.ui_hvld_end      = ((p_panel->ui_hsync_active_period + p_panel->ui_hsync_back_porch) >> 1) - 1;
 | |
| 			p_disp_dev_control(DISPDEV_IOCTRL_SET_WINDOW_H_TIMING, &dev_io_ctrl);
 | |
| 		}
 | |
| 
 | |
| 		dev_io_ctrl.SEL.SET_CLK1_2.b_clk1_2         = FALSE;
 | |
| 		p_disp_dev_control(DISPDEV_IOCTRL_SET_CLK1_2, &dev_io_ctrl);
 | |
| 	} else {
 | |
| 		dev_io_ctrl.SEL.SET_WINDOW_H_TIMING.ui_hsync        = p_panel->ui_hsync_sync_width;
 | |
| 		dev_io_ctrl.SEL.SET_WINDOW_H_TIMING.ui_htotal       = p_panel->ui_hsync_total_period - 1;
 | |
| 		dev_io_ctrl.SEL.SET_WINDOW_H_TIMING.ui_hvld_start    = p_panel->ui_hsync_back_porch;
 | |
| 		dev_io_ctrl.SEL.SET_WINDOW_H_TIMING.ui_hvld_end      = (p_panel->ui_hsync_active_period + p_panel->ui_hsync_back_porch) - 1;
 | |
| 		p_disp_dev_control(DISPDEV_IOCTRL_SET_WINDOW_H_TIMING, &dev_io_ctrl);
 | |
| 
 | |
| 		if ((p_ide->pinmux_select_lcd == PINMUX_LCD_SEL_RGB_16BITS)) {
 | |
| 			dev_io_ctrl.SEL.SET_CLK1_2.b_clk1_2         = p_ide->clk1_2;
 | |
| 			p_disp_dev_control(DISPDEV_IOCTRL_SET_CLK1_2, &dev_io_ctrl);
 | |
| 		} else {
 | |
| 			dev_io_ctrl.SEL.SET_CLK1_2.b_clk1_2         = FALSE;
 | |
| 			p_disp_dev_control(DISPDEV_IOCTRL_SET_CLK1_2, &dev_io_ctrl);
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 
 | |
| 	dev_io_ctrl.SEL.SET_WINDOW_V_TIMING.ui_vsync        = p_panel->ui_vsync_sync_width;
 | |
| 	dev_io_ctrl.SEL.SET_WINDOW_V_TIMING.ui_vtotal       = p_panel->ui_vsync_total_period - 1;
 | |
| 	dev_io_ctrl.SEL.SET_WINDOW_V_TIMING.ui_vvld_odd_start = p_panel->ui_vsync_back_porch_odd;
 | |
| 	dev_io_ctrl.SEL.SET_WINDOW_V_TIMING.ui_vvld_odd_end   = (p_panel->ui_vsync_active_period + p_panel->ui_vsync_back_porch_odd) - 1;
 | |
| 	dev_io_ctrl.SEL.SET_WINDOW_V_TIMING.ui_vvld_even_start = p_panel->ui_vsync_back_porch_even;
 | |
| 	dev_io_ctrl.SEL.SET_WINDOW_V_TIMING.ui_vvld_even_end  = (p_panel->ui_vsync_active_period + p_panel->ui_vsync_back_porch_even) - 1;
 | |
| 	p_disp_dev_control(DISPDEV_IOCTRL_SET_WINDOW_V_TIMING, &dev_io_ctrl);
 | |
| 
 | |
| 
 | |
| 	dev_io_ctrl.SEL.SET_WINDOW_OUT_TYPE.b_interlaced = p_ide->interlace;
 | |
| 	dev_io_ctrl.SEL.SET_WINDOW_OUT_TYPE.b_field_odd_st = TRUE;
 | |
| 	p_disp_dev_control(DISPDEV_IOCTRL_SET_WINDOW_OUT_TYPE, &dev_io_ctrl);
 | |
| 
 | |
| 
 | |
| 	dev_io_ctrl.SEL.SET_CSB_EN.b_en             = TRUE;
 | |
| 	dev_io_ctrl.SEL.SET_CSB_EN.ui_contrast      = p_ide->ctrst;
 | |
| 	dev_io_ctrl.SEL.SET_CSB_EN.ui_saturation    = p_ide->cmults;
 | |
| 	dev_io_ctrl.SEL.SET_CSB_EN.ui_brightness    = p_ide->brt;
 | |
| 	p_disp_dev_control(DISPDEV_IOCTRL_SET_CSB_EN, &dev_io_ctrl);
 | |
| 
 | |
| 
 | |
| 	dev_io_ctrl.SEL.SET_YC_EXCHG.b_cbcr_exchg    = p_ide->cex;
 | |
| 	dev_io_ctrl.SEL.SET_YC_EXCHG.b_yc_exchg      = p_ide->yc_ex;
 | |
| 	p_disp_dev_control(DISPDEV_IOCTRL_SET_YC_EXCHG, &dev_io_ctrl);
 | |
| 
 | |
| 	dev_io_ctrl.SEL.SET_CLAMP.ui_clamp          = p_ide->clamp;
 | |
| 	p_disp_dev_control(DISPDEV_IOCTRL_SET_CLAMP, &dev_io_ctrl);
 | |
| 
 | |
| 	//ide_set_tv_power_down(p_ide->tv_powerdown);
 | |
| 
 | |
| 	dev_io_ctrl.SEL.SET_DISPSIZE.ui_buf_width     = p_panel->ui_buffer_width;
 | |
| 	dev_io_ctrl.SEL.SET_DISPSIZE.ui_buf_height    = p_panel->ui_buffer_height;
 | |
| 	dev_io_ctrl.SEL.SET_DISPSIZE.ui_win_width     = p_panel->ui_window_width;
 | |
| 	dev_io_ctrl.SEL.SET_DISPSIZE.ui_win_height    = p_panel->ui_window_height;
 | |
| 	p_disp_dev_control(DISPDEV_IOCTRL_SET_DISPSIZE, &dev_io_ctrl);
 | |
| 
 | |
| 	dev_io_ctrl.SEL.SET_ENABLE.b_en = TRUE;
 | |
| 	p_disp_dev_control(DISPDEV_IOCTRL_SET_ENABLE, &dev_io_ctrl);
 | |
| 	dispanl_debug(("dispdev_set_display Config Done\r\n"));
 | |
| #if 0 //for speed up ,wait in kdrv_vddo_trigger 
 | |
| 	//#NT#2012/03/22#Steven Wang -begin
 | |
| 	//#NT#Temp add for DSI
 | |
| 	if (lcd_inf != T_LCD_INF_MIPI_DSI) {
 | |
| 		p_disp_dev_control(DISPDEV_IOCTRL_WAIT_FRAMEEND, NULL);
 | |
| 	}
 | |
| 	//#NT#2012/03/22#Temp add for DSI
 | |
| #endif
 | |
| 	dispanl_debug(("dispdev_set_display ide GO\r\n"));
 | |
| 	return E_OK;
 | |
| }
 | |
| #if defined __KERNEL__
 | |
| EXPORT_SYMBOL(dispdev_set_display);
 | |
| #endif
 | |
| #if 0
 | |
| /*
 | |
|     Display close
 | |
| 
 | |
|     Close the specified display engine.
 | |
| */
 | |
| ER dispdev_close_display(DISPDEV_IOCTRL p_disp_dev_control)
 | |
| {
 | |
| 	DISPDEV_IOCTRL_PARAM    dev_io_ctrl;
 | |
| 
 | |
| 	dispanl_debug(("DispDevClose\r\n"));
 | |
| 
 | |
| 	dev_io_ctrl.SEL.SET_ENABLE.b_en = FALSE;
 | |
| 	p_disp_dev_control(DISPDEV_IOCTRL_SET_ENABLE, &dev_io_ctrl);
 | |
| 	p_disp_dev_control(DISPDEV_IOCTRL_WAIT_FRAMEEND, NULL);
 | |
| 
 | |
| 	/*
 | |
| 	// Disable ide
 | |
| 	if(p_devif->disp_id == DISP_1)
 | |
| 	{
 | |
| 	    p_devif->wait_frm_end();
 | |
| 	    pll_disableClock(IDE1_CLK);
 | |
| 	    pll_disableClock(IDE2_CLK);
 | |
| 	}
 | |
| 	else if (p_devif->disp_id == DISP_2)
 | |
| 	{
 | |
| 	    dispdev_platform_delay_ms(40);
 | |
| 	}
 | |
| 	*/
 | |
| 
 | |
| 	return E_OK;
 | |
| }
 | |
| #endif
 | |
| 
 | 
