static int mapphone_panel_enable(struct omap_dss_device *dssdev)
{
	struct mapphone_data *map_data = (struct mapphone_data *) dssdev->data;
	int ret;
	void *handle;

	DBG("mapphone_panel_enable\n");
	if (dssdev->platform_enable) {
		ret = dssdev->platform_enable(dssdev);
		if (ret)
			return ret;
	}

	handle = map_data->panel_handle;
	if (omap_panel_fod_enabled(handle)) {
		atomic_set(&map_data->state, PANEL_OFF);
	}
	omap_panel_fod_dss_state(handle, 1);
	omap_panel_fod_panel_state(handle, 1);

	switch (dssdev->panel.panel_id) {
	case MOT_DISP_MIPI_480_854_CM:
	case MOT_DISP_370_MIPI_480_854_CM:
		ret = dsi_mipi_cm_480_854_panel_enable(dssdev);
		break;
	case MOT_DISP_430_MIPI_480_854_CM:
		ret = dsi_mipi_430_cm_480_854_panel_enable(dssdev);
		break;
	case MOT_DISP_310_1_MIPI_320_480_CM:
		ret = dsi_mipi_310_1_cm_320_480_panel_enable(dssdev);
		break;
	case MOT_DISP_310_2_MIPI_320_480_CM:
		ret = dsi_mipi_310_2_cm_320_480_panel_enable(dssdev);
		break;
	case MOT_DISP_248_MIPI_320_240_VM:
		ret = dsi_mipi_248_vm_320_240_panel_enable(dssdev) ;
		break;
	case MOT_DISP_280_MIPI_320_240_VM:
		ret = dsi_mipi_280_vm_320_240_panel_enable(dssdev) ;
		break;
	default:
		printk(KERN_ERR "unsupport panel =0x%lx \n",
			dssdev->panel.panel_id);
		goto error;
	}

	mapphone_panel_set_man_te_trigger(dssdev);

	if (ret)
		goto error;

	return 0;
error:
	return -EINVAL;
}
Example #2
0
static void mapphone_panel_disable(struct omap_dss_device *dssdev)
{
	void *handle;

	DBG("mapphone_panel_disable\n");

	handle = ((struct mapphone_data *)dssdev->data)->panel_handle;
	omap_panel_fod_dss_state(handle, 0);
	if (omap_panel_fod_enabled(handle)) {
		DBG("Freezing the last frame on the display\n");
		return;
	}

	omap_panel_fod_panel_state(handle, 0);

	mapphone_panel_disable_local(dssdev);
}