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; }
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); }