diff options
-rw-r--r-- | drivers/gpu/drm/omapdrm/omap_connector.c | 29 | ||||
-rw-r--r-- | drivers/gpu/drm/omapdrm/omap_connector.h | 5 | ||||
-rw-r--r-- | drivers/gpu/drm/omapdrm/omap_drv.c | 27 |
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 | ||
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 | /* |
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; | |||
28 | struct omap_dss_device; | 28 | struct omap_dss_device; |
29 | 29 | ||
30 | struct drm_connector *omap_connector_init(struct drm_device *dev, | 30 | struct 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); | ||
33 | struct drm_encoder *omap_connector_attached_encoder( | 34 | struct drm_encoder *omap_connector_attached_encoder( |
34 | struct drm_connector *connector); | 35 | struct drm_connector *connector); |
35 | bool omap_connector_get_hdmi_mode(struct drm_connector *connector); | 36 | bool 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 | ||
132 | static 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 | |||
154 | static void omap_disconnect_pipelines(struct drm_device *ddev) | 132 | static 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 | ||