Merge branch 'viafb-next' of git://github.com/schandinat/linux-2.6
[pandora-kernel.git] / drivers / video / via / hw.c
index 7d7010a..36d73f9 100644 (file)
@@ -1429,6 +1429,15 @@ void viafb_load_FIFO_reg(int set_iga, int hor_active, int ver_active)
                            VX855_IGA1_DISPLAY_QUEUE_EXPIRE_NUM;
                }
 
+               if (viaparinfo->chip_info->gfx_chip_name == UNICHROME_VX900) {
+                       iga1_fifo_max_depth = VX900_IGA1_FIFO_MAX_DEPTH;
+                       iga1_fifo_threshold = VX900_IGA1_FIFO_THRESHOLD;
+                       iga1_fifo_high_threshold =
+                           VX900_IGA1_FIFO_HIGH_THRESHOLD;
+                       iga1_display_queue_expire_num =
+                           VX900_IGA1_DISPLAY_QUEUE_EXPIRE_NUM;
+               }
+
                /* Set Display FIFO Depath Select */
                reg_value = IGA1_FIFO_DEPTH_SELECT_FORMULA(iga1_fifo_max_depth);
                viafb_load_reg_num =
@@ -1569,6 +1578,15 @@ void viafb_load_FIFO_reg(int set_iga, int hor_active, int ver_active)
                            VX855_IGA2_DISPLAY_QUEUE_EXPIRE_NUM;
                }
 
+               if (viaparinfo->chip_info->gfx_chip_name == UNICHROME_VX900) {
+                       iga2_fifo_max_depth = VX900_IGA2_FIFO_MAX_DEPTH;
+                       iga2_fifo_threshold = VX900_IGA2_FIFO_THRESHOLD;
+                       iga2_fifo_high_threshold =
+                           VX900_IGA2_FIFO_HIGH_THRESHOLD;
+                       iga2_display_queue_expire_num =
+                           VX900_IGA2_DISPLAY_QUEUE_EXPIRE_NUM;
+               }
+
                if (viaparinfo->chip_info->gfx_chip_name == UNICHROME_K800) {
                        /* Set Display FIFO Depath Select */
                        reg_value =
@@ -1689,6 +1707,7 @@ u32 viafb_get_clk_value(int clk)
                        break;
 
                case UNICHROME_VX855:
+               case UNICHROME_VX900:
                        value = vx855_encode_pll(pll_value[i].vx855_pll);
                        break;
                }
@@ -1722,6 +1741,7 @@ void viafb_set_vclock(u32 clk, int set_iga)
                case UNICHROME_P4M900:
                case UNICHROME_VX800:
                case UNICHROME_VX855:
+               case UNICHROME_VX900:
                        via_write_reg(VIASR, SR44, (clk & 0x0000FF));
                        via_write_reg(VIASR, SR45, (clk & 0x00FF00) >> 8);
                        via_write_reg(VIASR, SR46, (clk & 0xFF0000) >> 16);
@@ -1748,6 +1768,7 @@ void viafb_set_vclock(u32 clk, int set_iga)
                case UNICHROME_P4M900:
                case UNICHROME_VX800:
                case UNICHROME_VX855:
+               case UNICHROME_VX900:
                        via_write_reg(VIASR, SR4A, (clk & 0x0000FF));
                        via_write_reg(VIASR, SR4B, (clk & 0x00FF00) >> 8);
                        via_write_reg(VIASR, SR4C, (clk & 0xFF0000) >> 16);
@@ -2179,6 +2200,7 @@ static void __devinit init_gfx_chip_info(int chip_type)
        switch (viaparinfo->chip_info->gfx_chip_name) {
        case UNICHROME_VX800:
        case UNICHROME_VX855:
+       case UNICHROME_VX900:
                viaparinfo->chip_info->twod_engine = VIA_2D_ENG_M1;
                break;
        case UNICHROME_K8M890:
@@ -2403,6 +2425,7 @@ int viafb_setmode(struct VideoModeTable *vmode_tbl, int video_bpp,
                break;
 
        case UNICHROME_VX855:
+       case UNICHROME_VX900:
                viafb_write_regx(VX855_ModeXregs, NUM_TOTAL_VX855_ModeXregs);
                break;
        }