vga_out8 (0x3c9, red   >> 10); vga_out8 (0x3c9, green >> 10); vga_out8 (0x3c9, blue  >> 10); 
vga_out8 (0x3c9, red   >> 10, par); vga_out8 (0x3c9, green >> 10, par); vga_out8 (0x3c9, blue  >> 10, par); 
static int savagefb_setcolreg(unsigned        regno,			      unsigned        red,			      unsigned        green,			      unsigned        blue,			      unsigned        transp,			      struct fb_info *info){	struct savagefb_par *par = (struct savagefb_par *)info->par;	if (regno >= NR_PALETTE)		return -EINVAL;	par->palette[regno].red    = red;	par->palette[regno].green  = green;	par->palette[regno].blue   = blue;	par->palette[regno].transp = transp;	switch (info->var.bits_per_pixel) {	case 8:		vga_out8 (0x3c8, regno);		vga_out8 (0x3c9, red   >> 10);		vga_out8 (0x3c9, green >> 10);		vga_out8 (0x3c9, blue  >> 10);		break;	case 16:		if (regno < 16)			((u32 *)info->pseudo_palette)[regno] =				((red   & 0xf800)      ) |				((green & 0xfc00) >>  5) |				((blue  & 0xf800) >> 11);		break;	case 24:		if (regno < 16)			((u32 *)info->pseudo_palette)[regno] =				((red    & 0xff00) <<  8) |				((green  & 0xff00)      ) |				((blue   & 0xff00) >>  8);		break;	case 32:		if (regno < 16)			((u32 *)info->pseudo_palette)[regno] =				((transp & 0xff00) << 16) |				((red    & 0xff00) <<  8) |				((green  & 0xff00)      ) |				((blue   & 0xff00) >>  8);		break;	default:		return 1;	}	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/1cc650c69f3079ce3c616c998a741bcf6ddf4f4d/savagefb_driver.c/buggy/drivers/video/savage/savagefb_driver.c