aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/msm/dsi/dsi.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/msm/dsi/dsi.c')
-rw-r--r--drivers/gpu/drm/msm/dsi/dsi.c18
1 files changed, 6 insertions, 12 deletions
diff --git a/drivers/gpu/drm/msm/dsi/dsi.c b/drivers/gpu/drm/msm/dsi/dsi.c
index ec572f8389ed..311c1c1e7d6c 100644
--- a/drivers/gpu/drm/msm/dsi/dsi.c
+++ b/drivers/gpu/drm/msm/dsi/dsi.c
@@ -18,9 +18,7 @@ struct drm_encoder *msm_dsi_get_encoder(struct msm_dsi *msm_dsi)
18 if (!msm_dsi || !msm_dsi_device_connected(msm_dsi)) 18 if (!msm_dsi || !msm_dsi_device_connected(msm_dsi))
19 return NULL; 19 return NULL;
20 20
21 return (msm_dsi->device_flags & MIPI_DSI_MODE_VIDEO) ? 21 return msm_dsi->encoder;
22 msm_dsi->encoders[MSM_DSI_VIDEO_ENCODER_ID] :
23 msm_dsi->encoders[MSM_DSI_CMD_ENCODER_ID];
24} 22}
25 23
26static int dsi_get_phy(struct msm_dsi *msm_dsi) 24static int dsi_get_phy(struct msm_dsi *msm_dsi)
@@ -187,14 +185,13 @@ void __exit msm_dsi_unregister(void)
187} 185}
188 186
189int msm_dsi_modeset_init(struct msm_dsi *msm_dsi, struct drm_device *dev, 187int msm_dsi_modeset_init(struct msm_dsi *msm_dsi, struct drm_device *dev,
190 struct drm_encoder *encoders[MSM_DSI_ENCODER_NUM]) 188 struct drm_encoder *encoder)
191{ 189{
192 struct msm_drm_private *priv = dev->dev_private; 190 struct msm_drm_private *priv = dev->dev_private;
193 struct drm_bridge *ext_bridge; 191 struct drm_bridge *ext_bridge;
194 int ret, i; 192 int ret;
195 193
196 if (WARN_ON(!encoders[MSM_DSI_VIDEO_ENCODER_ID] || 194 if (WARN_ON(!encoder))
197 !encoders[MSM_DSI_CMD_ENCODER_ID]))
198 return -EINVAL; 195 return -EINVAL;
199 196
200 msm_dsi->dev = dev; 197 msm_dsi->dev = dev;
@@ -205,6 +202,8 @@ int msm_dsi_modeset_init(struct msm_dsi *msm_dsi, struct drm_device *dev,
205 goto fail; 202 goto fail;
206 } 203 }
207 204
205 msm_dsi->encoder = encoder;
206
208 msm_dsi->bridge = msm_dsi_manager_bridge_init(msm_dsi->id); 207 msm_dsi->bridge = msm_dsi_manager_bridge_init(msm_dsi->id);
209 if (IS_ERR(msm_dsi->bridge)) { 208 if (IS_ERR(msm_dsi->bridge)) {
210 ret = PTR_ERR(msm_dsi->bridge); 209 ret = PTR_ERR(msm_dsi->bridge);
@@ -213,11 +212,6 @@ int msm_dsi_modeset_init(struct msm_dsi *msm_dsi, struct drm_device *dev,
213 goto fail; 212 goto fail;
214 } 213 }
215 214
216 for (i = 0; i < MSM_DSI_ENCODER_NUM; i++) {
217 encoders[i]->bridge = msm_dsi->bridge;
218 msm_dsi->encoders[i] = encoders[i];
219 }
220
221 /* 215 /*
222 * check if the dsi encoder output is connected to a panel or an 216 * check if the dsi encoder output is connected to a panel or an
223 * external bridge. We create a connector only if we're connected to a 217 * external bridge. We create a connector only if we're connected to a