summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars-Peter Clausen <lars@metafoo.de>2009-02-19 20:43:33 +0100
committerLars-Peter Clausen <lars@metafoo.de>2009-02-19 20:43:33 +0100
commit6aa6e5442c6f5b0b08080e4e3a46e923fd7921d9 (patch)
tree1914a14006719ca4d361ab7a39ede843c3c9c139
parent2d88ad6be64d4a5fe6a6b1121759e5b8a3613411 (diff)
Do proper error messages.
-rw-r--r--src/glamo-driver.c30
1 files changed, 22 insertions, 8 deletions
diff --git a/src/glamo-driver.c b/src/glamo-driver.c
index 3295f95..5b9ab94 100644
--- a/src/glamo-driver.c
+++ b/src/glamo-driver.c
@@ -40,6 +40,7 @@
#include <fcntl.h>
#include <unistd.h>
#include <sys/ioctl.h>
+#include <errno.h>
static Bool debug = 0;
@@ -74,7 +75,7 @@ static Bool
GlamoCrtcResize(ScrnInfoPtr scrn, int width, int height);
static Bool
-GlamoInitFramebufferDevice(GlamoPtr pGlamo, const char *fb_device);
+GlamoInitFramebufferDevice(ScrnInfoPtr scrn, const char *fb_device);
/* -------------------------------------------------------------------- */
static const xf86CrtcConfigFuncsRec glamo_crtc_config_funcs = {
@@ -361,7 +362,7 @@ GlamoPreInit(ScrnInfoPtr pScrn, int flags)
/* FIXME: Replace all fbdev functionality with our own code, so we only have
* to open the fb devic only once. */
- if (!GlamoInitFramebufferDevice(pGlamo, fb_device))
+ if (!GlamoInitFramebufferDevice(pScrn, fb_device))
return FALSE;
default_depth = fbdevHWGetDepth(pScrn, &fbbpp);
@@ -593,11 +594,15 @@ GlamoCrtcResize(ScrnInfoPtr pScrn, int width, int height) {
static Bool
-GlamoInitFramebufferDevice(GlamoPtr pGlamo, const char *fb_device) {
+GlamoInitFramebufferDevice(ScrnInfoPtr pScrn, const char *fb_device) {
+ GlamoPtr pGlamo = GlamoPTR(pScrn);
+
if (fb_device) {
pGlamo->fb_fd = open(fb_device, O_RDWR, 0);
if (pGlamo->fb_fd == -1) {
- ErrorF("Failed to open framebuffer device\n");
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ "Failed to open framebuffer device \"%s\": %s\n",
+ fb_device, strerror(errno));
goto fail2;
}
} else {
@@ -605,13 +610,18 @@ GlamoInitFramebufferDevice(GlamoPtr pGlamo, const char *fb_device) {
if (fb_device != NULL) {
pGlamo->fb_fd = open(fb_device, O_RDWR, 0);
if (pGlamo->fb_fd != -1)
- fb_device = NULL;
+ xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+ "Failed to open framebuffer device \"%s\": %s\n",
+ fb_device, strerror(errno));
+ fb_device = NULL;
}
if (fb_device == NULL) {
fb_device = "/dev/fb0";
pGlamo->fb_fd = open(fb_device, O_RDWR, 0);
if (pGlamo->fb_fd == -1) {
- ErrorF("Failed to open framebuffer device\n");
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ "Failed to open framebuffer device \"%s\": %s",
+ fb_device, strerror(errno));
goto fail2;
}
}
@@ -619,12 +629,16 @@ GlamoInitFramebufferDevice(GlamoPtr pGlamo, const char *fb_device) {
/* retrive current setting */
if (ioctl(pGlamo->fb_fd, FBIOGET_FSCREENINFO, (void*)(&pGlamo->fb_fix)) == -1) {
- ErrorF("FBIOGET_FSCREENINFO\n");
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ "Framebuffer ioctl FBIOGET_FSCREENINFO failed: %s",
+ strerror(errno));
goto fail1;
}
if (ioctl(pGlamo->fb_fd, FBIOGET_VSCREENINFO, (void*)(&pGlamo->fb_var)) == -1) {
- ErrorF("FBIOGET_VSCREENINFO\n");
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ "Framebuffer ioctl FBIOGET_FSCREENINFO failed: %s",
+ strerror(errno));
goto fail1;
}
return TRUE;