stifb: fix crash A1439A CRX (Rattler) graphics card
Helge Deller
maintainerPATCH 1/1 stifb: fix crash A1439A CRX (Rattler) graphics card
Fix kernel crash when stifb driver is used with a A1439A CRX (Rattler) graphics card. (Reference: http://thread.gmane.org/gmane.linux.ports.hppa/1834)
Signed-off-by Helge Deller <[email protected]>
stifb.c | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-)
drivers/video/stifb.c +15 -7
@@ -505,16 +505,24 @@ ngleSetupAttrPlanes(struct stifb_info *fb, int BufferNumber)static void rattlerSetupPlanes (struct stifb_info *fb) { +int saved_id, y; + +/* Write RAMDAC pixel read mask register so all overlay +* planes are display-enabled. (CRX24 uses Bt462 pixel +* read mask register for overlay planes, not image planes). +*/ CRX24_SETUP_RAMDAC (fb); -/* replacement for: SETUP_FB(fb, CRX24_OVERLAY_PLANES); */ -WRITE_WORD (0x83000300 , fb,REG_14 ); -SETUP_HW (fb); -WRITE_BYTE (1 , fb, REG_16b1); +/* change fb->id temporarily to fool SETUP_FB() */ + saved_id = fb->id; + fb->id =CRX24_OVERLAY_PLANES ; +SETUP_FB (fb); + fb->id = saved_id; + +for (y =0 ; y < fb->info.var.yres; ++y) +memset (fb->info.screen_base + y * fb->info.fix.line_length, +0xff , fb->info.var.xres * fb->info.var.bits_per_pixel/8 ); -fb_memset ((void *)fb->info.fix.smem_start,0xff , - fb->info.var.yres*fb->info.fix.line_length); -CRX24_SET_OVLY_MASK (fb);SETUP_FB (fb); }
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/