diff -Nurd kernel-source-2.4.27-iyonix/drivers/video/riva/fbdev.c kernel-source-2.4.27-iyonix.build/drivers/video/riva/fbdev.c --- kernel-source-2.4.27-iyonix/drivers/video/riva/fbdev.c 2005-07-09 22:08:48.000000000 +0200 +++ kernel-source-2.4.27-iyonix.build/drivers/video/riva/fbdev.c 2005-10-24 22:01:18.000000000 +0200 @@ -1332,13 +1332,23 @@ if (p->var.green.length == 5) { /* 0rrrrrgg gggbbbbb */ rivainfo->con_cmap.cfb16[regno] = +#ifdef CONFIG_ARCH_IYONIX + ((blue & 0xf800) >> 1) | + ((green & 0xf800) >> 6) | ((red & 0xf800) >> 11); +#else ((red & 0xf800) >> 1) | ((green & 0xf800) >> 6) | ((blue & 0xf800) >> 11); +#endif } else { /* rrrrrggg gggbbbbb */ rivainfo->con_cmap.cfb16[regno] = +#ifdef CONFIG_ARCH_IYONIX + ((blue & 0xf800) >> 0) | + ((green & 0xf800) >> 5) | ((red & 0xf800) >> 11); +#else ((red & 0xf800) >> 0) | ((green & 0xf800) >> 5) | ((blue & 0xf800) >> 11); +#endif } break; #endif /* FBCON_HAS_CFB16 */ @@ -1346,8 +1356,13 @@ case 32: assert(regno < 16); rivainfo->con_cmap.cfb32[regno] = +#ifdef CONFIG_ARCH_IYONIX + ((blue & 0xff00) << 8) | + ((green & 0xff00)) | ((red & 0xff00) >> 8); +#else ((red & 0xff00) << 8) | ((green & 0xff00)) | ((blue & 0xff00) >> 8); +#endif break; #endif /* FBCON_HAS_CFB32 */ default: @@ -1504,18 +1519,32 @@ nom = 2; den = 1; if (v.green.length == 5) { +#ifdef CONFIG_ARCH_IYONIX + /* 0bbbbbgg gggrrrrr */ + v.red.offset = 0; + v.green.offset = 5; + v.blue.offset = 10; +#else /* 0rrrrrgg gggbbbbb */ v.red.offset = 10; v.green.offset = 5; v.blue.offset = 0; +#endif v.red.length = 5; v.green.length = 5; v.blue.length = 5; } else { +#ifdef CONFIG_ARCH_IYONIX + /* bbbbbggg gggrrrrr */ + v.red.offset = 0; + v.green.offset = 5; + v.blue.offset = 11; +#else /* rrrrrggg gggbbbbb */ v.red.offset = 11; v.green.offset = 5; v.blue.offset = 0; +#endif v.red.length = 5; v.green.length = 6; v.blue.length = 5; @@ -1527,9 +1556,15 @@ v.bits_per_pixel = 32; nom = 4; den = 1; +#ifdef CONFIG_ARCH_IYONIX + v.red.offset = 0; + v.green.offset = 8; + v.blue.offset = 16; +#else v.red.offset = 16; v.green.offset = 8; v.blue.offset = 0; +#endif v.red.length = 8; v.green.length = 8; v.blue.length = 8;