diff options
author | Jerome Glisse <glisse@freedesktop.org> | 2008-01-15 14:05:25 +0100 |
---|---|---|
committer | John Doe <glisse@freedesktop.org> | 2008-01-15 14:17:05 +0100 |
commit | f1f934c8c97d6664fb5e1920a41154c09cc7f293 (patch) | |
tree | bfa707e2d430643b4f5ab7a94a7f59508ae60127 /shared-core/radeon_ms_drm.c | |
parent | e6fc47129ffe972bbee1c08fd822a8c171f21322 (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.c | 28 |
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); |