diff options
author | Russell King <rmk@armlinux.org.uk> | 2018-06-27 10:33:15 +0100 |
---|---|---|
committer | Russell King <rmk@armlinux.org.uk> | 2018-06-27 19:17:44 +0100 |
commit | 23433a192c84b87d4341c93b132de593cd293191 (patch) | |
tree | 23e5eb40d6ad252c5b3ee1db3af42ac008dcfdc3 | |
parent | 8d5454c1ac102c4e0e0ec5f724806d714b00cc40 (diff) |
src: move bpp, depth, rgb weight and visual init into common_drm.c
Move the initialisation of bpp, depth, rgb weight and visuals into
common_drm.c - apart from the depth 24 flags, none of this depends on
armada.
Signed-off-by: Russell King <rmk@armlinux.org.uk>
-rw-r--r-- | src/armada_drm.c | 14 | ||||
-rw-r--r-- | src/common_drm.c | 23 | ||||
-rw-r--r-- | src/common_drm.h | 1 |
3 files changed, 25 insertions, 13 deletions
diff --git a/src/armada_drm.c b/src/armada_drm.c index 6abdaf3..7a4bc85 100644 --- a/src/armada_drm.c +++ b/src/armada_drm.c @@ -634,7 +634,6 @@ static void armada_drm_FreeScreen(FREE_SCREEN_ARGS_DECL) static Bool armada_drm_PreInit(ScrnInfoPtr pScrn, int flags) { struct common_drm_device *drm_dev; - rgb defaultWeight = { 0, 0, 0 }; int flags24; if (pScrn->numEntities != 1) @@ -653,14 +652,10 @@ static Bool armada_drm_PreInit(ScrnInfoPtr pScrn, int flags) /* Limit the maximum framebuffer size to 16MB */ pScrn->videoRam = 16 * 1048576; - pScrn->monitor = pScrn->confScreen->monitor; - pScrn->progClock = TRUE; - pScrn->rgbBits = 8; pScrn->chipset = "fbdev"; - pScrn->displayWidth = 640; flags24 = Support24bppFb | Support32bppFb | SupportConvert24to32; - if (!xf86SetDepthBpp(pScrn, 0, 0, 0, flags24)) + if (!common_drm_PreInit(pScrn, flags24)) goto fail; switch (pScrn->depth) { @@ -676,13 +671,6 @@ static Bool armada_drm_PreInit(ScrnInfoPtr pScrn, int flags) goto fail; } - xf86PrintDepthBpp(pScrn); - - if (!xf86SetWeight(pScrn, defaultWeight, defaultWeight)) - goto fail; - if (!xf86SetDefaultVisual(pScrn, -1)) - goto fail; - if (pScrn->depth > 8 && pScrn->defaultVisual != TrueColor) { xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Requested default visual (%s) is not supported at depth %d\n", diff --git a/src/common_drm.c b/src/common_drm.c index 8d847e5..8e98e8b 100644 --- a/src/common_drm.c +++ b/src/common_drm.c @@ -1104,6 +1104,29 @@ int __common_drm_get_cap(ScrnInfoPtr pScrn, uint64_t cap, uint64_t *val, return err; } +Bool common_drm_PreInit(ScrnInfoPtr pScrn, int flags24) +{ + rgb defaultWeight = { 0, 0, 0 }; + + pScrn->monitor = pScrn->confScreen->monitor; + pScrn->progClock = TRUE; + pScrn->rgbBits = 8; + pScrn->displayWidth = 640; + + if (!xf86SetDepthBpp(pScrn, 0, 0, 0, flags24)) + return FALSE; + + xf86PrintDepthBpp(pScrn); + + if (!xf86SetWeight(pScrn, defaultWeight, defaultWeight)) + return FALSE; + + if (!xf86SetDefaultVisual(pScrn, -1)) + return FALSE; + + return TRUE; +} + Bool common_drm_PreScreenInit(ScreenPtr pScreen) { ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); diff --git a/src/common_drm.h b/src/common_drm.h index ef144e0..b138daf 100644 --- a/src/common_drm.h +++ b/src/common_drm.h @@ -125,6 +125,7 @@ int __common_drm_get_cap(ScrnInfoPtr pScrn, uint64_t cap, uint64_t *val, const char *name); #define common_drm_get_cap(pScrn, cap, val) \ __common_drm_get_cap(pScrn, cap, val, #cap) +Bool common_drm_PreInit(ScrnInfoPtr pScrn, int flags24); Bool common_drm_PreScreenInit(ScreenPtr pScreen); Bool common_drm_PostScreenInit(ScreenPtr pScreen); Bool common_drm_SwitchMode(SWITCH_MODE_ARGS_DECL); |