following patch solve my problem. according to nouveau_class.h: #define NV50_2D_SIFC_BITMAP_LINE_PACK_MODE 0x00000810#define NV50_2D_SIFC_BITMAP_LINE_PACK_MODE_PACKED 0x00000000 #define NV50_2D_SIFC_BITMAP_LINE_PACK_MODE_ALIGN_BYTE 0x00000001 #define NV50_2D_SIFC_BITMAP_LINE_PACK_MODE_ALIGN_WORD 0x00000002 NV50_2D_SIFC_BITMAP_LINE_PACK_MODE should be byte aligned instead packed. diff --git a/drivers/gpu/drm/nouveau/nv50_fbcon.c b/drivers/gpu/drm/nouveau/nv50_fbcon.c index e4f279e..b82315c 100644 --- a/drivers/gpu/drm/nouveau/nv50_fbcon.c +++ b/drivers/gpu/drm/nouveau/nv50_fbcon.c @@ -233,7 +233,7 @@ nv50_fbcon_accel_init(struct fb_info *info) ??????? BEGIN_RING(chan, NvSub2D, 0x0808, 3); ??????? OUT_RING(chan, 0); ??????? OUT_RING(chan, 0); -?????? OUT_RING(chan, 0); +?????? OUT_RING(chan, 1); ??????? BEGIN_RING(chan, NvSub2D, 0x081c, 1); ??????? OUT_RING(chan, 1); ??????? BEGIN_RING(chan, NvSub2D, 0x0840, 4); ___________________________________________________________ ????????????????? http://card.mail.cn.yahoo.com/