summaryrefslogtreecommitdiff
path: root/shared-core/radeon_ms_drm.c
diff options
context:
space:
mode:
authorJerome Glisse <glisse@freedesktop.org>2008-01-15 14:05:25 +0100
committerJohn Doe <glisse@freedesktop.org>2008-01-15 14:17:05 +0100
commitf1f934c8c97d6664fb5e1920a41154c09cc7f293 (patch)
treebfa707e2d430643b4f5ab7a94a7f59508ae60127 /shared-core/radeon_ms_drm.c
parente6fc47129ffe972bbee1c08fd822a8c171f21322 (diff)
radeon_ms: add rom parsing & adapt code
Add rom (only combios for now) parsing and use informations retrieve instead of hardcoded table. Shuffle code around a bit.
Diffstat (limited to 'shared-core/radeon_ms_drm.c')
-rw-r--r--shared-core/radeon_ms_drm.c28
1 files changed, 24 insertions, 4 deletions
diff --git a/shared-core/radeon_ms_drm.c b/shared-core/radeon_ms_drm.c
index 8d0481e1..91ca4a32 100644
--- a/shared-core/radeon_ms_drm.c
+++ b/shared-core/radeon_ms_drm.c
@@ -203,15 +203,35 @@ int radeon_ms_driver_load(struct drm_device *dev, unsigned long flags)
radeon_ms_driver_unload(dev);
return ret;
}
- ret = radeon_ms_outputs_from_properties(dev);
- if (ret != 0) {
+ ret = radeon_ms_outputs_from_rom(dev);
+ if (ret < 0) {
radeon_ms_driver_unload(dev);
return ret;
+ } else if (!ret) {
+ ret = radeon_ms_outputs_from_properties(dev);
+ if (ret < 0) {
+ radeon_ms_driver_unload(dev);
+ return ret;
+ } else if (ret == 0) {
+ DRM_INFO("[radeon_ms] no outputs !\n");
+ }
+ } else {
+ DRM_INFO("[radeon_ms] added %d outputs from rom.\n", ret);
}
- ret = radeon_ms_connectors_from_properties(dev);
- if (ret != 0) {
+ ret = radeon_ms_connectors_from_rom(dev);
+ if (ret < 0) {
radeon_ms_driver_unload(dev);
return ret;
+ } else if (!ret) {
+ ret = radeon_ms_connectors_from_properties(dev);
+ if (ret < 0) {
+ radeon_ms_driver_unload(dev);
+ return ret;
+ } else if (!ret) {
+ DRM_INFO("[radeon_ms] no connectors !\n");
+ }
+ } else {
+ DRM_INFO("[radeon_ms] added %d connectors from rom.\n", ret);
}
radeon_ms_outputs_save(dev, &dev_priv->load_state);
drm_initial_config(dev, false);