int s3cfb_set_color_value(s3c_fb_info_t *fbi, s3c_color_val_info_t colval_info) { unsigned int colval = 0; int win_num = fbi->win_id; if (win_num == 0) { printk("WIN0 do not support color key value\n"); return -1; } win_num--; if (fbi->fb.var.bits_per_pixel == S3C_FB_PIXEL_BPP_16) { /* RGB 5-6-5 mode */ colval = (((colval_info.colval_red & 0x1f) << 19) | 0x70000); colval |= (((colval_info.colval_green & 0x3f) << 10) | 0x300); colval |= (((colval_info.colval_blue & 0x1f) << 3 )| 0x7); } else if (fbi->fb.var.bits_per_pixel == S3C_FB_PIXEL_BPP_24) { /* currently RGB 8-8-8 mode */ colval = ((colval_info.colval_red & 0xff) << 16); colval |= ((colval_info.colval_green & 0xff) << 8); colval |= ((colval_info.colval_blue & 0xff) << 0); } else printk("Invalid BPP has been given!\n"); writel(S3C_WxKEYCON1_COLVAL(colval), S3C_W1KEYCON1 + (0x08 * win_num)); return 0; }
| S3C_VIDINTCON0_FRAMESEL1_NONE | S3C_VIDINTCON0_INTFRMEN_DISABLE | S3C_VIDINTCON0_FIFOSEL_WIN0 | S3C_VIDINTCON0_FIFOLEVEL_25 | S3C_VIDINTCON0_INTFIFOEN_DISABLE | S3C_VIDINTCON0_INTEN_ENABLE, .vidintcon1 = 0, .xoffset = 0, .yoffset = 0, .w1keycon0 = S3C_WxKEYCON0_KEYBLEN_DISABLE | S3C_WxKEYCON0_KEYEN_F_DISABLE | S3C_WxKEYCON0_DIRCON_MATCH_FG_IMAGE | S3C_WxKEYCON0_COMPKEY(0x0), .w1keycon1 = S3C_WxKEYCON1_COLVAL(0xffffff), .w2keycon0 = S3C_WxKEYCON0_KEYBLEN_DISABLE | S3C_WxKEYCON0_KEYEN_F_DISABLE | S3C_WxKEYCON0_DIRCON_MATCH_FG_IMAGE | S3C_WxKEYCON0_COMPKEY(0x0), .w2keycon1 = S3C_WxKEYCON1_COLVAL(0xffffff), .w3keycon0 = S3C_WxKEYCON0_KEYBLEN_DISABLE | S3C_WxKEYCON0_KEYEN_F_DISABLE | S3C_WxKEYCON0_DIRCON_MATCH_FG_IMAGE | S3C_WxKEYCON0_COMPKEY(0x0), .w3keycon1 = S3C_WxKEYCON1_COLVAL(0xffffff), .w4keycon0 = S3C_WxKEYCON0_KEYBLEN_DISABLE | S3C_WxKEYCON0_KEYEN_F_DISABLE | S3C_WxKEYCON0_DIRCON_MATCH_FG_IMAGE | S3C_WxKEYCON0_COMPKEY(0x0), .w4keycon1 = S3C_WxKEYCON1_COLVAL(0xffffff),