summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRussell King <rmk@armlinux.org.uk>2018-06-27 10:33:15 +0100
committerRussell King <rmk@armlinux.org.uk>2018-06-27 19:17:44 +0100
commit23433a192c84b87d4341c93b132de593cd293191 (patch)
tree23e5eb40d6ad252c5b3ee1db3af42ac008dcfdc3
parent8d5454c1ac102c4e0e0ec5f724806d714b00cc40 (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.c14
-rw-r--r--src/common_drm.c23
-rw-r--r--src/common_drm.h1
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);