diff options
author | Alex Deucher <alexander.deucher@amd.com> | 2014-02-21 08:33:21 -0500 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2014-02-21 10:09:37 -0500 |
commit | cadb6b493942a84bfeb298751dce0dee39257a06 (patch) | |
tree | 995549b822b9bffcfe2ca8d56139ba6a21773e41 | |
parent | 7cd972a85705341dd8306eefc558ed9e5def05d7 (diff) |
radeon: don't install colormap handling if there are no crtcs
Fixes a crash on cards with 0 crtcs.
Discussion:
http://lists.freedesktop.org/archives/dri-devel/2014-February/054186.html
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r-- | src/drmmode_display.c | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/src/drmmode_display.c b/src/drmmode_display.c index 76b79d8c..641e231c 100644 --- a/src/drmmode_display.c +++ b/src/drmmode_display.c @@ -1939,19 +1939,23 @@ static void drmmode_load_palette(ScrnInfoPtr pScrn, int numColors, Bool drmmode_setup_colormap(ScreenPtr pScreen, ScrnInfoPtr pScrn) { + xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(pScrn); + xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG, "Initializing kms color map\n"); - if (!miCreateDefColormap(pScreen)) - return FALSE; - /* all radeons support 10 bit CLUTs */ - if (!xf86HandleColormaps(pScreen, 256, 10, - drmmode_load_palette, NULL, - CMAP_PALETTED_TRUECOLOR + if (xf86_config->num_crtc) { + if (!miCreateDefColormap(pScreen)) + return FALSE; + /* all radeons support 10 bit CLUTs */ + if (!xf86HandleColormaps(pScreen, 256, 10, + drmmode_load_palette, NULL, + CMAP_PALETTED_TRUECOLOR #if 0 /* This option messes up text mode! (eich@suse.de) */ - | CMAP_LOAD_EVEN_IF_OFFSCREEN + | CMAP_LOAD_EVEN_IF_OFFSCREEN #endif - | CMAP_RELOAD_ON_MODE_SWITCH)) - return FALSE; + | CMAP_RELOAD_ON_MODE_SWITCH)) + return FALSE; + } return TRUE; } |