diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2008-12-08 23:54:18 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-12-09 11:24:38 -0500 |
commit | f3179748a157c21d44d929fd3779421ebfbeaa93 (patch) | |
tree | 7617077768413c830d80288b510da379ef181811 | |
parent | f7a8db89c1f42e504bb12d2ae399cd96f755a7db (diff) |
radeonfb: Disable new color expand acceleration unless explicitely enabled
This new color expansion acceleration for radeonfb appears to trigger
problems with X on VT switch and suspend/resume on some machines. It
might be a problem in the VT layer or in X, but I haven't quite found
it yet, so in the meantime, this disables the acceleration by default,
reverting to 2.6.27 state. It can be enabled using the "accel_cexp"
module parameter or fbdev argument.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Acked-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | drivers/video/aty/radeon_accel.c | 3 | ||||
-rw-r--r-- | drivers/video/aty/radeon_base.c | 6 | ||||
-rw-r--r-- | drivers/video/aty/radeonfb.h | 2 |
3 files changed, 10 insertions, 1 deletions
diff --git a/drivers/video/aty/radeon_accel.c b/drivers/video/aty/radeon_accel.c index a547e5d4c8bf..8da5e5ab8547 100644 --- a/drivers/video/aty/radeon_accel.c +++ b/drivers/video/aty/radeon_accel.c | |||
@@ -256,7 +256,8 @@ void radeonfb_imageblit(struct fb_info *info, const struct fb_image *image) | |||
256 | return; | 256 | return; |
257 | 257 | ||
258 | /* We only do 1 bpp color expansion for now */ | 258 | /* We only do 1 bpp color expansion for now */ |
259 | if (info->flags & FBINFO_HWACCEL_DISABLED || image->depth != 1) | 259 | if (!accel_cexp || |
260 | (info->flags & FBINFO_HWACCEL_DISABLED) || image->depth != 1) | ||
260 | goto fallback; | 261 | goto fallback; |
261 | 262 | ||
262 | /* Fallback if running out of the screen. We may do clipping | 263 | /* Fallback if running out of the screen. We may do clipping |
diff --git a/drivers/video/aty/radeon_base.c b/drivers/video/aty/radeon_base.c index b3ffe8205d2b..d5b27f9d374d 100644 --- a/drivers/video/aty/radeon_base.c +++ b/drivers/video/aty/radeon_base.c | |||
@@ -282,6 +282,8 @@ static int backlight = 1; | |||
282 | static int backlight = 0; | 282 | static int backlight = 0; |
283 | #endif | 283 | #endif |
284 | 284 | ||
285 | int accel_cexp = 0; | ||
286 | |||
285 | /* | 287 | /* |
286 | * prototypes | 288 | * prototypes |
287 | */ | 289 | */ |
@@ -2520,6 +2522,8 @@ static int __init radeonfb_setup (char *options) | |||
2520 | } else if (!strncmp(this_opt, "ignore_devlist", 14)) { | 2522 | } else if (!strncmp(this_opt, "ignore_devlist", 14)) { |
2521 | ignore_devlist = 1; | 2523 | ignore_devlist = 1; |
2522 | #endif | 2524 | #endif |
2525 | } else if (!strncmp(this_opt, "accel_cexp", 12)) { | ||
2526 | accel_cexp = 1; | ||
2523 | } else | 2527 | } else |
2524 | mode_option = this_opt; | 2528 | mode_option = this_opt; |
2525 | } | 2529 | } |
@@ -2567,6 +2571,8 @@ module_param(monitor_layout, charp, 0); | |||
2567 | MODULE_PARM_DESC(monitor_layout, "Specify monitor mapping (like XFree86)"); | 2571 | MODULE_PARM_DESC(monitor_layout, "Specify monitor mapping (like XFree86)"); |
2568 | module_param(force_measure_pll, bool, 0); | 2572 | module_param(force_measure_pll, bool, 0); |
2569 | MODULE_PARM_DESC(force_measure_pll, "Force measurement of PLL (debug)"); | 2573 | MODULE_PARM_DESC(force_measure_pll, "Force measurement of PLL (debug)"); |
2574 | module_param(accel_cexp, bool, 0); | ||
2575 | MODULE_PARM_DESC(accel_cexp, "Use acceleration engine for color expansion"); | ||
2570 | #ifdef CONFIG_MTRR | 2576 | #ifdef CONFIG_MTRR |
2571 | module_param(nomtrr, bool, 0); | 2577 | module_param(nomtrr, bool, 0); |
2572 | MODULE_PARM_DESC(nomtrr, "bool: disable use of MTRR registers"); | 2578 | MODULE_PARM_DESC(nomtrr, "bool: disable use of MTRR registers"); |
diff --git a/drivers/video/aty/radeonfb.h b/drivers/video/aty/radeonfb.h index ea0b5b47acaf..974ca6d86540 100644 --- a/drivers/video/aty/radeonfb.h +++ b/drivers/video/aty/radeonfb.h | |||
@@ -638,4 +638,6 @@ static inline void radeonfb_bl_init(struct radeonfb_info *rinfo) {} | |||
638 | static inline void radeonfb_bl_exit(struct radeonfb_info *rinfo) {} | 638 | static inline void radeonfb_bl_exit(struct radeonfb_info *rinfo) {} |
639 | #endif | 639 | #endif |
640 | 640 | ||
641 | extern int accel_cexp; | ||
642 | |||
641 | #endif /* __RADEONFB_H__ */ | 643 | #endif /* __RADEONFB_H__ */ |