diff options
Diffstat (limited to 'drivers/gpu/drm/msm/dsi/dsi.c')
-rw-r--r-- | drivers/gpu/drm/msm/dsi/dsi.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/gpu/drm/msm/dsi/dsi.c b/drivers/gpu/drm/msm/dsi/dsi.c index ad50b80225f5..beb26dfca276 100644 --- a/drivers/gpu/drm/msm/dsi/dsi.c +++ b/drivers/gpu/drm/msm/dsi/dsi.c @@ -29,6 +29,12 @@ static void dsi_destroy(struct msm_dsi *msm_dsi) return; msm_dsi_manager_unregister(msm_dsi); + + if (msm_dsi->phy) { + msm_dsi_phy_destroy(msm_dsi->phy); + msm_dsi->phy = NULL; + } + if (msm_dsi->host) { msm_dsi_host_destroy(msm_dsi->host); msm_dsi->host = NULL; @@ -63,6 +69,14 @@ static struct msm_dsi *dsi_init(struct platform_device *pdev) if (ret) goto fail; + /* Init dsi PHY */ + msm_dsi->phy = msm_dsi_phy_init(pdev, msm_dsi->phy_type, msm_dsi->id); + if (!msm_dsi->phy) { + ret = -ENXIO; + pr_err("%s: phy init failed\n", __func__); + goto fail; + } + /* Register to dsi manager */ ret = msm_dsi_manager_register(msm_dsi); if (ret) |