Lines Matching refs:msm_dsi

16 struct drm_encoder *msm_dsi_get_encoder(struct msm_dsi *msm_dsi)  in msm_dsi_get_encoder()  argument
18 if (!msm_dsi || !msm_dsi->panel) in msm_dsi_get_encoder()
21 return (msm_dsi->panel_flags & MIPI_DSI_MODE_VIDEO) ? in msm_dsi_get_encoder()
22 msm_dsi->encoders[MSM_DSI_VIDEO_ENCODER_ID] : in msm_dsi_get_encoder()
23 msm_dsi->encoders[MSM_DSI_CMD_ENCODER_ID]; in msm_dsi_get_encoder()
26 static void dsi_destroy(struct msm_dsi *msm_dsi) in dsi_destroy() argument
28 if (!msm_dsi) in dsi_destroy()
31 msm_dsi_manager_unregister(msm_dsi); in dsi_destroy()
32 if (msm_dsi->host) { in dsi_destroy()
33 msm_dsi_host_destroy(msm_dsi->host); in dsi_destroy()
34 msm_dsi->host = NULL; in dsi_destroy()
37 platform_set_drvdata(msm_dsi->pdev, NULL); in dsi_destroy()
40 static struct msm_dsi *dsi_init(struct platform_device *pdev) in dsi_init()
42 struct msm_dsi *msm_dsi = NULL; in dsi_init() local
51 msm_dsi = devm_kzalloc(&pdev->dev, sizeof(*msm_dsi), GFP_KERNEL); in dsi_init()
52 if (!msm_dsi) { in dsi_init()
56 DBG("dsi probed=%p", msm_dsi); in dsi_init()
58 msm_dsi->pdev = pdev; in dsi_init()
59 platform_set_drvdata(pdev, msm_dsi); in dsi_init()
62 ret = msm_dsi_host_init(msm_dsi); in dsi_init()
67 ret = msm_dsi_manager_register(msm_dsi); in dsi_init()
71 return msm_dsi; in dsi_init()
74 if (msm_dsi) in dsi_init()
75 dsi_destroy(msm_dsi); in dsi_init()
85 struct msm_dsi *msm_dsi; in dsi_bind() local
88 msm_dsi = dsi_init(pdev); in dsi_bind()
89 if (IS_ERR(msm_dsi)) in dsi_bind()
90 return PTR_ERR(msm_dsi); in dsi_bind()
92 priv->dsi[msm_dsi->id] = msm_dsi; in dsi_bind()
102 struct msm_dsi *msm_dsi = dev_get_drvdata(dev); in dsi_unbind() local
103 int id = msm_dsi->id; in dsi_unbind()
106 dsi_destroy(msm_dsi); in dsi_unbind()
154 int msm_dsi_modeset_init(struct msm_dsi *msm_dsi, struct drm_device *dev, in msm_dsi_modeset_init() argument
164 msm_dsi->dev = dev; in msm_dsi_modeset_init()
166 ret = msm_dsi_host_modeset_init(msm_dsi->host, dev); in msm_dsi_modeset_init()
172 msm_dsi->bridge = msm_dsi_manager_bridge_init(msm_dsi->id); in msm_dsi_modeset_init()
173 if (IS_ERR(msm_dsi->bridge)) { in msm_dsi_modeset_init()
174 ret = PTR_ERR(msm_dsi->bridge); in msm_dsi_modeset_init()
176 msm_dsi->bridge = NULL; in msm_dsi_modeset_init()
181 encoders[i]->bridge = msm_dsi->bridge; in msm_dsi_modeset_init()
182 msm_dsi->encoders[i] = encoders[i]; in msm_dsi_modeset_init()
185 msm_dsi->connector = msm_dsi_manager_connector_init(msm_dsi->id); in msm_dsi_modeset_init()
186 if (IS_ERR(msm_dsi->connector)) { in msm_dsi_modeset_init()
187 ret = PTR_ERR(msm_dsi->connector); in msm_dsi_modeset_init()
189 msm_dsi->connector = NULL; in msm_dsi_modeset_init()
193 priv->bridges[priv->num_bridges++] = msm_dsi->bridge; in msm_dsi_modeset_init()
194 priv->connectors[priv->num_connectors++] = msm_dsi->connector; in msm_dsi_modeset_init()
198 if (msm_dsi) { in msm_dsi_modeset_init()
200 if (msm_dsi->bridge) { in msm_dsi_modeset_init()
201 msm_dsi_manager_bridge_destroy(msm_dsi->bridge); in msm_dsi_modeset_init()
202 msm_dsi->bridge = NULL; in msm_dsi_modeset_init()
204 if (msm_dsi->connector) { in msm_dsi_modeset_init()
205 msm_dsi->connector->funcs->destroy(msm_dsi->connector); in msm_dsi_modeset_init()
206 msm_dsi->connector = NULL; in msm_dsi_modeset_init()