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>

authored by Benjamin Herrenschmidt and committed by Linus Torvalds f3179748 f7a8db89

+10 -1
+2 -1
drivers/video/aty/radeon_accel.c
··· 256 256 return; 257 257 258 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 261 goto fallback; 261 262 262 263 /* Fallback if running out of the screen. We may do clipping
+6
drivers/video/aty/radeon_base.c
··· 282 282 static int backlight = 0; 283 283 #endif 284 284 285 + int accel_cexp = 0; 286 + 285 287 /* 286 288 * prototypes 287 289 */ ··· 2522 2520 } else if (!strncmp(this_opt, "ignore_devlist", 14)) { 2523 2521 ignore_devlist = 1; 2524 2522 #endif 2523 + } else if (!strncmp(this_opt, "accel_cexp", 12)) { 2524 + accel_cexp = 1; 2525 2525 } else 2526 2526 mode_option = this_opt; 2527 2527 } ··· 2571 2567 MODULE_PARM_DESC(monitor_layout, "Specify monitor mapping (like XFree86)"); 2572 2568 module_param(force_measure_pll, bool, 0); 2573 2569 MODULE_PARM_DESC(force_measure_pll, "Force measurement of PLL (debug)"); 2570 + module_param(accel_cexp, bool, 0); 2571 + MODULE_PARM_DESC(accel_cexp, "Use acceleration engine for color expansion"); 2574 2572 #ifdef CONFIG_MTRR 2575 2573 module_param(nomtrr, bool, 0); 2576 2574 MODULE_PARM_DESC(nomtrr, "bool: disable use of MTRR registers");
+2
drivers/video/aty/radeonfb.h
··· 638 638 static inline void radeonfb_bl_exit(struct radeonfb_info *rinfo) {} 639 639 #endif 640 640 641 + extern int accel_cexp; 642 + 641 643 #endif /* __RADEONFB_H__ */