Example #1
0
s32 bsp_disp_get_timming(u32 screen_id, disp_video_timing * tt)
{
	//struct disp_hdmi* hdmi;

	memset(tt, 0, sizeof(disp_video_timing));
	if(DISP_OUTPUT_TYPE_LCD == bsp_disp_get_output_type(screen_id)) {
		struct disp_lcd *lcd;

		lcd = disp_get_lcd(screen_id);
		if(!lcd) {
			DE_WRN("get lcd%d failed\n", screen_id);
			return DIS_FAIL;
		}
		if(lcd->get_timing)
			return lcd->get_timing(lcd, tt);
	}
#if 0
	else if(DISP_OUTPUT_TYPE_HDMI == bsp_disp_get_output_type(screen_id)) {
		//FIXME?
		hdmi = disp_get_hdmi(screen_id);
		if(!hdmi) {
			DE_WRN("get hdmi%d failed!\n", screen_id);
			return DIS_FAIL;
		}

	}
#endif

	return 0;
}
Example #2
0
/***********************************************************
 *
 * hdmi interface
 *
 ***********************************************************/
s32 bsp_disp_hdmi_enable(u32 screen_id)
{
	struct disp_hdmi* hdmi;
	struct disp_manager *mgr;
	hdmi = disp_get_hdmi(screen_id);
	mgr = disp_get_layer_manager(screen_id);

	if(!hdmi || !mgr) {
		DE_WRN("get hdm%dor mgr%d failed!\n", screen_id, screen_id);
		return DIS_FAIL;
	    }

	if(mgr->is_enabled && mgr->is_enabled(mgr)) {
		DE_WRN("manager %d is already enable\n", screen_id);
		return DIS_FAIL;
	}

	if(mgr->enable)
		mgr->enable(mgr);
	if(mgr->set_output_type)
		mgr->set_output_type(mgr, DISP_OUTPUT_TYPE_HDMI);

	if(hdmi->enable) {
	    return hdmi->enable(hdmi);
	    }

	return DIS_FAIL;
}
Example #3
0
static s32 disp_hdmi_event_proc(void *parg)
#endif
{
	u32 disp = (u32)parg;
	struct disp_device *hdmi = disp_get_hdmi(disp);
	struct disp_manager *mgr = NULL;

	if(disp_al_device_query_irq(disp)) {
		int cur_line = disp_al_device_get_cur_line(disp);
		int start_delay = disp_al_device_get_start_delay(disp);

		if(NULL == hdmi)
			return DISP_IRQ_RETURN;
		mgr = hdmi->manager;
		if(NULL == mgr)
			return DISP_IRQ_RETURN;

		if(cur_line <= (start_delay-4)) {
			sync_event_proc(mgr->disp);
		} else {
			/* skip a frame */
		}
	}

	return DISP_IRQ_RETURN;
}
Example #4
0
s32 bsp_disp_hdmi_get_hpd_status(u32 screen_id)
{
	struct disp_hdmi *hdmi;
	hdmi = disp_get_hdmi(screen_id);
	if (!hdmi) {
	    DE_WRN("get hdmi%d failed!\n", screen_id);
	    return DIS_FAIL;
	}
	if (hdmi->hdmi_get_HPD_status)
		return hdmi->hdmi_get_HPD_status(hdmi);
	return DIS_FAIL;
}
Example #5
0
s32 bsp_disp_hdmi_get_edid(u32 screen_id)
{
	struct disp_hdmi *hdmi;
	hdmi = disp_get_hdmi(screen_id);
	if(!hdmi) {
	    DE_INF("get hdmi%d failed!\n", screen_id);
	    return DIS_FAIL;
	}

	if(hdmi->get_edid)
	    return hdmi->get_edid(hdmi);

	return 0;
}
Example #6
0
s32 bsp_disp_hdmi_check_support_mode(u32 screen_id,  u8 mode)
{
	struct disp_hdmi *hdmi;
	hdmi = disp_get_hdmi(screen_id);
	if(!hdmi) {
	    DE_WRN("get hdmi%d failed!\n", screen_id);
	    return DIS_FAIL;
	    }

	if(hdmi->check_support_mode)
	    return hdmi->check_support_mode(hdmi, mode);

	return DIS_FAIL;
}
Example #7
0
s32 bsp_disp_hdmi_get_mode(u32 screen_id)
{
	struct disp_hdmi *hdmi;
	hdmi = disp_get_hdmi(screen_id);
	if(!hdmi) {
	    DE_WRN("get hdmi%d failed!\n", screen_id);
	    return DIS_FAIL;
	    }

	if(hdmi->get_mode)
		return hdmi->get_mode(hdmi);

	return DIS_FAIL;
}
Example #8
0
s32 bsp_disp_hdmi_get_vendor_id(u32 screen_id, __u8 *id)
{
	struct disp_hdmi *hdmi;
	hdmi = disp_get_hdmi(screen_id);
	if(!hdmi) {
		DE_WRN("get hdmi%d failed!\n", screen_id);
		return DIS_FAIL;
	}
	if(hdmi->get_vendor_id)
	{
		__inf("bsp_disp_hdmi_get_vendor_id");
		return hdmi->get_vendor_id(hdmi, id);
	}

	return DIS_FAIL;
}
Example #9
0
s32 bsp_disp_hdmi_set_mode(u32 screen_id,  disp_tv_mode mode)
{
	struct disp_hdmi *hdmi;
	hdmi = disp_get_hdmi(screen_id);
	if(!hdmi) {
	    DE_WRN("get hdmi%d failed!\n", screen_id);
	    return DIS_FAIL;
	    }

	DE_INF("hdmi %d mode <-- %d\n", screen_id, mode);

	if(hdmi->set_mode)
		return hdmi->set_mode(hdmi, mode);

	return DIS_FAIL;
}
Example #10
0
s32 bsp_disp_hdmi_resume(u32 screen_id)
{
	struct disp_hdmi* hdmi;
	hdmi = disp_get_hdmi(screen_id);

	if(!(bsp_disp_feat_get_supported_output_types(screen_id) & DISP_OUTPUT_TYPE_HDMI))
		return 0;

	if(!hdmi) {
		DE_WRN("get hdmi%d failed!\n", screen_id);
		return DIS_FAIL;
	}

	if(hdmi->resume) {
	  return hdmi->resume(hdmi);
	}

	return DIS_FAIL;
}
Example #11
0
s32 bsp_disp_set_hdmi_func(u32 screen_id, disp_hdmi_func * func)
{
	struct disp_hdmi* hdmi;
	s32 ret = -1;
	hdmi = disp_get_hdmi(screen_id);
	if(!hdmi) {
	    DE_INF("get hdmi%d failed!\n", screen_id);
	    return DIS_FAIL;
	    }

	gdisp.hdmi_registered = 1;
	if(hdmi->set_func)
	    ret = hdmi->set_func(hdmi, func);

	if(gdisp.init_para.start_process) {
		DE_INF("gdisp.init_para.start_process\n");
		gdisp.init_para.start_process();
	}
	return ret;
}
Example #12
0
	if(DISP_OUTPUT_TYPE_LCD == bsp_disp_get_output_type(screen_id)) {
		struct disp_lcd *lcd;

		lcd = disp_get_lcd(screen_id);
		if(!lcd) {
			DE_WRN("get lcd%d failed\n", screen_id);
			return DIS_FAIL;
		}
		if(lcd->get_timing)
			return lcd->get_timing(lcd, tt);
	}
#if 0
	struct disp_hdmi* hdmi;
	else if(DISP_OUTPUT_TYPE_HDMI == bsp_disp_get_output_type(screen_id)) {
		//todo?
		hdmi = disp_get_hdmi(screen_id);
		if(!hdmi) {
			DE_WRN("get hdmi%d failed!\n", screen_id);
			return DIS_FAIL;
		}

	}
#endif
	return 0;
}

s32 bsp_disp_get_panel_info(u32 screen_id, disp_panel_para *info)
{
	struct disp_lcd* lcd;
	lcd = disp_get_lcd(screen_id);
	if(!lcd)