aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/omapdrm/omap_connector.c29
-rw-r--r--drivers/gpu/drm/omapdrm/omap_connector.h5
-rw-r--r--drivers/gpu/drm/omapdrm/omap_drv.c27
3 files changed, 31 insertions, 30 deletions
diff --git a/drivers/gpu/drm/omapdrm/omap_connector.c b/drivers/gpu/drm/omapdrm/omap_connector.c
index 92fea0085a9c..06c48a64b745 100644
--- a/drivers/gpu/drm/omapdrm/omap_connector.c
+++ b/drivers/gpu/drm/omapdrm/omap_connector.c
@@ -325,10 +325,33 @@ static const struct drm_connector_helper_funcs omap_connector_helper_funcs = {
325 .mode_valid = omap_connector_mode_valid, 325 .mode_valid = omap_connector_mode_valid,
326}; 326};
327 327
328static int omap_connector_get_type(struct omap_dss_device *display)
329{
330 switch (display->type) {
331 case OMAP_DISPLAY_TYPE_HDMI:
332 return DRM_MODE_CONNECTOR_HDMIA;
333 case OMAP_DISPLAY_TYPE_DVI:
334 return DRM_MODE_CONNECTOR_DVID;
335 case OMAP_DISPLAY_TYPE_DSI:
336 return DRM_MODE_CONNECTOR_DSI;
337 case OMAP_DISPLAY_TYPE_DPI:
338 case OMAP_DISPLAY_TYPE_DBI:
339 return DRM_MODE_CONNECTOR_DPI;
340 case OMAP_DISPLAY_TYPE_VENC:
341 /* TODO: This could also be composite */
342 return DRM_MODE_CONNECTOR_SVIDEO;
343 case OMAP_DISPLAY_TYPE_SDI:
344 return DRM_MODE_CONNECTOR_LVDS;
345 default:
346 return DRM_MODE_CONNECTOR_Unknown;
347 }
348}
349
328/* initialize connector */ 350/* initialize connector */
329struct drm_connector *omap_connector_init(struct drm_device *dev, 351struct drm_connector *omap_connector_init(struct drm_device *dev,
330 int connector_type, struct omap_dss_device *output, 352 struct omap_dss_device *output,
331 struct omap_dss_device *display, struct drm_encoder *encoder) 353 struct omap_dss_device *display,
354 struct drm_encoder *encoder)
332{ 355{
333 struct drm_connector *connector = NULL; 356 struct drm_connector *connector = NULL;
334 struct omap_connector *omap_connector; 357 struct omap_connector *omap_connector;
@@ -348,7 +371,7 @@ struct drm_connector *omap_connector_init(struct drm_device *dev,
348 connector->doublescan_allowed = 0; 371 connector->doublescan_allowed = 0;
349 372
350 drm_connector_init(dev, connector, &omap_connector_funcs, 373 drm_connector_init(dev, connector, &omap_connector_funcs,
351 connector_type); 374 omap_connector_get_type(display));
352 drm_connector_helper_add(connector, &omap_connector_helper_funcs); 375 drm_connector_helper_add(connector, &omap_connector_helper_funcs);
353 376
354 /* 377 /*
diff --git a/drivers/gpu/drm/omapdrm/omap_connector.h b/drivers/gpu/drm/omapdrm/omap_connector.h
index 42ff0a106179..854099801649 100644
--- a/drivers/gpu/drm/omapdrm/omap_connector.h
+++ b/drivers/gpu/drm/omapdrm/omap_connector.h
@@ -28,8 +28,9 @@ struct drm_encoder;
28struct omap_dss_device; 28struct omap_dss_device;
29 29
30struct drm_connector *omap_connector_init(struct drm_device *dev, 30struct drm_connector *omap_connector_init(struct drm_device *dev,
31 int connector_type, struct omap_dss_device *output, 31 struct omap_dss_device *output,
32 struct omap_dss_device *display, struct drm_encoder *encoder); 32 struct omap_dss_device *display,
33 struct drm_encoder *encoder);
33struct drm_encoder *omap_connector_attached_encoder( 34struct drm_encoder *omap_connector_attached_encoder(
34 struct drm_connector *connector); 35 struct drm_connector *connector);
35bool omap_connector_get_hdmi_mode(struct drm_connector *connector); 36bool omap_connector_get_hdmi_mode(struct drm_connector *connector);
diff --git a/drivers/gpu/drm/omapdrm/omap_drv.c b/drivers/gpu/drm/omapdrm/omap_drv.c
index 03771f818eaa..5f98506ac2c5 100644
--- a/drivers/gpu/drm/omapdrm/omap_drv.c
+++ b/drivers/gpu/drm/omapdrm/omap_drv.c
@@ -129,28 +129,6 @@ static const struct drm_mode_config_funcs omap_mode_config_funcs = {
129 .atomic_commit = drm_atomic_helper_commit, 129 .atomic_commit = drm_atomic_helper_commit,
130}; 130};
131 131
132static int get_connector_type(struct omap_dss_device *display)
133{
134 switch (display->type) {
135 case OMAP_DISPLAY_TYPE_HDMI:
136 return DRM_MODE_CONNECTOR_HDMIA;
137 case OMAP_DISPLAY_TYPE_DVI:
138 return DRM_MODE_CONNECTOR_DVID;
139 case OMAP_DISPLAY_TYPE_DSI:
140 return DRM_MODE_CONNECTOR_DSI;
141 case OMAP_DISPLAY_TYPE_DPI:
142 case OMAP_DISPLAY_TYPE_DBI:
143 return DRM_MODE_CONNECTOR_DPI;
144 case OMAP_DISPLAY_TYPE_VENC:
145 /* TODO: This could also be composite */
146 return DRM_MODE_CONNECTOR_SVIDEO;
147 case OMAP_DISPLAY_TYPE_SDI:
148 return DRM_MODE_CONNECTOR_LVDS;
149 default:
150 return DRM_MODE_CONNECTOR_Unknown;
151 }
152}
153
154static void omap_disconnect_pipelines(struct drm_device *ddev) 132static void omap_disconnect_pipelines(struct drm_device *ddev)
155{ 133{
156 struct omap_drm_private *priv = ddev->dev_private; 134 struct omap_drm_private *priv = ddev->dev_private;
@@ -322,9 +300,8 @@ static int omap_modeset_init(struct drm_device *dev)
322 if (!encoder) 300 if (!encoder)
323 return -ENOMEM; 301 return -ENOMEM;
324 302
325 connector = omap_connector_init(dev, 303 connector = omap_connector_init(dev, pipe->output, display,
326 get_connector_type(display), pipe->output, 304 encoder);
327 display, encoder);
328 if (!connector) 305 if (!connector)
329 return -ENOMEM; 306 return -ENOMEM;
330 307