* [PATCH 4/9] vesafb: Fix return code of vesafb_setcolreg
@ 2006-05-04 12:31 Antonino A. Daplas
0 siblings, 0 replies; only message in thread
From: Antonino A. Daplas @ 2006-05-04 12:31 UTC (permalink / raw)
To: Andrew Morton; +Cc: Linux Fbdev development list
If the hardware palette cannot be accessed, make vesafb_setcolreg return
a nonzero value.
Signed-off-by: Antonino Daplas <adaplas@pol.net>
---
drivers/video/vesafb.c | 16 +++++++++++-----
1 files changed, 11 insertions(+), 5 deletions(-)
diff --git a/drivers/video/vesafb.c b/drivers/video/vesafb.c
index 2fbaa84..eff2ebc 100644
--- a/drivers/video/vesafb.c
+++ b/drivers/video/vesafb.c
@@ -80,10 +80,11 @@ static int vesafb_pan_display(struct fb_
return 0;
}
-static void vesa_setpalette(int regno, unsigned red, unsigned green,
+static int vesa_setpalette(int regno, unsigned red, unsigned green,
unsigned blue)
{
int shift = 16 - depth;
+ int err = -EINVAL;
#ifdef __i386__
struct { u_char blue, green, red, pad; } entry;
@@ -102,7 +103,7 @@ static void vesa_setpalette(int regno, u
"d" (regno), /* EDX */
"D" (&entry), /* EDI */
"S" (&pmi_pal)); /* ESI */
- return;
+ err = 0;
}
#endif
@@ -110,18 +111,23 @@ static void vesa_setpalette(int regno, u
* without protected mode interface and if VGA compatible,
* try VGA registers...
*/
- if (vga_compat) {
+ if (err && vga_compat) {
outb_p(regno, dac_reg);
outb_p(red >> shift, dac_val);
outb_p(green >> shift, dac_val);
outb_p(blue >> shift, dac_val);
+ err = 0;
}
+
+ return err;
}
static int vesafb_setcolreg(unsigned regno, unsigned red, unsigned green,
unsigned blue, unsigned transp,
struct fb_info *info)
{
+ int err = 0;
+
/*
* Set a single color register. The values supplied are
* already rounded down to the hardware's capabilities
@@ -133,7 +139,7 @@ static int vesafb_setcolreg(unsigned reg
return 1;
if (info->var.bits_per_pixel == 8)
- vesa_setpalette(regno,red,green,blue);
+ err = vesa_setpalette(regno,red,green,blue);
else if (regno < 16) {
switch (info->var.bits_per_pixel) {
case 16:
@@ -164,7 +170,7 @@ static int vesafb_setcolreg(unsigned reg
}
}
- return 0;
+ return err;
}
static struct fb_ops vesafb_ops = {
-------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2006-05-04 12:37 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-05-04 12:31 [PATCH 4/9] vesafb: Fix return code of vesafb_setcolreg Antonino A. Daplas
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.