static int mipi_himax_lcd_probe(struct platform_device *pdev) { #if defined CONFIG_FB_MSM_SELF_REFRESH int ret; #endif if (pdev->id == 0) { mipi_himax_pdata = pdev->dev.platform_data; mutex_init(&cmdlock); #if defined CONFIG_FB_MSM_SELF_REFRESH ret = setup_vsync(pdev, 1); if (ret) { dev_err(&pdev->dev, "mipi_himax_setup_vsync failed\n"); return ret; } wake_lock_init(&himax_idle_wake_lock, WAKE_LOCK_IDLE, "himax_idle_lock"); #ifdef CONFIG_PERFLOCK perf_lock_init(&himax_perf_lock, PERF_LOCK_HIGHEST, "himax"); #endif #endif return 0; } msm_fb_add_device(pdev); return 0; }
static int mddi_samsung_remove(struct platform_device *pdev) { struct panel_info *panel = platform_get_drvdata(pdev); setup_vsync(panel, 0); kfree(panel); return 0; }
static int mddi_samsung_probe(struct platform_device *pdev) { int ret, err = -EINVAL; struct panel_info *panel; struct msm_mddi_client_data *client_data = pdev->dev.platform_data; struct msm_mddi_bridge_platform_data *bridge_data = client_data->private_client_data; B(KERN_DEBUG "%s: enter\n", __func__); panel = kzalloc(sizeof(struct panel_info), GFP_KERNEL); if (!panel) { err = -ENOMEM; goto err_out; } platform_set_drvdata(pdev, panel); ret = setup_vsync(panel, 1); if (ret) { dev_err(&pdev->dev, "mddi_samsung_setup_vsync failed\n"); err = -EIO; goto err_panel; } panel->client_data = client_data; panel->panel_data.suspend = samsung_suspend; panel->panel_data.resume = samsung_resume; panel->panel_data.request_vsync = samsung_request_vsync; panel->panel_data.blank = samsung_blank; panel->panel_data.unblank = samsung_unblank; panel->panel_data.dump_vsync = samsung_dump_vsync; panel->panel_data.fb_data = &bridge_data->fb_data; panel->panel_data.caps = ~MSMFB_CAP_PARTIAL_UPDATES; atomic_set(&panel->depth, 0); panel->pdev.name = "msm_panel"; panel->pdev.id = pdev->id; panel->pdev.resource = client_data->fb_resource; panel->pdev.num_resources = 1; panel->pdev.dev.platform_data = &panel->panel_data; platform_device_register(&panel->pdev); wake_lock_init(&panel->idle_lock, WAKE_LOCK_IDLE, "eid_idle_lock"); /*for debugging vsync issue*/ ebi1_clk = clk_get(NULL, "ebi1_clk"); kthread_run(samsung_wait_vsync, panel, "ksamsung"); return 0; err_panel: kfree(panel); err_out: return err; }
static int mipi_himax_lcd_probe(struct platform_device *pdev) { #if defined CONFIG_FB_MSM_SELF_REFRESH int ret; #endif if (pdev->id == 0) { mipi_himax_pdata = pdev->dev.platform_data; mutex_init(&cmdlock); #if defined CONFIG_FB_MSM_SELF_REFRESH ret = setup_vsync(pdev, 1); if (ret) { dev_err(&pdev->dev, "mipi_himax_setup_vsync failed\n"); return ret; } #endif return 0; } msm_fb_add_device(pdev); return 0; }