static int writeback_probe(struct platform_device *pdev) { struct msm_fb_data_type *mfd; struct platform_device *mdp_dev = NULL; struct msm_fb_panel_data *pdata = NULL; int rc = 0; WRITEBACK_MSG_ERR("Inside writeback_probe\n"); mfd = platform_get_drvdata(pdev); if (!mfd) return -ENODEV; if (mfd->key != MFD_KEY) return -EINVAL; mdp_dev = platform_device_alloc("mdp", pdev->id); if (!mdp_dev) return -ENOMEM; /* * link to the latest pdev */ mfd->pdev = mdp_dev; mfd->dest = DISPLAY_LCD; if (platform_device_add_data (mdp_dev, pdev->dev.platform_data, sizeof(struct msm_fb_panel_data))) { pr_err("writeback_probe: " "platform_device_add_data failed!\n"); platform_device_put(mdp_dev); return -ENOMEM; } pdata = (struct msm_fb_panel_data *)mdp_dev->dev.platform_data; pdata->on = writeback_on; pdata->off = writeback_off; pdata->next = pdev; /* * get/set panel specific fb info */ mfd->panel_info = pdata->panel_info; mfd->fb_imgType = MDP_RGB_565; platform_set_drvdata(mdp_dev, mfd); mfd->writeback_sdev.name = "wfd"; rc = switch_dev_register(&mfd->writeback_sdev); if (rc) { pr_err("Failed to setup switch dev for writeback panel"); return rc; } rc = platform_device_add(mdp_dev); if (rc) { WRITEBACK_MSG_ERR("failed to add device"); platform_device_put(mdp_dev); return rc; } return rc; }
static int __init writeback_panel_init(void) { int rc = 0; rc = platform_driver_register(&writeback_panel_driver); if (rc) { WRITEBACK_MSG_ERR("Failed to register platform driver\n"); goto fail_driver_registration; } rc = platform_device_register(&writeback_panel_device); if (rc) { WRITEBACK_MSG_ERR("Failed to register " "writeback_panel_device\n"); goto fail_device_registration; } writeback_suspend.level = 0; writeback_suspend.suspend = mdp4_overlay_writeback_early_suspend; writeback_suspend.resume = mdp4_overlay_writeback_early_resume; register_early_suspend(&writeback_suspend); return rc; fail_device_registration: platform_driver_unregister(&writeback_panel_driver); fail_driver_registration: return rc; }
static int __init writeback_driver_init(void) { int rc = 0; WRITEBACK_MSG_ERR("Inside writeback_driver_init\n"); rc = platform_driver_register(&writeback_driver); return rc; }
static int __init writeback_panel_init(void) { int rc = 0; rc = platform_driver_register(&writeback_panel_driver); if (rc) { WRITEBACK_MSG_ERR("Failed to register platform driver\n"); goto fail_driver_registration; } rc = platform_device_register(&writeback_panel_device); if (rc) { WRITEBACK_MSG_ERR("Failed to register " "writeback_panel_device\n"); goto fail_device_registration; } return rc; fail_device_registration: platform_driver_unregister(&writeback_panel_driver); fail_driver_registration: return rc; }
static int __devinit writeback_panel_probe(struct platform_device *pdev) { int rc = 0; if (pdev->id == 0) return 0; if (!msm_fb_add_device(pdev)) { WRITEBACK_MSG_ERR("Failed to add fd device\n"); rc = -ENOMEM; } return rc; }