diff options
Diffstat (limited to 'drivers/gpu/drm/omapdrm/omap_connector.c')
-rw-r--r-- | drivers/gpu/drm/omapdrm/omap_connector.c | 29 |
1 files changed, 26 insertions, 3 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 | ||
328 | static 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 */ |
329 | struct drm_connector *omap_connector_init(struct drm_device *dev, | 351 | struct 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 | /* |