#include #include #include "nouveau_class.h" #include #include #include "screen.h" #include "object.h" #include "fifo.h" void image_pattern_init(void) { struct nouveau_grobj *subchImagePattern = grobj[NvSubImagePattern]; printf("-- Image pattern, init\n"); BEGIN_RING(chan, subchImagePattern, NV04_IMAGE_PATTERN_DMA_NOTIFY, 1); OUT_RING (chan, notifier->handle); BEGIN_RING(chan, subchImagePattern, NV04_IMAGE_PATTERN_MONOCHROME_FORMAT, 3); OUT_RING (chan, NV04_IMAGE_PATTERN_MONOCHROME_FORMAT_CGA6); OUT_RING (chan, NV04_IMAGE_PATTERN_MONOCHROME_SHAPE_8X8); OUT_RING (chan, NV04_IMAGE_PATTERN_PATTERN_SELECT_MONO); BEGIN_RING(chan, subchImagePattern, NV04_IMAGE_PATTERN_COLOR_FORMAT, 1); OUT_RING (chan, (screen_bpp == 32) ? NV04_IMAGE_PATTERN_COLOR_FORMAT_A8R8G8B8 : NV04_IMAGE_PATTERN_COLOR_FORMAT_A16R5G6B5 ); BEGIN_RING(chan, subchImagePattern, NV04_IMAGE_PATTERN_MONOCHROME_COLOR0, 4); OUT_RING (chan, 0x5a6b7d8d); /* color for bit=0 */ OUT_RING (chan, 0xf9e8d7c6); /* color for bit=1 */ OUT_RING (chan, 0x5a5a5a5a); /* pattern */ OUT_RING (chan, 0xaa55aa55); FIRE_RING(chan); }