gfx_disp.c revision f29dbc25
1f29dbc25Smrg/* Copyright (c) 2005 Advanced Micro Devices, Inc. 2f29dbc25Smrg * 3f29dbc25Smrg * Permission is hereby granted, free of charge, to any person obtaining a copy 4f29dbc25Smrg * of this software and associated documentation files (the "Software"), to 5f29dbc25Smrg * deal in the Software without restriction, including without limitation the 6f29dbc25Smrg * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 7f29dbc25Smrg * sell copies of the Software, and to permit persons to whom the Software is 8f29dbc25Smrg * furnished to do so, subject to the following conditions: 9f29dbc25Smrg * 10f29dbc25Smrg * The above copyright notice and this permission notice shall be included in 11f29dbc25Smrg * all copies or substantial portions of the Software. 12f29dbc25Smrg * 13f29dbc25Smrg * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14f29dbc25Smrg * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15f29dbc25Smrg * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16f29dbc25Smrg * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17f29dbc25Smrg * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 18f29dbc25Smrg * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 19f29dbc25Smrg * IN THE SOFTWARE. 20f29dbc25Smrg * 21f29dbc25Smrg * Neither the name of the Advanced Micro Devices, Inc. nor the names of its 22f29dbc25Smrg * contributors may be used to endorse or promote products derived from this 23f29dbc25Smrg * software without specific prior written permission. 24f29dbc25Smrg * */ 25f29dbc25Smrg 26f29dbc25Smrg/* 27f29dbc25Smrg * This file contains routines to program the display controller. 28f29dbc25Smrg * 29f29dbc25Smrg * The "disp_gu1.c" and "disp_gu2.c" files implement the following routines: 30f29dbc25Smrg * 31f29dbc25Smrg * gfx_get_display_mode_count 32f29dbc25Smrg * gfx_get_display_mode 33f29dbc25Smrg * gfx_is_display_mode_supported 34f29dbc25Smrg * gfx_is_panel_mode_supported 35f29dbc25Smrg * gfx_get_display_details 36f29dbc25Smrg * gfx_set_display_mode 37f29dbc25Smrg * gfx_set_display_bpp 38f29dbc25Smrg * gfx_set_display_timings 39f29dbc25Smrg * gfx_set_vtotal 40f29dbc25Smrg * gfx_get_display_pitch 41f29dbc25Smrg * gfx_set_display_pitch 42f29dbc25Smrg * gfx_set_display_offset 43f29dbc25Smrg * gfx_set_display_palette 44f29dbc25Smrg * gfx_set_display_palette_entry 45f29dbc25Smrg * gfx_set_cursor_enable 46f29dbc25Smrg * gfx_set_cursor_colors 47f29dbc25Smrg * gfx_set_cursor_position 48f29dbc25Smrg * gfx_set_cursor_shape32 49f29dbc25Smrg * gfx_set_cursor_shape64 50f29dbc25Smrg * gfx_set_compression_enable 51f29dbc25Smrg * gfx_set_compression_offset 52f29dbc25Smrg * gfx_set_compression_pitch 53f29dbc25Smrg * gfx_set_compression_size 54f29dbc25Smrg * gfx_set_display_priority_high 55f29dbc25Smrg * gfx_set_panel_present 56f29dbc25Smrg * gfx_test_timing_active 57f29dbc25Smrg * gfx_test_vertical_active 58f29dbc25Smrg * gfx_wait_vertical_blank 59f29dbc25Smrg * gfx_reset_timing_lock 60f29dbc25Smrg * 61f29dbc25Smrg * And the following routines if GFX_READ_ROUTINES is set: 62f29dbc25Smrg * 63f29dbc25Smrg * gfx_get_hactive 64f29dbc25Smrg * gfx_get_hblank_start 65f29dbc25Smrg * gfx_get_hsync_start 66f29dbc25Smrg * gfx_get_hsync_end 67f29dbc25Smrg * gfx_get_hblank_end 68f29dbc25Smrg * gfx_get_htotal 69f29dbc25Smrg * gfx_get_vactive 70f29dbc25Smrg * gfx_get_vblank_start 71f29dbc25Smrg * gfx_get_vsync_start 72f29dbc25Smrg * gfx_get_vsync_end 73f29dbc25Smrg * gfx_get_vblank_end 74f29dbc25Smrg * gfx_get_vtotal 75f29dbc25Smrg * gfx_get_vline 76f29dbc25Smrg * gfx_get_display_bpp 77f29dbc25Smrg * gfx_get_display_offset 78f29dbc25Smrg * gfx_get_display_palette 79f29dbc25Smrg * gfx_get_cursor_enable 80f29dbc25Smrg * gfx_get_cursor_base 81f29dbc25Smrg * gfx_get_cursor_position 82f29dbc25Smrg * gfx_get_cursor_offset 83f29dbc25Smrg * gfx_get_cursor_color 84f29dbc25Smrg * gfx_get_compression_enable 85f29dbc25Smrg * gfx_get_compression_offset 86f29dbc25Smrg * gfx_get_compression_pitch 87f29dbc25Smrg * gfx_get_compression_size 88f29dbc25Smrg * gfx_get_display_priority_high 89f29dbc25Smrg * gfx_get_valid_bit 90f29dbc25Smrg * */ 91f29dbc25Smrg 92f29dbc25Smrgunsigned short PanelWidth = 0; 93f29dbc25Smrgunsigned short PanelHeight = 0; 94f29dbc25Smrgunsigned short PanelEnable = 0; 95f29dbc25Smrgunsigned short ModeWidth; 96f29dbc25Smrgunsigned short ModeHeight; 97f29dbc25Smrg 98f29dbc25Smrgint DeltaX = 0; 99f29dbc25Smrgint DeltaY = 0; 100f29dbc25Smrgunsigned long prevstartAddr = 0; 101f29dbc25Smrgunsigned long panelTop = 0; 102f29dbc25Smrgunsigned long panelLeft = 0; 103f29dbc25Smrg 104f29dbc25Smrgint gbpp = 8; 105f29dbc25Smrg 106f29dbc25Smrgint gfx_compression_enabled = 0; 107f29dbc25Smrgint gfx_compression_active = 0; 108f29dbc25Smrgint gfx_line_double = 0; 109f29dbc25Smrgint gfx_pixel_double = 0; 110f29dbc25Smrgint gfx_timing_lock = 0; 111f29dbc25SmrgDISPLAYMODE gfx_display_mode; 112f29dbc25Smrg 113f29dbc25Smrg/* DISPLAY MODE TIMINGS */ 114f29dbc25Smrg 115f29dbc25SmrgDISPLAYMODE DisplayParams[] = { 116f29dbc25Smrg 117f29dbc25Smrg/* 320 x 200 */ 118f29dbc25Smrg 119f29dbc25Smrg { 120f29dbc25Smrg GFX_MODE_70HZ | /* refresh rate = 60 */ 121f29dbc25Smrg GFX_MODE_8BPP | GFX_MODE_16BPP | /* 8 and 16 BPP valid */ 122f29dbc25Smrg GFX_MODE_NEG_HSYNC | /* negative HSYNC */ 123f29dbc25Smrg GFX_MODE_PIXEL_DOUBLE | /* Double width */ 124f29dbc25Smrg GFX_MODE_LINE_DOUBLE, /* Double height */ 125f29dbc25Smrg 0x140, 0x288, 0x290, 0x2F0, 0x318, 0x320, /* horizontal timings */ 126f29dbc25Smrg 0x0C8, 0x197, 0x19C, 0x19E, 0x1BA, 0x1C1, /* vertical timings */ 127f29dbc25Smrg 0x00192CCC, /* freq = 25.175 MHz */ 128f29dbc25Smrg }, 129f29dbc25Smrg 130f29dbc25Smrg/* 320 x 240 */ 131f29dbc25Smrg 132f29dbc25Smrg { 133f29dbc25Smrg GFX_MODE_75HZ | /* refresh rate = 75 */ 134f29dbc25Smrg GFX_MODE_8BPP | GFX_MODE_16BPP | /* 8 and 16 BPP valid */ 135f29dbc25Smrg GFX_MODE_NEG_HSYNC | GFX_MODE_NEG_VSYNC | /* negative syncs */ 136f29dbc25Smrg GFX_MODE_PIXEL_DOUBLE | /* Double width */ 137f29dbc25Smrg GFX_MODE_LINE_DOUBLE, /* Double height */ 138f29dbc25Smrg 0x0140, 0x0280, 0x0290, 0x02D0, 0x0348, 0x0348, 139f29dbc25Smrg /* horizontal timings */ 140f29dbc25Smrg 0x00F0, 0x01E0, 0x01E1, 0x01E4, 0x01F4, 0x01F4, 141f29dbc25Smrg /* vertical timings */ 142f29dbc25Smrg 0x001F8000, /* freq = 31.5 MHz */ 143f29dbc25Smrg }, 144f29dbc25Smrg 145f29dbc25Smrg/* 400 x 300 */ 146f29dbc25Smrg 147f29dbc25Smrg { 148f29dbc25Smrg GFX_MODE_75HZ | /* refresh rate = 75 */ 149f29dbc25Smrg GFX_MODE_8BPP | GFX_MODE_16BPP | /* 8 and 16 BPP valid */ 150f29dbc25Smrg GFX_MODE_PIXEL_DOUBLE | /* Double width */ 151f29dbc25Smrg GFX_MODE_LINE_DOUBLE, /* Double height */ 152f29dbc25Smrg 0x0190, 0x0320, 0x0330, 0x0380, 0x0420, 0x0420, 153f29dbc25Smrg /* horizontal timings */ 154f29dbc25Smrg 0x012C, 0x0258, 0x0259, 0x025C, 0x0271, 0x0271, 155f29dbc25Smrg /* vertical timings */ 156f29dbc25Smrg 0x00318000, /* freq = 49.5 MHz */ 157f29dbc25Smrg }, 158f29dbc25Smrg 159f29dbc25Smrg/* 512 x 384 */ 160f29dbc25Smrg 161f29dbc25Smrg { 162f29dbc25Smrg GFX_MODE_75HZ | /* refresh rate = 75 */ 163f29dbc25Smrg GFX_MODE_8BPP | GFX_MODE_16BPP | /* 8 and 16 BPP valid */ 164f29dbc25Smrg GFX_MODE_PIXEL_DOUBLE | /* Double width */ 165f29dbc25Smrg GFX_MODE_LINE_DOUBLE, /* Double height */ 166f29dbc25Smrg 0x0200, 0x0400, 0x0410, 0x0470, 0x0520, 0x0520, 167f29dbc25Smrg /* horizontal timings */ 168f29dbc25Smrg 0x0180, 0x0300, 0x0301, 0x0304, 0x0320, 0x0320, 169f29dbc25Smrg /* vertical timings */ 170f29dbc25Smrg 0x004EC000, /* freq = 78.75 MHz */ 171f29dbc25Smrg }, 172f29dbc25Smrg 173f29dbc25Smrg/* 640 x 400 */ 174f29dbc25Smrg 175f29dbc25Smrg { 176f29dbc25Smrg GFX_MODE_70HZ | /* refresh rate = 60 */ 177f29dbc25Smrg GFX_MODE_8BPP | GFX_MODE_12BPP | GFX_MODE_15BPP | 178f29dbc25Smrg /* all BPP valid */ 179f29dbc25Smrg GFX_MODE_16BPP | GFX_MODE_24BPP | GFX_MODE_NEG_HSYNC, 180f29dbc25Smrg /* negative HSYNC */ 181f29dbc25Smrg 0x280, 0x288, 0x290, 0x2F0, 0x318, 0x320, /* horizontal timings */ 182f29dbc25Smrg 0x190, 0x197, 0x19C, 0x19E, 0x1BA, 0x1C1, /* vertical timings */ 183f29dbc25Smrg 0x00192CCC, /* freq = 25.175 MHz */ 184f29dbc25Smrg }, 185f29dbc25Smrg 186f29dbc25Smrg/* 640x480 */ 187f29dbc25Smrg 188f29dbc25Smrg { 189f29dbc25Smrg GFX_MODE_60HZ | /* refresh rate = 60 */ 190f29dbc25Smrg GFX_MODE_8BPP | GFX_MODE_12BPP | GFX_MODE_15BPP | 191f29dbc25Smrg /* all BPP valid */ 192f29dbc25Smrg GFX_MODE_16BPP | GFX_MODE_24BPP | GFX_MODE_NEG_HSYNC | GFX_MODE_NEG_VSYNC, /* negative syncs */ 193f29dbc25Smrg 0x0280, 0x0288, 0x0290, 0x02E8, 0x0318, 0x0320, 194f29dbc25Smrg /* horizontal timings */ 195f29dbc25Smrg 0x01E0, 0x01E8, 0x01EA, 0x01EC, 0x0205, 0x020D, 196f29dbc25Smrg /* vertical timings */ 197f29dbc25Smrg 0x00192CCC, /* freq = 25.175 MHz */ 198f29dbc25Smrg }, 199f29dbc25Smrg 200f29dbc25Smrg { 201f29dbc25Smrg GFX_MODE_70HZ | /* refresh rate = 60 */ 202f29dbc25Smrg GFX_MODE_8BPP | GFX_MODE_12BPP | GFX_MODE_15BPP | 203f29dbc25Smrg /* all BPP valid */ 204f29dbc25Smrg GFX_MODE_16BPP | GFX_MODE_24BPP, 205f29dbc25Smrg 0x0280, 0x0280, 0x0298, 0x02D8, 0x0330, 0x0330, 206f29dbc25Smrg /* horizontal timings */ 207f29dbc25Smrg 0x01E0, 0x01E0, 0x01E2, 0x01E5, 0x01F4, 0x01F4, 208f29dbc25Smrg /* vertical timings */ 209f29dbc25Smrg 0x001C8F5C, /* freq = 28.560 MHz */ 210f29dbc25Smrg }, 211f29dbc25Smrg 212f29dbc25Smrg { 213f29dbc25Smrg GFX_MODE_72HZ | /* refresh rate = 72 */ 214f29dbc25Smrg GFX_MODE_8BPP | GFX_MODE_12BPP | GFX_MODE_15BPP | 215f29dbc25Smrg /* all BPP valid */ 216f29dbc25Smrg GFX_MODE_16BPP | GFX_MODE_24BPP | GFX_MODE_NEG_HSYNC | GFX_MODE_NEG_VSYNC, /* negative syncs */ 217f29dbc25Smrg 0x0280, 0x0288, 0x0298, 0x02c0, 0x0338, 0x0340, 218f29dbc25Smrg /* horizontal timings */ 219f29dbc25Smrg 0x01e0, 0x01e8, 0x01e9, 0x01ec, 0x0200, 0x0208, 220f29dbc25Smrg /* vertical timings */ 221f29dbc25Smrg 0x001F8000, /* freq = 31.5 MHz */ 222f29dbc25Smrg }, 223f29dbc25Smrg 224f29dbc25Smrg { 225f29dbc25Smrg GFX_MODE_75HZ | /* refresh rate = 75 */ 226f29dbc25Smrg GFX_MODE_8BPP | GFX_MODE_12BPP | GFX_MODE_15BPP | 227f29dbc25Smrg /* all BPP valid */ 228f29dbc25Smrg GFX_MODE_16BPP | GFX_MODE_24BPP | GFX_MODE_NEG_HSYNC | GFX_MODE_NEG_VSYNC, /* negative syncs */ 229f29dbc25Smrg 0x0280, 0x0280, 0x0290, 0x02D0, 0x0348, 0x0348, 230f29dbc25Smrg /* horizontal timings */ 231f29dbc25Smrg 0x01E0, 0x01E0, 0x01E1, 0x01E4, 0x01F4, 0x01F4, 232f29dbc25Smrg /* vertical timings */ 233f29dbc25Smrg 0x001F8000, /* freq = 31.5 MHz */ 234f29dbc25Smrg }, 235f29dbc25Smrg 236f29dbc25Smrg { 237f29dbc25Smrg GFX_MODE_85HZ | /* refresh rate = 85 */ 238f29dbc25Smrg GFX_MODE_8BPP | GFX_MODE_12BPP | GFX_MODE_15BPP | 239f29dbc25Smrg /* all BPP valid */ 240f29dbc25Smrg GFX_MODE_16BPP | GFX_MODE_24BPP | GFX_MODE_NEG_HSYNC | GFX_MODE_NEG_VSYNC, /* negative syncs */ 241f29dbc25Smrg 0x0280, 0x0280, 0x02B8, 0x02F0, 0x0340, 0x0340, 242f29dbc25Smrg /* horizontal timings */ 243f29dbc25Smrg 0x01E0, 0x01E0, 0x01E1, 0x01E4, 0x01FD, 0x01FD, 244f29dbc25Smrg /* vertical timings */ 245f29dbc25Smrg 0x00240000, /* freq = 36.0 MHz */ 246f29dbc25Smrg }, 247f29dbc25Smrg 248f29dbc25Smrg { 249f29dbc25Smrg GFX_MODE_90HZ | /* refresh rate = 90 */ 250f29dbc25Smrg GFX_MODE_8BPP | GFX_MODE_12BPP | GFX_MODE_15BPP | 251f29dbc25Smrg /* all BPP valid */ 252f29dbc25Smrg GFX_MODE_16BPP | GFX_MODE_24BPP, 253f29dbc25Smrg 0x0280, 0x0280, 0x02A0, 0x02E0, 0x0340, 0x0340, 254f29dbc25Smrg /* horizontal timings */ 255f29dbc25Smrg 0x01E0, 0x01E0, 0x01E1, 0x01E4, 0x01FA, 0x01FA, 256f29dbc25Smrg /* vertical timings */ 257f29dbc25Smrg 0x0025E395, /* freq = 37.889 MHz */ 258f29dbc25Smrg }, 259f29dbc25Smrg 260f29dbc25Smrg { 261f29dbc25Smrg GFX_MODE_100HZ | /* refresh rate = 100 */ 262f29dbc25Smrg GFX_MODE_8BPP | GFX_MODE_12BPP | GFX_MODE_15BPP | 263f29dbc25Smrg /* all BPP valid */ 264f29dbc25Smrg GFX_MODE_16BPP | GFX_MODE_24BPP, 265f29dbc25Smrg 0x0280, 0x0280, 0x02A8, 0x02E8, 0x0350, 0x0350, 266f29dbc25Smrg /* horizontal timings */ 267f29dbc25Smrg 0x01E0, 0x01E0, 0x01E1, 0x01E4, 0x01FD, 0x01FD, 268f29dbc25Smrg /* vertical timings */ 269f29dbc25Smrg 0x002B29BA, /* freq = 43.163 MHz */ 270f29dbc25Smrg }, 271f29dbc25Smrg 272f29dbc25Smrg/* 800x600 */ 273f29dbc25Smrg 274f29dbc25Smrg { 275f29dbc25Smrg GFX_MODE_56HZ | /* refresh rate = 56 */ 276f29dbc25Smrg GFX_MODE_8BPP | GFX_MODE_12BPP | GFX_MODE_15BPP | 277f29dbc25Smrg /* all BPP valid */ 278f29dbc25Smrg GFX_MODE_16BPP | GFX_MODE_24BPP, 279f29dbc25Smrg 0x0320, 0x0320, 0x0338, 0x0380, 0x0400, 0x0400, 280f29dbc25Smrg /* horizontal timings */ 281f29dbc25Smrg 0x0258, 0x0258, 0x0259, 0x025B, 0x0271, 0x0271, 282f29dbc25Smrg /* vertical timings */ 283f29dbc25Smrg 0x00240000, /* freq = 36.00 MHz */ 284f29dbc25Smrg }, 285f29dbc25Smrg 286f29dbc25Smrg { 287f29dbc25Smrg GFX_MODE_60HZ | /* refresh rate = 60 */ 288f29dbc25Smrg GFX_MODE_8BPP | GFX_MODE_12BPP | GFX_MODE_15BPP | 289f29dbc25Smrg /* all BPP valid */ 290f29dbc25Smrg GFX_MODE_16BPP | GFX_MODE_24BPP, 291f29dbc25Smrg 0x0320, 0x0328, 0x0348, 0x03D0, 0x0418, 0x0420, 292f29dbc25Smrg /* horizontal timings */ 293f29dbc25Smrg 0x0258, 0x0258, 0x0259, 0x025D, 0x0274, 0x0274, 294f29dbc25Smrg /* vertical timings */ 295f29dbc25Smrg 0x00280000, /* freq = 40.00 MHz */ 296f29dbc25Smrg }, 297f29dbc25Smrg 298f29dbc25Smrg { 299f29dbc25Smrg GFX_MODE_70HZ | /* refresh rate = 70 */ 300f29dbc25Smrg GFX_MODE_8BPP | GFX_MODE_12BPP | GFX_MODE_15BPP | 301f29dbc25Smrg /* all BPP valid */ 302f29dbc25Smrg GFX_MODE_16BPP | GFX_MODE_24BPP, 303f29dbc25Smrg 0x0320, 0x0320, 0x0348, 0x0398, 0x0410, 0x0410, 304f29dbc25Smrg /* horizontal timings */ 305f29dbc25Smrg 0x0258, 0x0258, 0x025c, 0x025F, 0x0274, 0x0274, 306f29dbc25Smrg /* vertical timings */ 307f29dbc25Smrg 0x002DB851, /* freq = 45.72 MHz */ 308f29dbc25Smrg }, 309f29dbc25Smrg 310f29dbc25Smrg { 311f29dbc25Smrg GFX_MODE_72HZ | /* refresh rate = 72 */ 312f29dbc25Smrg GFX_MODE_8BPP | GFX_MODE_12BPP | GFX_MODE_15BPP | 313f29dbc25Smrg /* all BPP valid */ 314f29dbc25Smrg GFX_MODE_16BPP | GFX_MODE_24BPP, 315f29dbc25Smrg 0x0320, 0x0320, 0x0358, 0x03D0, 0x0410, 0x0410, 316f29dbc25Smrg /* horizontal timings */ 317f29dbc25Smrg 0x0258, 0x0258, 0x027D, 0x0283, 0x029A, 0x029A, 318f29dbc25Smrg /* vertical timings */ 319f29dbc25Smrg 0x00320000, /* freq = 49.5 MHz */ 320f29dbc25Smrg }, 321f29dbc25Smrg 322f29dbc25Smrg { 323f29dbc25Smrg GFX_MODE_75HZ | /* refresh rate = 75 */ 324f29dbc25Smrg GFX_MODE_8BPP | GFX_MODE_12BPP | GFX_MODE_15BPP | 325f29dbc25Smrg /* all BPP valid */ 326f29dbc25Smrg GFX_MODE_16BPP | GFX_MODE_24BPP, 327f29dbc25Smrg 0x0320, 0x0320, 0x0330, 0x0380, 0x0420, 0x0420, 328f29dbc25Smrg /* horizontal timings */ 329f29dbc25Smrg 0x0258, 0x0258, 0x0259, 0x025C, 0x0271, 0x0271, 330f29dbc25Smrg /* vertical timings */ 331f29dbc25Smrg 0x00318000, /* freq = 49.5 MHz */ 332f29dbc25Smrg }, 333f29dbc25Smrg 334f29dbc25Smrg { 335f29dbc25Smrg GFX_MODE_85HZ | /* refresh rate = 85 */ 336f29dbc25Smrg GFX_MODE_8BPP | GFX_MODE_12BPP | GFX_MODE_15BPP | 337f29dbc25Smrg /* all BPP valid */ 338f29dbc25Smrg GFX_MODE_16BPP | GFX_MODE_24BPP, 339f29dbc25Smrg 0x0320, 0x0320, 0x0340, 0x0380, 0x0418, 0x0418, 340f29dbc25Smrg /* horizontal timings */ 341f29dbc25Smrg 0x0258, 0x0258, 0x0259, 0x025C, 0x0277, 0x0277, 342f29dbc25Smrg /* vertical timings */ 343f29dbc25Smrg 0x00384000, /* freq = 56.25 MHz */ 344f29dbc25Smrg }, 345f29dbc25Smrg 346f29dbc25Smrg { 347f29dbc25Smrg GFX_MODE_90HZ | /* refresh rate = 90 */ 348f29dbc25Smrg GFX_MODE_8BPP | GFX_MODE_12BPP | GFX_MODE_15BPP | 349f29dbc25Smrg /* all BPP valid */ 350f29dbc25Smrg GFX_MODE_16BPP | GFX_MODE_24BPP, 351f29dbc25Smrg 0x0320, 0x0320, 0x0348, 0x03A0, 0x0420, 0x0420, 352f29dbc25Smrg /* horizontal timings */ 353f29dbc25Smrg 0x0258, 0x0258, 0x0259, 0x025C, 0x0278, 0x0278, 354f29dbc25Smrg /* vertical timings */ 355f29dbc25Smrg 0x003C10A3, /* freq = 60.065 MHz */ 356f29dbc25Smrg }, 357f29dbc25Smrg 358f29dbc25Smrg { 359f29dbc25Smrg GFX_MODE_100HZ | /* refresh rate = 100 */ 360f29dbc25Smrg GFX_MODE_8BPP | GFX_MODE_12BPP | GFX_MODE_15BPP | 361f29dbc25Smrg /* all BPP valid */ 362f29dbc25Smrg GFX_MODE_16BPP | GFX_MODE_24BPP, 363f29dbc25Smrg 0x0320, 0x0320, 0x0350, 0x03A8, 0x0430, 0x0430, 364f29dbc25Smrg /* horizontal timings */ 365f29dbc25Smrg 0x0258, 0x0258, 0x0259, 0x025C, 0x0277, 0x027C, 366f29dbc25Smrg /* vertical timings */ 367f29dbc25Smrg 0x00442DD2, /* freq = 68.179 MHz */ 368f29dbc25Smrg }, 369f29dbc25Smrg 370f29dbc25Smrg/* 1024x768 */ 371f29dbc25Smrg 372f29dbc25Smrg { 373f29dbc25Smrg GFX_MODE_60HZ | /* refresh rate = 60 */ 374f29dbc25Smrg GFX_MODE_8BPP | GFX_MODE_12BPP | GFX_MODE_15BPP | 375f29dbc25Smrg /* all BPP valid */ 376f29dbc25Smrg GFX_MODE_16BPP | GFX_MODE_24BPP | GFX_MODE_NEG_HSYNC | GFX_MODE_NEG_VSYNC, /* negative syncs */ 377f29dbc25Smrg 0x0400, 0x0400, 0x0418, 0x04A0, 0x0540, 0x0540, 378f29dbc25Smrg /* horizontal timings */ 379f29dbc25Smrg 0x0300, 0x0300, 0x0303, 0x0309, 0x0326, 0x0326, 380f29dbc25Smrg /* vertical timings */ 381f29dbc25Smrg 0x00410000, /* freq = 65.00 MHz */ 382f29dbc25Smrg }, 383f29dbc25Smrg 384f29dbc25Smrg { 385f29dbc25Smrg GFX_MODE_70HZ | /* refresh rate = 70 */ 386f29dbc25Smrg GFX_MODE_8BPP | GFX_MODE_12BPP | GFX_MODE_15BPP | 387f29dbc25Smrg /* all BPP valid */ 388f29dbc25Smrg GFX_MODE_16BPP | GFX_MODE_24BPP | GFX_MODE_NEG_HSYNC | GFX_MODE_NEG_VSYNC, /* negative syncs */ 389f29dbc25Smrg 0x0400, 0x0400, 0x0418, 0x04A0, 0x0530, 0x0530, 390f29dbc25Smrg /* horizontal timings */ 391f29dbc25Smrg 0x0300, 0x0300, 0x0303, 0x0309, 0x0326, 0x0326, 392f29dbc25Smrg /* vertical timings */ 393f29dbc25Smrg 0x004B0000, /* freq = 75.00 MHz */ 394f29dbc25Smrg }, 395f29dbc25Smrg 396f29dbc25Smrg { 397f29dbc25Smrg GFX_MODE_72HZ | /* refresh rate = 72 */ 398f29dbc25Smrg GFX_MODE_8BPP | GFX_MODE_12BPP | GFX_MODE_15BPP | 399f29dbc25Smrg /* all BPP valid */ 400f29dbc25Smrg GFX_MODE_16BPP | GFX_MODE_24BPP, 401f29dbc25Smrg 0x0400, 0x0400, 0x0438, 0x04A8, 0x0550, 0x0550, 402f29dbc25Smrg /* horizontal timings */ 403f29dbc25Smrg 0x0300, 0x0300, 0x0304, 0x0307, 0x0324, 0x0324, 404f29dbc25Smrg /* vertical timings */ 405f29dbc25Smrg 0x004EC000, /* freq = 78.75 MHz */ 406f29dbc25Smrg }, 407f29dbc25Smrg 408f29dbc25Smrg { 409f29dbc25Smrg GFX_MODE_75HZ | /* refresh rate = 75 */ 410f29dbc25Smrg GFX_MODE_8BPP | GFX_MODE_12BPP | GFX_MODE_15BPP | 411f29dbc25Smrg /* all BPP valid */ 412f29dbc25Smrg GFX_MODE_16BPP | GFX_MODE_24BPP, 413f29dbc25Smrg 0x0400, 0x0400, 0x0410, 0x0470, 0x0520, 0x0520, 414f29dbc25Smrg /* horizontal timings */ 415f29dbc25Smrg 0x0300, 0x0300, 0x0301, 0x0304, 0x0320, 0x0320, 416f29dbc25Smrg /* vertical timings */ 417f29dbc25Smrg 0x004EC000, /* freq = 78.75 MHz */ 418f29dbc25Smrg }, 419f29dbc25Smrg 420f29dbc25Smrg { 421f29dbc25Smrg GFX_MODE_85HZ | /* refresh rate = 85 */ 422f29dbc25Smrg GFX_MODE_8BPP | GFX_MODE_12BPP | GFX_MODE_15BPP | 423f29dbc25Smrg /* all BPP valid */ 424f29dbc25Smrg GFX_MODE_16BPP | GFX_MODE_24BPP, 425f29dbc25Smrg 0x0400, 0x0400, 0x0430, 0x0490, 0x0560, 0x0560, 426f29dbc25Smrg /* horizontal timings */ 427f29dbc25Smrg 0x0300, 0x0300, 0x0301, 0x0304, 0x0328, 0x0328, 428f29dbc25Smrg /* vertical timings */ 429f29dbc25Smrg 0x005E8000, /* freq = 94.50 MHz */ 430f29dbc25Smrg }, 431f29dbc25Smrg 432f29dbc25Smrg { 433f29dbc25Smrg GFX_MODE_90HZ | /* refresh rate = 90 */ 434f29dbc25Smrg GFX_MODE_8BPP | GFX_MODE_12BPP | GFX_MODE_15BPP | 435f29dbc25Smrg /* all BPP valid */ 436f29dbc25Smrg GFX_MODE_16BPP | GFX_MODE_24BPP, 437f29dbc25Smrg 0x0400, 0x0400, 0x0440, 0x04B0, 0x0560, 0x0560, 438f29dbc25Smrg /* horizontal timings */ 439f29dbc25Smrg 0x0300, 0x0300, 0x0301, 0x0304, 0x0329, 0x0329, 440f29dbc25Smrg /* vertical timings */ 441f29dbc25Smrg 0x00642FDF, /* freq = 100.187 MHz */ 442f29dbc25Smrg }, 443f29dbc25Smrg 444f29dbc25Smrg { 445f29dbc25Smrg GFX_MODE_100HZ | /* refresh rate = 100 */ 446f29dbc25Smrg GFX_MODE_8BPP | GFX_MODE_12BPP | GFX_MODE_15BPP | 447f29dbc25Smrg /* all BPP valid */ 448f29dbc25Smrg GFX_MODE_16BPP | GFX_MODE_24BPP, 449f29dbc25Smrg 0x0400, 0x0400, 0x0448, 0x04B8, 0x0570, 0x0570, 450f29dbc25Smrg /* horizontal timings */ 451f29dbc25Smrg 0x0300, 0x0300, 0x0301, 0x0304, 0x032E, 0x032E, 452f29dbc25Smrg /* vertical timings */ 453f29dbc25Smrg 0x00714F1A, /* freq = 113.309 MHz */ 454f29dbc25Smrg }, 455f29dbc25Smrg 456f29dbc25Smrg/* 1152x864 */ 457f29dbc25Smrg 458f29dbc25Smrg { 459f29dbc25Smrg GFX_MODE_60HZ | /* refresh rate = 60 */ 460f29dbc25Smrg GFX_MODE_8BPP | GFX_MODE_12BPP | GFX_MODE_15BPP | 461f29dbc25Smrg /* all BPP valid */ 462f29dbc25Smrg GFX_MODE_16BPP | GFX_MODE_24BPP, 463f29dbc25Smrg 0x0480, 0x0480, 0x04C0, 0x0538, 0x05F0, 0x05F0, 464f29dbc25Smrg /* horizontal timings */ 465f29dbc25Smrg 0x0360, 0x0360, 0x0361, 0x0364, 0x037F, 0x037F, 466f29dbc25Smrg /* vertical timings */ 467f29dbc25Smrg 0x00519999, /* freq = 81.60 MHz */ 468f29dbc25Smrg }, 469f29dbc25Smrg 470f29dbc25Smrg { 471f29dbc25Smrg GFX_MODE_70HZ | /* refresh rate = 70 */ 472f29dbc25Smrg GFX_MODE_8BPP | GFX_MODE_12BPP | GFX_MODE_15BPP | 473f29dbc25Smrg /* all BPP valid */ 474f29dbc25Smrg GFX_MODE_16BPP | GFX_MODE_24BPP, 475f29dbc25Smrg 0x0480, 0x0480, 0x04C8, 0x0540, 0x0600, 0x0600, 476f29dbc25Smrg /* horizontal timings */ 477f29dbc25Smrg 0x0360, 0x0360, 0x0368, 0x036B, 0x038B, 0x038B, 478f29dbc25Smrg /* vertical timings */ 479f29dbc25Smrg 0x00618560, /* freq = 97.521 MHz */ 480f29dbc25Smrg }, 481f29dbc25Smrg 482f29dbc25Smrg { 483f29dbc25Smrg GFX_MODE_72HZ | /* refresh rate = 70 */ 484f29dbc25Smrg GFX_MODE_8BPP | GFX_MODE_12BPP | GFX_MODE_15BPP | 485f29dbc25Smrg /* all BPP valid */ 486f29dbc25Smrg GFX_MODE_16BPP | GFX_MODE_24BPP, 487f29dbc25Smrg 0x0480, 0x0480, 0x04C8, 0x0548, 0x0610, 0x0610, 488f29dbc25Smrg /* horizontal timings */ 489f29dbc25Smrg 0x0360, 0x0360, 0x0367, 0x036A, 0x038B, 0x038B, 490f29dbc25Smrg /* vertical timings */ 491f29dbc25Smrg 0x00656B85, /* freq = 101.42 MHz */ 492f29dbc25Smrg }, 493f29dbc25Smrg 494f29dbc25Smrg { 495f29dbc25Smrg GFX_MODE_75HZ | /* refresh rate = 75 */ 496f29dbc25Smrg GFX_MODE_8BPP | GFX_MODE_12BPP | GFX_MODE_15BPP | 497f29dbc25Smrg /* all BPP valid */ 498f29dbc25Smrg GFX_MODE_16BPP | GFX_MODE_24BPP, 499f29dbc25Smrg 0x0480, 0x0480, 0x04C0, 0x0540, 0x0640, 0x0640, 500f29dbc25Smrg /* horizontal timings */ 501f29dbc25Smrg 0x0360, 0x0360, 0x0361, 0x0364, 0x0384, 0x0384, 502f29dbc25Smrg /* vertical timings */ 503f29dbc25Smrg 0x006C0000, /* freq = 108.00 MHz */ 504f29dbc25Smrg }, 505f29dbc25Smrg 506f29dbc25Smrg { 507f29dbc25Smrg GFX_MODE_85HZ | /* refresh rate = 85 */ 508f29dbc25Smrg GFX_MODE_8BPP | GFX_MODE_12BPP | GFX_MODE_15BPP | 509f29dbc25Smrg /* all BPP valid */ 510f29dbc25Smrg GFX_MODE_16BPP | GFX_MODE_24BPP, 511f29dbc25Smrg 0x0480, 0x0480, 0x04C8, 0x0548, 0x0610, 0x0610, 512f29dbc25Smrg /* horizontal timings */ 513f29dbc25Smrg 0x0360, 0x0360, 0x0363, 0x0366, 0x038B, 0x038B, 514f29dbc25Smrg /* vertical timings */ 515f29dbc25Smrg 0x0077A666, /* freq = 119.65 MHz */ 516f29dbc25Smrg }, 517f29dbc25Smrg 518f29dbc25Smrg { 519f29dbc25Smrg GFX_MODE_90HZ | /* refresh rate = 90 */ 520f29dbc25Smrg GFX_MODE_8BPP | GFX_MODE_12BPP | GFX_MODE_15BPP | 521f29dbc25Smrg /* all BPP valid */ 522f29dbc25Smrg GFX_MODE_16BPP | GFX_MODE_24BPP, 523f29dbc25Smrg 0x0480, 0x0480, 0x04D0, 0x0550, 0x0620, 0x0620, 524f29dbc25Smrg /* horizontal timings */ 525f29dbc25Smrg 0x0360, 0x0360, 0x0363, 0x0366, 0x038E, 0x038E, 526f29dbc25Smrg /* vertical timings */ 527f29dbc25Smrg 0x00806666, /* freq = 128.40 MHz */ 528f29dbc25Smrg }, 529f29dbc25Smrg 530f29dbc25Smrg { 531f29dbc25Smrg GFX_MODE_100HZ | /* refresh rate = 100 */ 532f29dbc25Smrg GFX_MODE_8BPP | GFX_MODE_12BPP | GFX_MODE_15BPP | 533f29dbc25Smrg /* all BPP valid */ 534f29dbc25Smrg GFX_MODE_16BPP | GFX_MODE_24BPP, 535f29dbc25Smrg 0x0480, 0x0480, 0x04D0, 0x0550, 0x0620, 0x0620, 536f29dbc25Smrg /* horizontal timings */ 537f29dbc25Smrg 0x0360, 0x0360, 0x0365, 0x0368, 0x0398, 0x0398, 538f29dbc25Smrg /* vertical timings */ 539f29dbc25Smrg 0x00906147, /* freq = 144.38 MHz */ 540f29dbc25Smrg }, 541f29dbc25Smrg 542f29dbc25Smrg/* 1280x1024 */ 543f29dbc25Smrg 544f29dbc25Smrg { 545f29dbc25Smrg GFX_MODE_60HZ | /* refresh rate = 60 */ 546f29dbc25Smrg GFX_MODE_8BPP | GFX_MODE_12BPP | GFX_MODE_15BPP | 547f29dbc25Smrg /* all BPP valid */ 548f29dbc25Smrg GFX_MODE_16BPP | GFX_MODE_24BPP, 549f29dbc25Smrg 0x0500, 0x0500, 0x0530, 0x05A0, 0x0698, 0x0698, 550f29dbc25Smrg /* horizontal timings */ 551f29dbc25Smrg 0x0400, 0x0400, 0x0401, 0x0404, 0x042A, 0x042A, 552f29dbc25Smrg /* vertical timings */ 553f29dbc25Smrg 0x006C0000, /* freq = 108.0 MHz */ 554f29dbc25Smrg }, 555f29dbc25Smrg 556f29dbc25Smrg { 557f29dbc25Smrg GFX_MODE_70HZ | /* refresh rate = 70 */ 558f29dbc25Smrg GFX_MODE_8BPP | GFX_MODE_12BPP | GFX_MODE_15BPP | 559f29dbc25Smrg /* all BPP valid */ 560f29dbc25Smrg GFX_MODE_16BPP | GFX_MODE_24BPP, 561f29dbc25Smrg 0x0500, 0x0500, 0x0558, 0x05E0, 0x06C0, 0x06C0, 562f29dbc25Smrg /* horizontal timings */ 563f29dbc25Smrg 0x0400, 0x0400, 0x040A, 0x040D, 0x0433, 0x0433, 564f29dbc25Smrg /* vertical timings */ 565f29dbc25Smrg 0x00821999, /* freq = 130.1 MHz */ 566f29dbc25Smrg }, 567f29dbc25Smrg 568f29dbc25Smrg { 569f29dbc25Smrg GFX_MODE_72HZ | /* refresh rate = 72 */ 570f29dbc25Smrg GFX_MODE_8BPP | GFX_MODE_12BPP | GFX_MODE_15BPP | 571f29dbc25Smrg /* all BPP valid */ 572f29dbc25Smrg GFX_MODE_16BPP | GFX_MODE_24BPP, 573f29dbc25Smrg 0x0500, 0x0500, 0x0558, 0x05E0, 0x06C0, 0x06C0, 574f29dbc25Smrg /* horizontal timings */ 575f29dbc25Smrg 0x0400, 0x0400, 0x0407, 0x040A, 0x0431, 0x0431, 576f29dbc25Smrg /* vertical timings */ 577f29dbc25Smrg 0x00858000, /* freq = 133.5 MHz */ 578f29dbc25Smrg }, 579f29dbc25Smrg 580f29dbc25Smrg { 581f29dbc25Smrg GFX_MODE_75HZ | /* refresh rate = 75 */ 582f29dbc25Smrg GFX_MODE_8BPP | GFX_MODE_12BPP | GFX_MODE_15BPP | 583f29dbc25Smrg /* all BPP valid */ 584f29dbc25Smrg GFX_MODE_16BPP | GFX_MODE_24BPP, 585f29dbc25Smrg 0x0500, 0x0500, 0x0510, 0x05A0, 0x0698, 0x0698, 586f29dbc25Smrg /* horizontal timings */ 587f29dbc25Smrg 0x0400, 0x0400, 0x0401, 0x0404, 0x042A, 0x042A, 588f29dbc25Smrg /* vertical timings */ 589f29dbc25Smrg 0x00870000, /* freq = 135.0 MHz */ 590f29dbc25Smrg }, 591f29dbc25Smrg 592f29dbc25Smrg { 593f29dbc25Smrg GFX_MODE_85HZ | /* refresh rate = 85 */ 594f29dbc25Smrg GFX_MODE_8BPP | GFX_MODE_12BPP | GFX_MODE_15BPP | 595f29dbc25Smrg /* all BPP valid */ 596f29dbc25Smrg GFX_MODE_16BPP | GFX_MODE_24BPP, 597f29dbc25Smrg 0x0500, 0x0500, 0x0540, 0x05E0, 0x06C0, 0x06C0, 598f29dbc25Smrg /* horizontal timings */ 599f29dbc25Smrg 0x0400, 0x0400, 0x0401, 0x0404, 0x0430, 0x0430, 600f29dbc25Smrg /* vertical timings */ 601f29dbc25Smrg 0x009D8000, /* freq = 157.5 MHz */ 602f29dbc25Smrg }, 603f29dbc25Smrg 604f29dbc25Smrg { 605f29dbc25Smrg GFX_MODE_90HZ | /* refresh rate = 90 */ 606f29dbc25Smrg GFX_MODE_8BPP | GFX_MODE_12BPP | GFX_MODE_15BPP | 607f29dbc25Smrg /* all BPP valid */ 608f29dbc25Smrg GFX_MODE_16BPP | GFX_MODE_24BPP, 609f29dbc25Smrg 0x0500, 0x0500, 0x0560, 0x05E8, 0x06D0, 0x06D0, 610f29dbc25Smrg /* horizontal timings */ 611f29dbc25Smrg 0x0400, 0x0400, 0x0401, 0x0404, 0x0436, 0x0436, 612f29dbc25Smrg /* vertical timings */ 613f29dbc25Smrg 0x00A933F7, /* freq = 169.203 MHz */ 614f29dbc25Smrg }, 615f29dbc25Smrg 616f29dbc25Smrg { 617f29dbc25Smrg GFX_MODE_100HZ | /* refresh rate = 100 */ 618f29dbc25Smrg GFX_MODE_8BPP | GFX_MODE_12BPP | GFX_MODE_15BPP | 619f29dbc25Smrg /* all BPP valid */ 620f29dbc25Smrg GFX_MODE_16BPP | GFX_MODE_24BPP, 621f29dbc25Smrg 0x0500, 0x0500, 0x0560, 0x05F0, 0x06E0, 0x06E0, 622f29dbc25Smrg /* horizontal timings */ 623f29dbc25Smrg 0x0400, 0x0400, 0x0401, 0x0404, 0x043D, 0x043D, 624f29dbc25Smrg /* vertical timings */ 625f29dbc25Smrg 0x00BEF5C2, /* freq = 190.96 MHz */ 626f29dbc25Smrg }, 627f29dbc25Smrg 628f29dbc25Smrg/*********************************/ 629f29dbc25Smrg/* BEGIN REDCLOUD-SPECIFIC MODES */ 630f29dbc25Smrg/*-------------------------------*/ 631f29dbc25Smrg 632f29dbc25Smrg/* 1600 x 1200 */ 633f29dbc25Smrg 634f29dbc25Smrg { 635f29dbc25Smrg GFX_MODE_60HZ | /* refresh rate = 60 */ 636f29dbc25Smrg GFX_MODE_8BPP | GFX_MODE_12BPP | GFX_MODE_15BPP | 637f29dbc25Smrg /* all BPP valid */ 638f29dbc25Smrg GFX_MODE_16BPP | GFX_MODE_24BPP, 639f29dbc25Smrg 0x0640, 0x0640, 0x0680, 0x0740, 0x0870, 0x0870, 640f29dbc25Smrg /* horizontal timings */ 641f29dbc25Smrg 0x04B0, 0x04B0, 0x04B1, 0x04B4, 0x04E2, 0x04E2, 642f29dbc25Smrg /* vertical timings */ 643f29dbc25Smrg 0x00A20000, /* freq = 162.0 MHz */ 644f29dbc25Smrg }, 645f29dbc25Smrg 646f29dbc25Smrg { 647f29dbc25Smrg GFX_MODE_70HZ | /* refresh rate = 70 */ 648f29dbc25Smrg GFX_MODE_8BPP | GFX_MODE_12BPP | GFX_MODE_15BPP | 649f29dbc25Smrg /* all BPP valid */ 650f29dbc25Smrg GFX_MODE_16BPP | GFX_MODE_24BPP, 651f29dbc25Smrg 0x0640, 0x0640, 0x0680, 0x0740, 0x0870, 0x0870, 652f29dbc25Smrg /* horizontal timings */ 653f29dbc25Smrg 0x04B0, 0x04B0, 0x04B1, 0x04B4, 0x04E2, 0x04E2, 654f29dbc25Smrg /* vertical timings */ 655f29dbc25Smrg 0x00BD0000, /* freq = 189.0 MHz */ 656f29dbc25Smrg }, 657f29dbc25Smrg 658f29dbc25Smrg { 659f29dbc25Smrg GFX_MODE_72HZ | /* refresh rate = 72 */ 660f29dbc25Smrg GFX_MODE_8BPP | GFX_MODE_12BPP | GFX_MODE_15BPP | 661f29dbc25Smrg /* all BPP valid */ 662f29dbc25Smrg GFX_MODE_16BPP | GFX_MODE_24BPP, 663f29dbc25Smrg 0x0640, 0x0640, 0x06B0, 0x0760, 0x0880, 0x0880, 664f29dbc25Smrg /* horizontal timings */ 665f29dbc25Smrg 0x04B0, 0x04B0, 0x04BD, 0x04C0, 0x04EF, 0x04EF, 666f29dbc25Smrg /* vertical timings */ 667f29dbc25Smrg 0x00C60000, /* freq = 198.0 MHz */ 668f29dbc25Smrg }, 669f29dbc25Smrg 670f29dbc25Smrg { 671f29dbc25Smrg GFX_MODE_75HZ | /* refresh rate = 75 */ 672f29dbc25Smrg GFX_MODE_8BPP | GFX_MODE_12BPP | GFX_MODE_15BPP | 673f29dbc25Smrg /* all BPP valid */ 674f29dbc25Smrg GFX_MODE_16BPP | GFX_MODE_24BPP, 675f29dbc25Smrg 0x0640, 0x0640, 0x0680, 0x0740, 0x0870, 0x0870, 676f29dbc25Smrg /* horizontal timings */ 677f29dbc25Smrg 0x04B0, 0x04B0, 0x04B1, 0x04B4, 0x04E2, 0x04E2, 678f29dbc25Smrg /* vertical timings */ 679f29dbc25Smrg 0x00CA8000, /* freq = 202.5 MHz */ 680f29dbc25Smrg }, 681f29dbc25Smrg 682f29dbc25Smrg { 683f29dbc25Smrg GFX_MODE_85HZ | /* refresh rate = 85 */ 684f29dbc25Smrg GFX_MODE_8BPP | GFX_MODE_12BPP | GFX_MODE_15BPP | 685f29dbc25Smrg /* all BPP valid */ 686f29dbc25Smrg GFX_MODE_16BPP | GFX_MODE_24BPP, 687f29dbc25Smrg 0x0640, 0x0640, 0x0680, 0x0740, 0x0870, 0x0870, 688f29dbc25Smrg /* horizontal timings */ 689f29dbc25Smrg 0x04B0, 0x04B0, 0x04B1, 0x04B4, 0x04E2, 0x04E2, 690f29dbc25Smrg /* vertical timings */ 691f29dbc25Smrg 0x00E58000, /* freq = 229.5 MHz */ 692f29dbc25Smrg }, 693f29dbc25Smrg}; 694f29dbc25Smrg 695f29dbc25Smrg/* UPDATE THIS VARIABLE WHENEVER NEW REDCLOUD-SPECIFIC MODES ARE ADDED */ 696f29dbc25Smrg 697f29dbc25Smrg#define REDCLOUD_SPECIFIC_MODES 4 698f29dbc25Smrg 699f29dbc25Smrg#define NUM_RC_DISPLAY_MODES sizeof(DisplayParams) / sizeof(DISPLAYMODE) 700f29dbc25Smrg#define NUM_GX_DISPLAY_MODES (NUM_RC_DISPLAY_MODES - REDCLOUD_SPECIFIC_MODES) 701f29dbc25Smrg 702f29dbc25SmrgFIXEDTIMINGS FixedParams[] = { 703f29dbc25Smrg/* 640x480 Panel */ 704f29dbc25Smrg {640, 480, 640, 480, 705f29dbc25Smrg 0x0280, 0x0280, 0x0290, 0x02E8, 0x0318, 0x0320, 706f29dbc25Smrg 0x01E0, 0x01E0, 0x01EA, 0x01EC, 0x0205, 0x020D, 707f29dbc25Smrg 0x00192CCC, 708f29dbc25Smrg }, 709f29dbc25Smrg 710f29dbc25Smrg {640, 480, 800, 600, 711f29dbc25Smrg 0x0280, 0x0280, 0x0290, 0x02E8, 0x0318, 0x0320, 712f29dbc25Smrg 0x01E0, 0x01E0, 0x01EA, 0x01EC, 0x0205, 0x020D, 713f29dbc25Smrg 0x00192CCC, 714f29dbc25Smrg }, 715f29dbc25Smrg 716f29dbc25Smrg {640, 480, 1024, 768, 717f29dbc25Smrg 0x0280, 0x0280, 0x0290, 0x02E8, 0x0318, 0x0320, 718f29dbc25Smrg 0x01E0, 0x01E0, 0x01EA, 0x01EC, 0x0205, 0x020D, 719f29dbc25Smrg 0x00192CCC, 720f29dbc25Smrg }, 721f29dbc25Smrg 722f29dbc25Smrg {640, 480, 1152, 864, 723f29dbc25Smrg 0x0280, 0x0280, 0x0290, 0x02E8, 0x0318, 0x0320, 724f29dbc25Smrg 0x01E0, 0x01E0, 0x01EA, 0x01EC, 0x0205, 0x020D, 725f29dbc25Smrg 0x00192CCC, 726f29dbc25Smrg }, 727f29dbc25Smrg 728f29dbc25Smrg {640, 480, 1280, 1024, 729f29dbc25Smrg 0x0280, 0x0280, 0x0290, 0x02E8, 0x0318, 0x0320, 730f29dbc25Smrg 0x01E0, 0x01E0, 0x01EA, 0x01EC, 0x0205, 0x020D, 731f29dbc25Smrg 0x00192CCC, 732f29dbc25Smrg }, 733f29dbc25Smrg 734f29dbc25Smrg {640, 480, 1600, 1200, 735f29dbc25Smrg 0x0280, 0x0280, 0x0290, 0x02E8, 0x0318, 0x0320, 736f29dbc25Smrg 0x01E0, 0x01E0, 0x01EA, 0x01EC, 0x0205, 0x020D, 737f29dbc25Smrg 0x00192CCC, 738f29dbc25Smrg }, 739f29dbc25Smrg 740f29dbc25Smrg/* 800x600 Panel */ 741f29dbc25Smrg {800, 600, 640, 480, 742f29dbc25Smrg 0x0280, 0x2d0, 0x2f8, 0x378, 0x3d0, 0x420, 743f29dbc25Smrg 0x1e0, 0x21c, 0x21d, 0x221, 0x238, 0x274, 744f29dbc25Smrg 0x00280000, 745f29dbc25Smrg }, 746f29dbc25Smrg 747f29dbc25Smrg {800, 600, 800, 600, 748f29dbc25Smrg 0x320, 0x320, 0x348, 0x3c8, 0x420, 0x420, 749f29dbc25Smrg 0x258, 0x258, 0x259, 0x25d, 0x274, 0x274, 750f29dbc25Smrg 0x00280000, 751f29dbc25Smrg }, 752f29dbc25Smrg 753f29dbc25Smrg {800, 600, 1024, 768, 754f29dbc25Smrg 0x320, 0x320, 0x348, 0x3c8, 0x420, 0x420, 755f29dbc25Smrg 0x258, 0x258, 0x259, 0x25d, 0x274, 0x274, 756f29dbc25Smrg 0x00280000, 757f29dbc25Smrg }, 758f29dbc25Smrg 759f29dbc25Smrg {800, 600, 1152, 864, 760f29dbc25Smrg 0x320, 0x320, 0x348, 0x3c8, 0x420, 0x420, 761f29dbc25Smrg 0x258, 0x258, 0x259, 0x25d, 0x274, 0x274, 762f29dbc25Smrg 0x00280000, 763f29dbc25Smrg }, 764f29dbc25Smrg 765f29dbc25Smrg {800, 600, 1280, 1024, 766f29dbc25Smrg 0x320, 0x320, 0x348, 0x3c8, 0x420, 0x420, 767f29dbc25Smrg 0x258, 0x258, 0x259, 0x25d, 0x274, 0x274, 768f29dbc25Smrg 0x00280000, 769f29dbc25Smrg }, 770f29dbc25Smrg 771f29dbc25Smrg {800, 600, 1600, 1200, 772f29dbc25Smrg 0x320, 0x320, 0x348, 0x3c8, 0x420, 0x420, 773f29dbc25Smrg 0x258, 0x258, 0x259, 0x25d, 0x274, 0x274, 774f29dbc25Smrg 0x00280000, 775f29dbc25Smrg }, 776f29dbc25Smrg 777f29dbc25Smrg/* 1024x768 panel */ 778f29dbc25Smrg {1024, 768, 640, 480, 779f29dbc25Smrg 0x0280, 0x340, 0x368, 0x3e8, 0x480, 0x540, 780f29dbc25Smrg 0x1e0, 0x270, 0x271, 0x275, 0x296, 0x326, 781f29dbc25Smrg 0x00410000, 782f29dbc25Smrg }, 783f29dbc25Smrg 784f29dbc25Smrg {1024, 768, 800, 600, 785f29dbc25Smrg 0x0320, 0x390, 0x3b8, 0x438, 0x4D0, 0x540, 786f29dbc25Smrg 0x258, 0x2ac, 0x2ad, 0x2b1, 0x2D2, 0x326, 787f29dbc25Smrg 0x00410000, 788f29dbc25Smrg }, 789f29dbc25Smrg 790f29dbc25Smrg {1024, 768, 1024, 768, 791f29dbc25Smrg 0x0400, 0x0400, 0x0418, 0x04A0, 0x0540, 0x0540, 792f29dbc25Smrg 0x0300, 0x0300, 0x0303, 0x0309, 0x0326, 0x0326, 793f29dbc25Smrg 0x00410000, 794f29dbc25Smrg }, 795f29dbc25Smrg 796f29dbc25Smrg {1024, 768, 1152, 864, 797f29dbc25Smrg 0x0400, 0x0400, 0x0418, 0x04A0, 0x0540, 0x0540, 798f29dbc25Smrg 0x0300, 0x0300, 0x0303, 0x0309, 0x0326, 0x0326, 799f29dbc25Smrg 0x00410000, 800f29dbc25Smrg }, 801f29dbc25Smrg 802f29dbc25Smrg {1024, 768, 1280, 1024, 803f29dbc25Smrg 0x0400, 0x0400, 0x0418, 0x04A0, 0x0540, 0x0540, 804f29dbc25Smrg 0x0300, 0x0300, 0x0303, 0x0309, 0x0326, 0x0326, 805f29dbc25Smrg 0x00410000, 806f29dbc25Smrg }, 807f29dbc25Smrg 808f29dbc25Smrg {1024, 768, 1600, 1200, 809f29dbc25Smrg 0x0400, 0x0400, 0x0418, 0x04A0, 0x0540, 0x0540, 810f29dbc25Smrg 0x0300, 0x0300, 0x0303, 0x0309, 0x0326, 0x0326, 811f29dbc25Smrg 0x00410000, 812f29dbc25Smrg }, 813f29dbc25Smrg 814f29dbc25Smrg/* 1280x1024 panel */ 815f29dbc25Smrg {1280, 1024, 640, 480, 816f29dbc25Smrg 640, 960, 1008, 1120, 1368, 1688, 817f29dbc25Smrg 480, 752, 753, 756, 794, 1066, 818f29dbc25Smrg 0x006C0000, 819f29dbc25Smrg }, 820f29dbc25Smrg 821f29dbc25Smrg {1280, 1024, 800, 600, 822f29dbc25Smrg 800, 1040, 1088, 1200, 1448, 1688, 823f29dbc25Smrg 600, 812, 813, 816, 854, 1066, 824f29dbc25Smrg 0x006C0000, 825f29dbc25Smrg }, 826f29dbc25Smrg 827f29dbc25Smrg {1280, 1024, 1024, 768, 828f29dbc25Smrg 1024, 1152, 1200, 1312, 1560, 1688, 829f29dbc25Smrg 768, 896, 897, 900, 938, 1066, 830f29dbc25Smrg 0x006C0000, 831f29dbc25Smrg }, 832f29dbc25Smrg 833f29dbc25Smrg {1280, 1024, 1152, 864, 834f29dbc25Smrg 1152, 1216, 1264, 1376, 1624, 1688, 835f29dbc25Smrg 864, 944, 945, 948, 986, 1066, 836f29dbc25Smrg 0x006C0000, 837f29dbc25Smrg }, 838f29dbc25Smrg 839f29dbc25Smrg {1280, 1024, 1280, 1024, 840f29dbc25Smrg 1280, 1280, 1328, 1440, 1688, 1688, 841f29dbc25Smrg 1024, 1024, 1025, 1028, 1066, 1066, 842f29dbc25Smrg 0x006C0000, 843f29dbc25Smrg }, 844f29dbc25Smrg 845f29dbc25Smrg}; 846f29dbc25Smrg 847f29dbc25Smrg#define NUM_FIXED_TIMINGS_MODES sizeof(FixedParams)/sizeof(FIXEDTIMINGS) 848f29dbc25Smrg 849f29dbc25Smrg/* INCLUDE SUPPORT FOR FIRST GENERATION, IF SPECIFIED. */ 850f29dbc25Smrg 851f29dbc25Smrg#if GFX_DISPLAY_GU1 852f29dbc25Smrg#include "disp_gu1.c" 853f29dbc25Smrg#endif 854f29dbc25Smrg 855f29dbc25Smrg/* INCLUDE SUPPORT FOR SECOND GENERATION, IF SPECIFIED. */ 856f29dbc25Smrg 857f29dbc25Smrg#if GFX_DISPLAY_GU2 858f29dbc25Smrg#include "disp_gu2.c" 859f29dbc25Smrg#endif 860f29dbc25Smrg 861f29dbc25Smrg/*--------------------------------------------------------------------------- 862f29dbc25Smrg * gfx_reset_timing_lock 863f29dbc25Smrg * 864f29dbc25Smrg * This routine resets the timing change lock. The lock can only be set by 865f29dbc25Smrg * setting a flag when calling mode set. 866f29dbc25Smrg *--------------------------------------------------------------------------- 867f29dbc25Smrg */ 868f29dbc25Smrgvoid 869f29dbc25Smrggfx_reset_timing_lock(void) 870f29dbc25Smrg{ 871f29dbc25Smrg gfx_timing_lock = 0; 872f29dbc25Smrg} 873f29dbc25Smrg 874f29dbc25Smrg/* WRAPPERS IF DYNAMIC SELECTION */ 875f29dbc25Smrg/* Extra layer to call either first or second generation routines. */ 876f29dbc25Smrg 877f29dbc25Smrg#if GFX_DISPLAY_DYNAMIC 878f29dbc25Smrg 879f29dbc25Smrg/*--------------------------------------------------------------------------- 880f29dbc25Smrg * gfx_set_display_bpp 881f29dbc25Smrg *--------------------------------------------------------------------------- 882f29dbc25Smrg */ 883f29dbc25Smrgint 884f29dbc25Smrggfx_set_display_bpp(unsigned short bpp) 885f29dbc25Smrg{ 886f29dbc25Smrg int retval = 0; 887f29dbc25Smrg 888f29dbc25Smrg#if GFX_DISPLAY_GU1 889f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 890f29dbc25Smrg retval = gu1_set_display_bpp(bpp); 891f29dbc25Smrg#endif 892f29dbc25Smrg#if GFX_DISPLAY_GU2 893f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 894f29dbc25Smrg retval = gu2_set_display_bpp(bpp); 895f29dbc25Smrg#endif 896f29dbc25Smrg return (retval); 897f29dbc25Smrg} 898f29dbc25Smrg 899f29dbc25Smrg/*--------------------------------------------------------------------------- 900f29dbc25Smrg * gfx_is_display_mode_supported 901f29dbc25Smrg * check if given mode supported, 902f29dbc25Smrg * return the supported mode on success, -1 on fail 903f29dbc25Smrg *--------------------------------------------------------------------------- 904f29dbc25Smrg */ 905f29dbc25Smrgint 906f29dbc25Smrggfx_is_display_mode_supported(int xres, int yres, int bpp, int hz) 907f29dbc25Smrg{ 908f29dbc25Smrg int retval = -1; 909f29dbc25Smrg 910f29dbc25Smrg#if GFX_DISPLAY_GU1 911f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 912f29dbc25Smrg retval = gu1_is_display_mode_supported(xres, yres, bpp, hz); 913f29dbc25Smrg#endif 914f29dbc25Smrg#if GFX_DISPLAY_GU2 915f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 916f29dbc25Smrg retval = gu2_is_display_mode_supported(xres, yres, bpp, hz); 917f29dbc25Smrg#endif 918f29dbc25Smrg return (retval); 919f29dbc25Smrg} 920f29dbc25Smrg 921f29dbc25Smrg/*--------------------------------------------------------------------------- 922f29dbc25Smrg * gfx_set_display_mode 923f29dbc25Smrg *--------------------------------------------------------------------------- 924f29dbc25Smrg */ 925f29dbc25Smrgint 926f29dbc25Smrggfx_set_display_mode(int xres, int yres, int bpp, int hz) 927f29dbc25Smrg{ 928f29dbc25Smrg int retval = 0; 929f29dbc25Smrg 930f29dbc25Smrg#if GFX_DISPLAY_GU1 931f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 932f29dbc25Smrg retval = gu1_set_display_mode(xres, yres, bpp, hz); 933f29dbc25Smrg#endif 934f29dbc25Smrg#if GFX_DISPLAY_GU2 935f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 936f29dbc25Smrg retval = gu2_set_display_mode(xres, yres, bpp, hz); 937f29dbc25Smrg#endif 938f29dbc25Smrg return (retval); 939f29dbc25Smrg} 940f29dbc25Smrg 941f29dbc25Smrg/*--------------------------------------------------------------------------- 942f29dbc25Smrg * gfx_set_display_timings 943f29dbc25Smrg *--------------------------------------------------------------------------- 944f29dbc25Smrg */ 945f29dbc25Smrgint 946f29dbc25Smrggfx_set_display_timings(unsigned short bpp, unsigned short flags, 947f29dbc25Smrg unsigned short hactive, unsigned short hblankstart, 948f29dbc25Smrg unsigned short hsyncstart, unsigned short hsyncend, 949f29dbc25Smrg unsigned short hblankend, unsigned short htotal, 950f29dbc25Smrg unsigned short vactive, unsigned short vblankstart, 951f29dbc25Smrg unsigned short vsyncstart, unsigned short vsyncend, 952f29dbc25Smrg unsigned short vblankend, unsigned short vtotal, unsigned long frequency) 953f29dbc25Smrg{ 954f29dbc25Smrg int retval = 0; 955f29dbc25Smrg 956f29dbc25Smrg#if GFX_DISPLAY_GU1 957f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 958f29dbc25Smrg retval = gu1_set_display_timings(bpp, flags, 959f29dbc25Smrg hactive, hblankstart, hsyncstart, hsyncend, hblankend, htotal, 960f29dbc25Smrg vactive, vblankstart, vsyncstart, vsyncend, vblankend, vtotal, 961f29dbc25Smrg frequency); 962f29dbc25Smrg#endif 963f29dbc25Smrg#if GFX_DISPLAY_GU2 964f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 965f29dbc25Smrg retval = gu2_set_display_timings(bpp, flags, 966f29dbc25Smrg hactive, hblankstart, hsyncstart, hsyncend, hblankend, htotal, 967f29dbc25Smrg vactive, vblankstart, vsyncstart, vsyncend, vblankend, vtotal, 968f29dbc25Smrg frequency); 969f29dbc25Smrg#endif 970f29dbc25Smrg return (retval); 971f29dbc25Smrg} 972f29dbc25Smrg 973f29dbc25Smrg/*--------------------------------------------------------------------------- 974f29dbc25Smrg * gfx_set_display_pitch 975f29dbc25Smrg *--------------------------------------------------------------------------- 976f29dbc25Smrg */ 977f29dbc25Smrgvoid 978f29dbc25Smrggfx_set_display_pitch(unsigned short pitch) 979f29dbc25Smrg{ 980f29dbc25Smrg#if GFX_DISPLAY_GU1 981f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 982f29dbc25Smrg gu1_set_display_pitch(pitch); 983f29dbc25Smrg#endif 984f29dbc25Smrg#if GFX_DISPLAY_GU2 985f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 986f29dbc25Smrg gu2_set_display_pitch(pitch); 987f29dbc25Smrg#endif 988f29dbc25Smrg} 989f29dbc25Smrg 990f29dbc25Smrg/*--------------------------------------------------------------------------- 991f29dbc25Smrg * gfx_set_display_offset 992f29dbc25Smrg *--------------------------------------------------------------------------- 993f29dbc25Smrg */ 994f29dbc25Smrgvoid 995f29dbc25Smrggfx_set_display_offset(unsigned long offset) 996f29dbc25Smrg{ 997f29dbc25Smrg#if GFX_DISPLAY_GU1 998f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 999f29dbc25Smrg gu1_set_display_offset(offset); 1000f29dbc25Smrg#endif 1001f29dbc25Smrg#if GFX_DISPLAY_GU2 1002f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 1003f29dbc25Smrg gu2_set_display_offset(offset); 1004f29dbc25Smrg#endif 1005f29dbc25Smrg} 1006f29dbc25Smrg 1007f29dbc25Smrg/*--------------------------------------------------------------------------- 1008f29dbc25Smrg * gfx_set_display_palette_entry 1009f29dbc25Smrg *--------------------------------------------------------------------------- 1010f29dbc25Smrg */ 1011f29dbc25Smrgint 1012f29dbc25Smrggfx_set_display_palette_entry(unsigned long index, unsigned long palette) 1013f29dbc25Smrg{ 1014f29dbc25Smrg int status = 0; 1015f29dbc25Smrg 1016f29dbc25Smrg#if GFX_DISPLAY_GU1 1017f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 1018f29dbc25Smrg status = gu1_set_display_palette_entry(index, palette); 1019f29dbc25Smrg#endif 1020f29dbc25Smrg#if GFX_DISPLAY_GU2 1021f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 1022f29dbc25Smrg status = gu2_set_display_palette_entry(index, palette); 1023f29dbc25Smrg#endif 1024f29dbc25Smrg return (status); 1025f29dbc25Smrg} 1026f29dbc25Smrg 1027f29dbc25Smrg/*--------------------------------------------------------------------------- 1028f29dbc25Smrg * gfx_set_display_palette 1029f29dbc25Smrg *--------------------------------------------------------------------------- 1030f29dbc25Smrg */ 1031f29dbc25Smrgint 1032f29dbc25Smrggfx_set_display_palette(unsigned long *palette) 1033f29dbc25Smrg{ 1034f29dbc25Smrg int status = 0; 1035f29dbc25Smrg 1036f29dbc25Smrg#if GFX_DISPLAY_GU1 1037f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 1038f29dbc25Smrg status = gu1_set_display_palette(palette); 1039f29dbc25Smrg#endif 1040f29dbc25Smrg#if GFX_DISPLAY_GU2 1041f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 1042f29dbc25Smrg status = gu2_set_display_palette(palette); 1043f29dbc25Smrg#endif 1044f29dbc25Smrg return (status); 1045f29dbc25Smrg} 1046f29dbc25Smrg 1047f29dbc25Smrg/*--------------------------------------------------------------------------- 1048f29dbc25Smrg * gfx_set_cursor_enable 1049f29dbc25Smrg *--------------------------------------------------------------------------- 1050f29dbc25Smrg */ 1051f29dbc25Smrgvoid 1052f29dbc25Smrggfx_set_cursor_enable(int enable) 1053f29dbc25Smrg{ 1054f29dbc25Smrg#if GFX_DISPLAY_GU1 1055f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 1056f29dbc25Smrg gu1_set_cursor_enable(enable); 1057f29dbc25Smrg#endif 1058f29dbc25Smrg#if GFX_DISPLAY_GU2 1059f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 1060f29dbc25Smrg gu2_set_cursor_enable(enable); 1061f29dbc25Smrg#endif 1062f29dbc25Smrg} 1063f29dbc25Smrg 1064f29dbc25Smrg/*--------------------------------------------------------------------------- 1065f29dbc25Smrg * gfx_set_cursor_colors 1066f29dbc25Smrg *--------------------------------------------------------------------------- 1067f29dbc25Smrg */ 1068f29dbc25Smrgvoid 1069f29dbc25Smrggfx_set_cursor_colors(unsigned long bkcolor, unsigned long fgcolor) 1070f29dbc25Smrg{ 1071f29dbc25Smrg#if GFX_DISPLAY_GU1 1072f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 1073f29dbc25Smrg gu1_set_cursor_colors(bkcolor, fgcolor); 1074f29dbc25Smrg#endif 1075f29dbc25Smrg#if GFX_DISPLAY_GU2 1076f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 1077f29dbc25Smrg gu2_set_cursor_colors(bkcolor, fgcolor); 1078f29dbc25Smrg#endif 1079f29dbc25Smrg} 1080f29dbc25Smrg 1081f29dbc25Smrg/*--------------------------------------------------------------------------- 1082f29dbc25Smrg * gfx_set_cursor_position 1083f29dbc25Smrg *--------------------------------------------------------------------------- 1084f29dbc25Smrg */ 1085f29dbc25Smrgvoid 1086f29dbc25Smrggfx_set_cursor_position(unsigned long memoffset, 1087f29dbc25Smrg unsigned short xpos, unsigned short ypos, 1088f29dbc25Smrg unsigned short xhotspot, unsigned short yhotspot) 1089f29dbc25Smrg{ 1090f29dbc25Smrg#if GFX_DISPLAY_GU1 1091f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 1092f29dbc25Smrg gu1_set_cursor_position(memoffset, xpos, ypos, xhotspot, yhotspot); 1093f29dbc25Smrg#endif 1094f29dbc25Smrg#if GFX_DISPLAY_GU2 1095f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 1096f29dbc25Smrg gu2_set_cursor_position(memoffset, xpos, ypos, xhotspot, yhotspot); 1097f29dbc25Smrg#endif 1098f29dbc25Smrg} 1099f29dbc25Smrg 1100f29dbc25Smrg/*--------------------------------------------------------------------------- 1101f29dbc25Smrg * gfx_set_cursor_shape32 1102f29dbc25Smrg *--------------------------------------------------------------------------- 1103f29dbc25Smrg */ 1104f29dbc25Smrgvoid 1105f29dbc25Smrggfx_set_cursor_shape32(unsigned long memoffset, 1106f29dbc25Smrg unsigned long *andmask, unsigned long *xormask) 1107f29dbc25Smrg{ 1108f29dbc25Smrg#if GFX_DISPLAY_GU1 1109f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 1110f29dbc25Smrg gu1_set_cursor_shape32(memoffset, andmask, xormask); 1111f29dbc25Smrg#endif 1112f29dbc25Smrg#if GFX_DISPLAY_GU2 1113f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 1114f29dbc25Smrg gu2_set_cursor_shape32(memoffset, andmask, xormask); 1115f29dbc25Smrg#endif 1116f29dbc25Smrg} 1117f29dbc25Smrg 1118f29dbc25Smrg/*--------------------------------------------------------------------------- 1119f29dbc25Smrg * gfx_set_cursor_shape64 1120f29dbc25Smrg *--------------------------------------------------------------------------- 1121f29dbc25Smrg */ 1122f29dbc25Smrgvoid 1123f29dbc25Smrggfx_set_cursor_shape64(unsigned long memoffset, 1124f29dbc25Smrg unsigned long *andmask, unsigned long *xormask) 1125f29dbc25Smrg{ 1126f29dbc25Smrg#if GFX_DISPLAY_GU2 1127f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 1128f29dbc25Smrg gu2_set_cursor_shape64(memoffset, andmask, xormask); 1129f29dbc25Smrg#endif 1130f29dbc25Smrg} 1131f29dbc25Smrg 1132f29dbc25Smrg/*--------------------------------------------------------------------------- 1133f29dbc25Smrg * gfx_set_icon_enable 1134f29dbc25Smrg *--------------------------------------------------------------------------- 1135f29dbc25Smrg */ 1136f29dbc25Smrgvoid 1137f29dbc25Smrggfx_set_icon_enable(int enable) 1138f29dbc25Smrg{ 1139f29dbc25Smrg#if GFX_DISPLAY_GU2 1140f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 1141f29dbc25Smrg gu2_set_icon_enable(enable); 1142f29dbc25Smrg#endif 1143f29dbc25Smrg} 1144f29dbc25Smrg 1145f29dbc25Smrg/*--------------------------------------------------------------------------- 1146f29dbc25Smrg * gfx_set_icon_colors 1147f29dbc25Smrg *--------------------------------------------------------------------------- 1148f29dbc25Smrg */ 1149f29dbc25Smrgvoid 1150f29dbc25Smrggfx_set_icon_colors(unsigned long color0, unsigned long color1, 1151f29dbc25Smrg unsigned long color2) 1152f29dbc25Smrg{ 1153f29dbc25Smrg#if GFX_DISPLAY_GU2 1154f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 1155f29dbc25Smrg gu2_set_icon_colors(color0, color1, color2); 1156f29dbc25Smrg#endif 1157f29dbc25Smrg} 1158f29dbc25Smrg 1159f29dbc25Smrg/*--------------------------------------------------------------------------- 1160f29dbc25Smrg * gfx_set_icon_position 1161f29dbc25Smrg *--------------------------------------------------------------------------- 1162f29dbc25Smrg */ 1163f29dbc25Smrgvoid 1164f29dbc25Smrggfx_set_icon_position(unsigned long memoffset, unsigned short xpos) 1165f29dbc25Smrg{ 1166f29dbc25Smrg#if GFX_DISPLAY_GU2 1167f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 1168f29dbc25Smrg gu2_set_icon_position(memoffset, xpos); 1169f29dbc25Smrg#endif 1170f29dbc25Smrg} 1171f29dbc25Smrg 1172f29dbc25Smrg/*--------------------------------------------------------------------------- 1173f29dbc25Smrg * gfx_set_icon_shape64 1174f29dbc25Smrg *--------------------------------------------------------------------------- 1175f29dbc25Smrg */ 1176f29dbc25Smrgvoid 1177f29dbc25Smrggfx_set_icon_shape64(unsigned long memoffset, 1178f29dbc25Smrg unsigned long *andmask, unsigned long *xormask, unsigned int lines) 1179f29dbc25Smrg{ 1180f29dbc25Smrg#if GFX_DISPLAY_GU2 1181f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 1182f29dbc25Smrg gu2_set_icon_shape64(memoffset, andmask, xormask, lines); 1183f29dbc25Smrg#endif 1184f29dbc25Smrg} 1185f29dbc25Smrg 1186f29dbc25Smrg/*--------------------------------------------------------------------------- 1187f29dbc25Smrg * gfx_set_compression_enable 1188f29dbc25Smrg *--------------------------------------------------------------------------- 1189f29dbc25Smrg */ 1190f29dbc25Smrgint 1191f29dbc25Smrggfx_set_compression_enable(int enable) 1192f29dbc25Smrg{ 1193f29dbc25Smrg int status = 0; 1194f29dbc25Smrg 1195f29dbc25Smrg#if GFX_DISPLAY_GU1 1196f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 1197f29dbc25Smrg status = gu1_set_compression_enable(enable); 1198f29dbc25Smrg#endif 1199f29dbc25Smrg#if GFX_DISPLAY_GU2 1200f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 1201f29dbc25Smrg status = gu2_set_compression_enable(enable); 1202f29dbc25Smrg#endif 1203f29dbc25Smrg return (status); 1204f29dbc25Smrg} 1205f29dbc25Smrg 1206f29dbc25Smrg/*--------------------------------------------------------------------------- 1207f29dbc25Smrg * gfx_set_compression_offset 1208f29dbc25Smrg *--------------------------------------------------------------------------- 1209f29dbc25Smrg */ 1210f29dbc25Smrgint 1211f29dbc25Smrggfx_set_compression_offset(unsigned long offset) 1212f29dbc25Smrg{ 1213f29dbc25Smrg int status = 0; 1214f29dbc25Smrg 1215f29dbc25Smrg#if GFX_DISPLAY_GU1 1216f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 1217f29dbc25Smrg status = gu1_set_compression_offset(offset); 1218f29dbc25Smrg#endif 1219f29dbc25Smrg#if GFX_DISPLAY_GU2 1220f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 1221f29dbc25Smrg status = gu2_set_compression_offset(offset); 1222f29dbc25Smrg#endif 1223f29dbc25Smrg return (status); 1224f29dbc25Smrg} 1225f29dbc25Smrg 1226f29dbc25Smrg/*--------------------------------------------------------------------------- 1227f29dbc25Smrg * gfx_set_compression_pitch 1228f29dbc25Smrg *--------------------------------------------------------------------------- 1229f29dbc25Smrg */ 1230f29dbc25Smrgint 1231f29dbc25Smrggfx_set_compression_pitch(unsigned short pitch) 1232f29dbc25Smrg{ 1233f29dbc25Smrg int status = 0; 1234f29dbc25Smrg 1235f29dbc25Smrg#if GFX_DISPLAY_GU1 1236f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 1237f29dbc25Smrg status = gu1_set_compression_pitch(pitch); 1238f29dbc25Smrg#endif 1239f29dbc25Smrg#if GFX_DISPLAY_GU2 1240f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 1241f29dbc25Smrg status = gu2_set_compression_pitch(pitch); 1242f29dbc25Smrg#endif 1243f29dbc25Smrg return (status); 1244f29dbc25Smrg} 1245f29dbc25Smrg 1246f29dbc25Smrg/*--------------------------------------------------------------------------- 1247f29dbc25Smrg * gfx_set_compression_size 1248f29dbc25Smrg *--------------------------------------------------------------------------- 1249f29dbc25Smrg */ 1250f29dbc25Smrgint 1251f29dbc25Smrggfx_set_compression_size(unsigned short size) 1252f29dbc25Smrg{ 1253f29dbc25Smrg int status = 0; 1254f29dbc25Smrg 1255f29dbc25Smrg#if GFX_DISPLAY_GU1 1256f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 1257f29dbc25Smrg status = gu1_set_compression_size(size); 1258f29dbc25Smrg#endif 1259f29dbc25Smrg#if GFX_DISPLAY_GU2 1260f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 1261f29dbc25Smrg status = gu2_set_compression_size(size); 1262f29dbc25Smrg#endif 1263f29dbc25Smrg return (status); 1264f29dbc25Smrg} 1265f29dbc25Smrg 1266f29dbc25Smrg/*--------------------------------------------------------------------------- 1267f29dbc25Smrg * gfx_set_display_priority_high 1268f29dbc25Smrg *--------------------------------------------------------------------------- 1269f29dbc25Smrg */ 1270f29dbc25Smrgvoid 1271f29dbc25Smrggfx_set_display_priority_high(int enable) 1272f29dbc25Smrg{ 1273f29dbc25Smrg#if GFX_DISPLAY_GU1 1274f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 1275f29dbc25Smrg gu1_set_display_priority_high(enable); 1276f29dbc25Smrg#endif 1277f29dbc25Smrg} 1278f29dbc25Smrg 1279f29dbc25Smrg/*--------------------------------------------------------------------------- 1280f29dbc25Smrg * gfx_set_display_video_format (PRIVATE ROUTINE - NOT PART OF API) 1281f29dbc25Smrg * 1282f29dbc25Smrg * This routine is called by "gfx_set_video_format". It abstracts the 1283f29dbc25Smrg * version of the display controller from the video overlay routines. 1284f29dbc25Smrg *--------------------------------------------------------------------------- 1285f29dbc25Smrg */ 1286f29dbc25Smrgvoid 1287f29dbc25Smrggfx_set_display_video_format(unsigned long format) 1288f29dbc25Smrg{ 1289f29dbc25Smrg#if GFX_DISPLAY_GU2 1290f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 1291f29dbc25Smrg gu2_set_display_video_format(format); 1292f29dbc25Smrg#endif 1293f29dbc25Smrg} 1294f29dbc25Smrg 1295f29dbc25Smrg/*--------------------------------------------------------------------------- 1296f29dbc25Smrg * gfx_set_display_video_enable (PRIVATE ROUTINE - NOT PART OF API) 1297f29dbc25Smrg * 1298f29dbc25Smrg * This routine is called by "gfx_set_video_enable". It abstracts the 1299f29dbc25Smrg * version of the display controller from the video overlay routines. 1300f29dbc25Smrg *--------------------------------------------------------------------------- 1301f29dbc25Smrg */ 1302f29dbc25Smrgvoid 1303f29dbc25Smrggfx_set_display_video_enable(int enable) 1304f29dbc25Smrg{ 1305f29dbc25Smrg#if GFX_DISPLAY_GU1 1306f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 1307f29dbc25Smrg gu1_set_display_video_enable(enable); 1308f29dbc25Smrg#endif 1309f29dbc25Smrg#if GFX_DISPLAY_GU2 1310f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 1311f29dbc25Smrg gu2_set_display_video_enable(enable); 1312f29dbc25Smrg#endif 1313f29dbc25Smrg return; 1314f29dbc25Smrg} 1315f29dbc25Smrg 1316f29dbc25Smrg/*--------------------------------------------------------------------------- 1317f29dbc25Smrg * gfx_set_display_video_size (PRIVATE ROUTINE - NOT PART OF API) 1318f29dbc25Smrg * 1319f29dbc25Smrg * This routine is called by "gfx_set_video_size". It abstracts the 1320f29dbc25Smrg * version of the display controller from the video overlay routines. 1321f29dbc25Smrg *--------------------------------------------------------------------------- 1322f29dbc25Smrg */ 1323f29dbc25Smrgvoid 1324f29dbc25Smrggfx_set_display_video_size(unsigned short width, unsigned short height) 1325f29dbc25Smrg{ 1326f29dbc25Smrg#if GFX_DISPLAY_GU1 1327f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 1328f29dbc25Smrg gu1_set_display_video_size(width, height); 1329f29dbc25Smrg#endif 1330f29dbc25Smrg#if GFX_DISPLAY_GU2 1331f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 1332f29dbc25Smrg gu2_set_display_video_size(width, height); 1333f29dbc25Smrg#endif 1334f29dbc25Smrg} 1335f29dbc25Smrg 1336f29dbc25Smrg/*--------------------------------------------------------------------------- 1337f29dbc25Smrg * gfx_set_display_video_offset (PRIVATE ROUTINE - NOT PART OF API) 1338f29dbc25Smrg * 1339f29dbc25Smrg * This routine is called by "gfx_set_video_offset". It abstracts the 1340f29dbc25Smrg * version of the display controller from the video overlay routines. 1341f29dbc25Smrg *--------------------------------------------------------------------------- 1342f29dbc25Smrg */ 1343f29dbc25Smrgvoid 1344f29dbc25Smrggfx_set_display_video_offset(unsigned long offset) 1345f29dbc25Smrg{ 1346f29dbc25Smrg#if GFX_DISPLAY_GU1 1347f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 1348f29dbc25Smrg gu1_set_display_video_offset(offset); 1349f29dbc25Smrg#endif 1350f29dbc25Smrg#if GFX_DISPLAY_GU2 1351f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 1352f29dbc25Smrg gu2_set_display_video_offset(offset); 1353f29dbc25Smrg#endif 1354f29dbc25Smrg} 1355f29dbc25Smrg 1356f29dbc25Smrg/*--------------------------------------------------------------------------- 1357f29dbc25Smrg * gfx_set_display_video_yuv_offsets (PRIVATE ROUTINE - NOT PART OF API) 1358f29dbc25Smrg * 1359f29dbc25Smrg * This routine is called by "gfx_set_video_yuv_offsets". It abstracts the 1360f29dbc25Smrg * version of the display controller from the video overlay routines. 1361f29dbc25Smrg *--------------------------------------------------------------------------- 1362f29dbc25Smrg */ 1363f29dbc25Smrgvoid 1364f29dbc25Smrggfx_set_display_video_yuv_offsets(unsigned long yoffset, 1365f29dbc25Smrg unsigned long uoffset, unsigned long voffset) 1366f29dbc25Smrg{ 1367f29dbc25Smrg#if GFX_DISPLAY_GU2 1368f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 1369f29dbc25Smrg gu2_set_display_video_yuv_offsets(yoffset, uoffset, voffset); 1370f29dbc25Smrg#endif 1371f29dbc25Smrg} 1372f29dbc25Smrg 1373f29dbc25Smrg/*--------------------------------------------------------------------------- 1374f29dbc25Smrg * gfx_set_display_video_yuv_pitch (PRIVATE ROUTINE - NOT PART OF API) 1375f29dbc25Smrg * 1376f29dbc25Smrg * This routine is called by "gfx_set_video_yuv_pitch". It abstracts the 1377f29dbc25Smrg * version of the display controller from the video overlay routines. 1378f29dbc25Smrg *--------------------------------------------------------------------------- 1379f29dbc25Smrg */ 1380f29dbc25Smrgvoid 1381f29dbc25Smrggfx_set_display_video_yuv_pitch(unsigned long ypitch, unsigned long uvpitch) 1382f29dbc25Smrg{ 1383f29dbc25Smrg#if GFX_DISPLAY_GU2 1384f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 1385f29dbc25Smrg gu2_set_display_video_yuv_pitch(ypitch, uvpitch); 1386f29dbc25Smrg#endif 1387f29dbc25Smrg} 1388f29dbc25Smrg 1389f29dbc25Smrg/*--------------------------------------------------------------------------- 1390f29dbc25Smrg * gfx_set_display_video_downscale (PRIVATE ROUTINE - NOT PART OF API) 1391f29dbc25Smrg * 1392f29dbc25Smrg * This routine is called by "gfx_set_video_vertical_downscale". It abstracts the 1393f29dbc25Smrg * version of the display controller from the video overlay routines. 1394f29dbc25Smrg *--------------------------------------------------------------------------- 1395f29dbc25Smrg */ 1396f29dbc25Smrgvoid 1397f29dbc25Smrggfx_set_display_video_downscale(unsigned short srch, unsigned short dsth) 1398f29dbc25Smrg{ 1399f29dbc25Smrg#if GFX_DISPLAY_GU2 1400f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 1401f29dbc25Smrg gu2_set_display_video_downscale(srch, dsth); 1402f29dbc25Smrg#endif 1403f29dbc25Smrg} 1404f29dbc25Smrg 1405f29dbc25Smrg/*--------------------------------------------------------------------------- 1406f29dbc25Smrg * gfx_set_display_video_vertical_downscale_enable (PRIVATE ROUTINE - NOT PART OF API) 1407f29dbc25Smrg * 1408f29dbc25Smrg * This routine is called by "gfx_set_video_vertical_downscale_enable". It abstracts the 1409f29dbc25Smrg * version of the display controller from the video overlay routines. 1410f29dbc25Smrg *--------------------------------------------------------------------------- 1411f29dbc25Smrg */ 1412f29dbc25Smrgvoid 1413f29dbc25Smrggfx_set_display_video_vertical_downscale_enable(int enable) 1414f29dbc25Smrg{ 1415f29dbc25Smrg#if GFX_DISPLAY_GU2 1416f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 1417f29dbc25Smrg gu2_set_display_video_vertical_downscale_enable(enable); 1418f29dbc25Smrg#endif 1419f29dbc25Smrg} 1420f29dbc25Smrg 1421f29dbc25Smrg/*--------------------------------------------------------------------------- 1422f29dbc25Smrg * gfx_test_timing_active 1423f29dbc25Smrg *--------------------------------------------------------------------------- 1424f29dbc25Smrg */ 1425f29dbc25Smrgint 1426f29dbc25Smrggfx_test_timing_active(void) 1427f29dbc25Smrg{ 1428f29dbc25Smrg int status = 0; 1429f29dbc25Smrg 1430f29dbc25Smrg#if GFX_DISPLAY_GU1 1431f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 1432f29dbc25Smrg status = gu1_test_timing_active(); 1433f29dbc25Smrg#endif 1434f29dbc25Smrg#if GFX_DISPLAY_GU2 1435f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 1436f29dbc25Smrg status = gu2_test_timing_active(); 1437f29dbc25Smrg#endif 1438f29dbc25Smrg return (status); 1439f29dbc25Smrg} 1440f29dbc25Smrg 1441f29dbc25Smrg/*--------------------------------------------------------------------------- 1442f29dbc25Smrg * gfx_test_vertical_active 1443f29dbc25Smrg *--------------------------------------------------------------------------- 1444f29dbc25Smrg */ 1445f29dbc25Smrgint 1446f29dbc25Smrggfx_test_vertical_active(void) 1447f29dbc25Smrg{ 1448f29dbc25Smrg int status = 0; 1449f29dbc25Smrg 1450f29dbc25Smrg#if GFX_DISPLAY_GU1 1451f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 1452f29dbc25Smrg status = gu1_test_vertical_active(); 1453f29dbc25Smrg#endif 1454f29dbc25Smrg#if GFX_DISPLAY_GU2 1455f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 1456f29dbc25Smrg status = gu2_test_vertical_active(); 1457f29dbc25Smrg#endif 1458f29dbc25Smrg return (status); 1459f29dbc25Smrg} 1460f29dbc25Smrg 1461f29dbc25Smrg/*--------------------------------------------------------------------------- 1462f29dbc25Smrg * gfx_wait_vertical_blank 1463f29dbc25Smrg *--------------------------------------------------------------------------- 1464f29dbc25Smrg */ 1465f29dbc25Smrgint 1466f29dbc25Smrggfx_wait_vertical_blank(void) 1467f29dbc25Smrg{ 1468f29dbc25Smrg int status = 0; 1469f29dbc25Smrg 1470f29dbc25Smrg#if GFX_DISPLAY_GU1 1471f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 1472f29dbc25Smrg status = gu1_wait_vertical_blank(); 1473f29dbc25Smrg#endif 1474f29dbc25Smrg#if GFX_DISPLAY_GU2 1475f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 1476f29dbc25Smrg status = gu2_wait_vertical_blank(); 1477f29dbc25Smrg#endif 1478f29dbc25Smrg return (status); 1479f29dbc25Smrg} 1480f29dbc25Smrg 1481f29dbc25Smrg/*--------------------------------------------------------------------------- 1482f29dbc25Smrg * gfx_delay_milliseconds 1483f29dbc25Smrg *--------------------------------------------------------------------------- 1484f29dbc25Smrg */ 1485f29dbc25Smrgvoid 1486f29dbc25Smrggfx_delay_milliseconds(unsigned long milliseconds) 1487f29dbc25Smrg{ 1488f29dbc25Smrg#if GFX_DISPLAY_GU1 1489f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 1490f29dbc25Smrg gu1_delay_milliseconds(milliseconds); 1491f29dbc25Smrg#endif 1492f29dbc25Smrg#if GFX_DISPLAY_GU2 1493f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 1494f29dbc25Smrg gu2_delay_milliseconds(milliseconds); 1495f29dbc25Smrg#endif 1496f29dbc25Smrg} 1497f29dbc25Smrg 1498f29dbc25Smrg/*--------------------------------------------------------------------------- 1499f29dbc25Smrg * gfx_delay_microseconds 1500f29dbc25Smrg *--------------------------------------------------------------------------- 1501f29dbc25Smrg */ 1502f29dbc25Smrgvoid 1503f29dbc25Smrggfx_delay_microseconds(unsigned long microseconds) 1504f29dbc25Smrg{ 1505f29dbc25Smrg#if GFX_DISPLAY_GU1 1506f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 1507f29dbc25Smrg gu1_delay_microseconds(microseconds); 1508f29dbc25Smrg#endif 1509f29dbc25Smrg#if GFX_DISPLAY_GU2 1510f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 1511f29dbc25Smrg gu2_delay_microseconds(microseconds); 1512f29dbc25Smrg#endif 1513f29dbc25Smrg} 1514f29dbc25Smrg 1515f29dbc25Smrg/*--------------------------------------------------------------------------- 1516f29dbc25Smrg * gfx_enable_panning 1517f29dbc25Smrg * 1518f29dbc25Smrg * This routine enables the panning when the Mode is bigger than the panel 1519f29dbc25Smrg * size. 1520f29dbc25Smrg *--------------------------------------------------------------------------- 1521f29dbc25Smrg */ 1522f29dbc25Smrgvoid 1523f29dbc25Smrggfx_enable_panning(int x, int y) 1524f29dbc25Smrg{ 1525f29dbc25Smrg#if GFX_DISPLAY_GU1 1526f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 1527f29dbc25Smrg gu1_enable_panning(x, y); 1528f29dbc25Smrg#endif 1529f29dbc25Smrg#if GFX_DISPLAY_GU2 1530f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 1531f29dbc25Smrg gu2_enable_panning(x, y); 1532f29dbc25Smrg#endif 1533f29dbc25Smrg} 1534f29dbc25Smrg 1535f29dbc25Smrg/*--------------------------------------------------------------------------- 1536f29dbc25Smrg * gfx_is_panel_mode_supported 1537f29dbc25Smrg *--------------------------------------------------------------------------- 1538f29dbc25Smrg */ 1539f29dbc25Smrgint 1540f29dbc25Smrggfx_is_panel_mode_supported(int panelResX, int panelResY, 1541f29dbc25Smrg unsigned short width, unsigned short height, unsigned short bpp) 1542f29dbc25Smrg{ 1543f29dbc25Smrg int status = -1; 1544f29dbc25Smrg 1545f29dbc25Smrg#if GFX_DISPLAY_GU2 1546f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 1547f29dbc25Smrg status = 1548f29dbc25Smrg gu2_is_panel_mode_supported(panelResX, panelResY, width, height, 1549f29dbc25Smrg bpp); 1550f29dbc25Smrg#endif 1551f29dbc25Smrg 1552f29dbc25Smrg return (status); 1553f29dbc25Smrg} 1554f29dbc25Smrg 1555f29dbc25Smrg/*--------------------------------------------------------------------------- 1556f29dbc25Smrg * gfx_set_fixed_timings 1557f29dbc25Smrg *--------------------------------------------------------------------------- 1558f29dbc25Smrg */ 1559f29dbc25Smrgint 1560f29dbc25Smrggfx_set_fixed_timings(int panelResX, int panelResY, unsigned short width, 1561f29dbc25Smrg unsigned short height, unsigned short bpp) 1562f29dbc25Smrg{ 1563f29dbc25Smrg int status = 0; 1564f29dbc25Smrg 1565f29dbc25Smrg#if GFX_DISPLAY_GU1 1566f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 1567f29dbc25Smrg status = 1568f29dbc25Smrg gu1_set_fixed_timings(panelResX, panelResY, width, height, bpp); 1569f29dbc25Smrg#endif 1570f29dbc25Smrg#if GFX_DISPLAY_GU2 1571f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 1572f29dbc25Smrg status = 1573f29dbc25Smrg gu2_set_fixed_timings(panelResX, panelResY, width, height, bpp); 1574f29dbc25Smrg#endif 1575f29dbc25Smrg return (status); 1576f29dbc25Smrg} 1577f29dbc25Smrg 1578f29dbc25Smrg/*--------------------------------------------------------------------------- 1579f29dbc25Smrg * gfx_set_panel_present 1580f29dbc25Smrg *--------------------------------------------------------------------------- 1581f29dbc25Smrg */ 1582f29dbc25Smrgint 1583f29dbc25Smrggfx_set_panel_present(int panelResX, int panelResY, unsigned short width, 1584f29dbc25Smrg unsigned short height, unsigned short bpp) 1585f29dbc25Smrg{ 1586f29dbc25Smrg int status = 0; 1587f29dbc25Smrg 1588f29dbc25Smrg#if GFX_DISPLAY_GU1 1589f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 1590f29dbc25Smrg status = 1591f29dbc25Smrg gu1_set_panel_present(panelResX, panelResY, width, height, bpp); 1592f29dbc25Smrg#endif 1593f29dbc25Smrg#if GFX_DISPLAY_GU2 1594f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 1595f29dbc25Smrg status = 1596f29dbc25Smrg gu2_set_panel_present(panelResX, panelResY, width, height, bpp); 1597f29dbc25Smrg#endif 1598f29dbc25Smrg return (status); 1599f29dbc25Smrg} 1600f29dbc25Smrg 1601f29dbc25Smrg/*--------------------------------------------------------------------------- 1602f29dbc25Smrg * gfx_set_vtotal 1603f29dbc25Smrg *--------------------------------------------------------------------------- 1604f29dbc25Smrg */ 1605f29dbc25Smrgint 1606f29dbc25Smrggfx_set_vtotal(unsigned short vtotal) 1607f29dbc25Smrg{ 1608f29dbc25Smrg int retval = 0; 1609f29dbc25Smrg 1610f29dbc25Smrg#if GFX_DISPLAY_GU1 1611f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 1612f29dbc25Smrg retval = gu1_set_vtotal(vtotal); 1613f29dbc25Smrg#endif 1614f29dbc25Smrg#if GFX_DISPLAY_GU2 1615f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 1616f29dbc25Smrg retval = gu2_set_vtotal(vtotal); 1617f29dbc25Smrg#endif 1618f29dbc25Smrg return (retval); 1619f29dbc25Smrg} 1620f29dbc25Smrg 1621f29dbc25Smrg/*-----------------------------------------------------------------------* 1622f29dbc25Smrg * THE FOLLOWING READ ROUTINES ARE ALWAYS INCLUDED: * 1623f29dbc25Smrg * gfx_get_hsync_end, gfx_get_htotal, gfx_get_vsync_end, gfx_get_vtotal * 1624f29dbc25Smrg * are used by the video overlay routines. * 1625f29dbc25Smrg * * 1626f29dbc25Smrg * gfx_get_vline and gfx_vactive are used to prevent an issue for the * 1627f29dbc25Smrg * SC1200. * 1628f29dbc25Smrg * * 1629f29dbc25Smrg * The others are part of the Durango API. * 1630f29dbc25Smrg *-----------------------------------------------------------------------*/ 1631f29dbc25Smrg 1632f29dbc25Smrg/*---------------------------------------------------------------------------- 1633f29dbc25Smrg * gfx_mode_frequency_supported 1634f29dbc25Smrg *---------------------------------------------------------------------------- 1635f29dbc25Smrg */ 1636f29dbc25Smrgint 1637f29dbc25Smrggfx_mode_frequency_supported(int xres, int yres, int bpp, 1638f29dbc25Smrg unsigned long frequency) 1639f29dbc25Smrg{ 1640f29dbc25Smrg int freq = 0; 1641f29dbc25Smrg 1642f29dbc25Smrg#if GFX_DISPLAY_GU1 1643f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 1644f29dbc25Smrg freq = gu1_mode_frequency_supported(xres, yres, bpp, frequency); 1645f29dbc25Smrg#endif 1646f29dbc25Smrg#if GFX_DISPLAY_GU2 1647f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 1648f29dbc25Smrg freq = gu2_mode_frequency_supported(xres, yres, bpp, frequency); 1649f29dbc25Smrg#endif 1650f29dbc25Smrg return (freq); 1651f29dbc25Smrg} 1652f29dbc25Smrg 1653f29dbc25Smrg/*---------------------------------------------------------------------------- 1654f29dbc25Smrg * gfx_refreshrate_from_frequency 1655f29dbc25Smrg *---------------------------------------------------------------------------- 1656f29dbc25Smrg */ 1657f29dbc25Smrgint 1658f29dbc25Smrggfx_get_refreshrate_from_frequency(int xres, int yres, int bpp, int *hz, 1659f29dbc25Smrg unsigned long frequency) 1660f29dbc25Smrg{ 1661f29dbc25Smrg#if GFX_DISPLAY_GU1 1662f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 1663f29dbc25Smrg gu1_get_refreshrate_from_frequency(xres, yres, bpp, hz, frequency); 1664f29dbc25Smrg#endif 1665f29dbc25Smrg#if GFX_DISPLAY_GU2 1666f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 1667f29dbc25Smrg gu2_get_refreshrate_from_frequency(xres, yres, bpp, hz, frequency); 1668f29dbc25Smrg#endif 1669f29dbc25Smrg 1670f29dbc25Smrg return (1); 1671f29dbc25Smrg} 1672f29dbc25Smrg 1673f29dbc25Smrg/*---------------------------------------------------------------------------- 1674f29dbc25Smrg * gfx_refreshrate_from_mode 1675f29dbc25Smrg *---------------------------------------------------------------------------- 1676f29dbc25Smrg */ 1677f29dbc25Smrgint 1678f29dbc25Smrggfx_get_refreshrate_from_mode(int xres, int yres, int bpp, int *hz, 1679f29dbc25Smrg unsigned long frequency) 1680f29dbc25Smrg{ 1681f29dbc25Smrg#if GFX_DISPLAY_GU1 1682f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 1683f29dbc25Smrg gu1_get_refreshrate_from_mode(xres, yres, bpp, hz, frequency); 1684f29dbc25Smrg#endif 1685f29dbc25Smrg#if GFX_DISPLAY_GU2 1686f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 1687f29dbc25Smrg gu2_get_refreshrate_from_mode(xres, yres, bpp, hz, frequency); 1688f29dbc25Smrg#endif 1689f29dbc25Smrg 1690f29dbc25Smrg return (1); 1691f29dbc25Smrg} 1692f29dbc25Smrg 1693f29dbc25Smrg/*---------------------------------------------------------------------------- 1694f29dbc25Smrg * gfx_get_frequency_from_refreshrate 1695f29dbc25Smrg *---------------------------------------------------------------------------- 1696f29dbc25Smrg */ 1697f29dbc25Smrgint 1698f29dbc25Smrggfx_get_frequency_from_refreshrate(int xres, int yres, int bpp, int hz, 1699f29dbc25Smrg int *frequency) 1700f29dbc25Smrg{ 1701f29dbc25Smrg int retval = -1; 1702f29dbc25Smrg 1703f29dbc25Smrg#if GFX_DISPLAY_GU1 1704f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 1705f29dbc25Smrg retval = 1706f29dbc25Smrg gu1_get_frequency_from_refreshrate(xres, yres, bpp, hz, 1707f29dbc25Smrg frequency); 1708f29dbc25Smrg#endif 1709f29dbc25Smrg#if GFX_DISPLAY_GU2 1710f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 1711f29dbc25Smrg retval = 1712f29dbc25Smrg gu2_get_frequency_from_refreshrate(xres, yres, bpp, hz, 1713f29dbc25Smrg frequency); 1714f29dbc25Smrg#endif 1715f29dbc25Smrg 1716f29dbc25Smrg return retval; 1717f29dbc25Smrg} 1718f29dbc25Smrg 1719f29dbc25Smrg/*--------------------------------------------------------------------------- 1720f29dbc25Smrg * gfx_get_max_supported_pixel_clock 1721f29dbc25Smrg *--------------------------------------------------------------------------- 1722f29dbc25Smrg */ 1723f29dbc25Smrgunsigned long 1724f29dbc25Smrggfx_get_max_supported_pixel_clock(void) 1725f29dbc25Smrg{ 1726f29dbc25Smrg unsigned long status = 0; 1727f29dbc25Smrg 1728f29dbc25Smrg#if GFX_DISPLAY_GU1 1729f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 1730f29dbc25Smrg status = gu1_get_max_supported_pixel_clock(); 1731f29dbc25Smrg#endif 1732f29dbc25Smrg#if GFX_DISPLAY_GU2 1733f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 1734f29dbc25Smrg status = gu2_get_max_supported_pixel_clock(); 1735f29dbc25Smrg#endif 1736f29dbc25Smrg return (status); 1737f29dbc25Smrg} 1738f29dbc25Smrg 1739f29dbc25Smrg/*--------------------------------------------------------------------------- 1740f29dbc25Smrg * gfx_get_display_pitch 1741f29dbc25Smrg *--------------------------------------------------------------------------- 1742f29dbc25Smrg */ 1743f29dbc25Smrgunsigned short 1744f29dbc25Smrggfx_get_display_pitch(void) 1745f29dbc25Smrg{ 1746f29dbc25Smrg unsigned short pitch = 0; 1747f29dbc25Smrg 1748f29dbc25Smrg#if GFX_DISPLAY_GU1 1749f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 1750f29dbc25Smrg pitch = gu1_get_display_pitch(); 1751f29dbc25Smrg#endif 1752f29dbc25Smrg#if GFX_DISPLAY_GU2 1753f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 1754f29dbc25Smrg pitch = gu2_get_display_pitch(); 1755f29dbc25Smrg#endif 1756f29dbc25Smrg return (pitch); 1757f29dbc25Smrg} 1758f29dbc25Smrg 1759f29dbc25Smrg/*--------------------------------------------------------------------------- 1760f29dbc25Smrg * gfx_get_display_mode_count 1761f29dbc25Smrg * return # of modes supported. 1762f29dbc25Smrg *--------------------------------------------------------------------------- 1763f29dbc25Smrg */ 1764f29dbc25Smrgint 1765f29dbc25Smrggfx_get_display_mode_count(void) 1766f29dbc25Smrg{ 1767f29dbc25Smrg int retval = 0; 1768f29dbc25Smrg 1769f29dbc25Smrg#if GFX_DISPLAY_GU1 1770f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 1771f29dbc25Smrg retval = gu1_get_display_mode_count(); 1772f29dbc25Smrg#endif 1773f29dbc25Smrg#if GFX_DISPLAY_GU2 1774f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 1775f29dbc25Smrg retval = gu2_get_display_mode_count(); 1776f29dbc25Smrg#endif 1777f29dbc25Smrg return (retval); 1778f29dbc25Smrg} 1779f29dbc25Smrg 1780f29dbc25Smrg/*--------------------------------------------------------------------------- 1781f29dbc25Smrg * gfx_get_frame_buffer_line_size 1782f29dbc25Smrg *--------------------------------------------------------------------------- 1783f29dbc25Smrg */ 1784f29dbc25Smrgunsigned long 1785f29dbc25Smrggfx_get_frame_buffer_line_size(void) 1786f29dbc25Smrg{ 1787f29dbc25Smrg unsigned long retval = 0; 1788f29dbc25Smrg 1789f29dbc25Smrg#if GFX_DISPLAY_GU1 1790f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 1791f29dbc25Smrg retval = gu1_get_frame_buffer_line_size(); 1792f29dbc25Smrg#endif 1793f29dbc25Smrg#if GFX_DISPLAY_GU2 1794f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 1795f29dbc25Smrg retval = gu2_get_frame_buffer_line_size(); 1796f29dbc25Smrg#endif 1797f29dbc25Smrg return (retval); 1798f29dbc25Smrg} 1799f29dbc25Smrg 1800f29dbc25Smrg/*--------------------------------------------------------------------------- 1801f29dbc25Smrg * gfx_get_display_mode 1802f29dbc25Smrg * get the curent mode set, 1803f29dbc25Smrg * return the supported mode on success, -1 on fail 1804f29dbc25Smrg *--------------------------------------------------------------------------- 1805f29dbc25Smrg */ 1806f29dbc25Smrgint 1807f29dbc25Smrggfx_get_display_mode(int *xres, int *yres, int *bpp, int *hz) 1808f29dbc25Smrg{ 1809f29dbc25Smrg int retval = -1; 1810f29dbc25Smrg 1811f29dbc25Smrg#if GFX_DISPLAY_GU1 1812f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 1813f29dbc25Smrg retval = gu1_get_display_mode(xres, yres, bpp, hz); 1814f29dbc25Smrg#endif 1815f29dbc25Smrg#if GFX_DISPLAY_GU2 1816f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 1817f29dbc25Smrg retval = gu2_get_display_mode(xres, yres, bpp, hz); 1818f29dbc25Smrg#endif 1819f29dbc25Smrg return (retval); 1820f29dbc25Smrg} 1821f29dbc25Smrg 1822f29dbc25Smrg/*--------------------------------------------------------------------------- 1823f29dbc25Smrg * gfx_get_display_details 1824f29dbc25Smrg * given the mode get's the resoultion details, width, height, freq 1825f29dbc25Smrg *--------------------------------------------------------------------------- 1826f29dbc25Smrg */ 1827f29dbc25Smrgint 1828f29dbc25Smrggfx_get_display_details(unsigned int mode, int *xres, int *yres, int *hz) 1829f29dbc25Smrg{ 1830f29dbc25Smrg int retval = -1; 1831f29dbc25Smrg 1832f29dbc25Smrg#if GFX_DISPLAY_GU1 1833f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 1834f29dbc25Smrg retval = gu1_get_display_details(mode, xres, yres, hz); 1835f29dbc25Smrg#endif 1836f29dbc25Smrg#if GFX_DISPLAY_GU2 1837f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 1838f29dbc25Smrg retval = gu2_get_display_details(mode, xres, yres, hz); 1839f29dbc25Smrg#endif 1840f29dbc25Smrg return (retval); 1841f29dbc25Smrg} 1842f29dbc25Smrg 1843f29dbc25Smrg/*--------------------------------------------------------------------------- 1844f29dbc25Smrg * gfx_get_hactive 1845f29dbc25Smrg *--------------------------------------------------------------------------- 1846f29dbc25Smrg */ 1847f29dbc25Smrgunsigned short 1848f29dbc25Smrggfx_get_hactive(void) 1849f29dbc25Smrg{ 1850f29dbc25Smrg unsigned short hactive = 0; 1851f29dbc25Smrg 1852f29dbc25Smrg#if GFX_DISPLAY_GU1 1853f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 1854f29dbc25Smrg hactive = gu1_get_hactive(); 1855f29dbc25Smrg#endif 1856f29dbc25Smrg#if GFX_DISPLAY_GU2 1857f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 1858f29dbc25Smrg hactive = gu2_get_hactive(); 1859f29dbc25Smrg#endif 1860f29dbc25Smrg return (hactive); 1861f29dbc25Smrg} 1862f29dbc25Smrg 1863f29dbc25Smrg/*--------------------------------------------------------------------------- 1864f29dbc25Smrg * gfx_get_hsync_start 1865f29dbc25Smrg *--------------------------------------------------------------------------- 1866f29dbc25Smrg */ 1867f29dbc25Smrgunsigned short 1868f29dbc25Smrggfx_get_hsync_start(void) 1869f29dbc25Smrg{ 1870f29dbc25Smrg unsigned short hsync_start = 0; 1871f29dbc25Smrg 1872f29dbc25Smrg#if GFX_DISPLAY_GU1 1873f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 1874f29dbc25Smrg hsync_start = gu1_get_hsync_start(); 1875f29dbc25Smrg#endif 1876f29dbc25Smrg#if GFX_DISPLAY_GU2 1877f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 1878f29dbc25Smrg hsync_start = gu2_get_hsync_start(); 1879f29dbc25Smrg#endif 1880f29dbc25Smrg return (hsync_start); 1881f29dbc25Smrg} 1882f29dbc25Smrg 1883f29dbc25Smrg/*--------------------------------------------------------------------------- 1884f29dbc25Smrg * gfx_get_hsync_end 1885f29dbc25Smrg *--------------------------------------------------------------------------- 1886f29dbc25Smrg */ 1887f29dbc25Smrgunsigned short 1888f29dbc25Smrggfx_get_hsync_end(void) 1889f29dbc25Smrg{ 1890f29dbc25Smrg unsigned short hsync_end = 0; 1891f29dbc25Smrg 1892f29dbc25Smrg#if GFX_DISPLAY_GU1 1893f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 1894f29dbc25Smrg hsync_end = gu1_get_hsync_end(); 1895f29dbc25Smrg#endif 1896f29dbc25Smrg#if GFX_DISPLAY_GU2 1897f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 1898f29dbc25Smrg hsync_end = gu2_get_hsync_end(); 1899f29dbc25Smrg#endif 1900f29dbc25Smrg return (hsync_end); 1901f29dbc25Smrg} 1902f29dbc25Smrg 1903f29dbc25Smrg/*--------------------------------------------------------------------------- 1904f29dbc25Smrg * gfx_get_htotal 1905f29dbc25Smrg *--------------------------------------------------------------------------- 1906f29dbc25Smrg */ 1907f29dbc25Smrgunsigned short 1908f29dbc25Smrggfx_get_htotal(void) 1909f29dbc25Smrg{ 1910f29dbc25Smrg unsigned short htotal = 0; 1911f29dbc25Smrg 1912f29dbc25Smrg#if GFX_DISPLAY_GU1 1913f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 1914f29dbc25Smrg htotal = gu1_get_htotal(); 1915f29dbc25Smrg#endif 1916f29dbc25Smrg#if GFX_DISPLAY_GU2 1917f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 1918f29dbc25Smrg htotal = gu2_get_htotal(); 1919f29dbc25Smrg#endif 1920f29dbc25Smrg return (htotal); 1921f29dbc25Smrg} 1922f29dbc25Smrg 1923f29dbc25Smrg/*--------------------------------------------------------------------------- 1924f29dbc25Smrg * gfx_get_vactive 1925f29dbc25Smrg *--------------------------------------------------------------------------- 1926f29dbc25Smrg */ 1927f29dbc25Smrgunsigned short 1928f29dbc25Smrggfx_get_vactive(void) 1929f29dbc25Smrg{ 1930f29dbc25Smrg unsigned short vactive = 0; 1931f29dbc25Smrg 1932f29dbc25Smrg#if GFX_DISPLAY_GU1 1933f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 1934f29dbc25Smrg vactive = gu1_get_vactive(); 1935f29dbc25Smrg#endif 1936f29dbc25Smrg#if GFX_DISPLAY_GU2 1937f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 1938f29dbc25Smrg vactive = gu2_get_vactive(); 1939f29dbc25Smrg#endif 1940f29dbc25Smrg return (vactive); 1941f29dbc25Smrg} 1942f29dbc25Smrg 1943f29dbc25Smrg/*--------------------------------------------------------------------------- 1944f29dbc25Smrg * gfx_get_vsync_end 1945f29dbc25Smrg *--------------------------------------------------------------------------- 1946f29dbc25Smrg */ 1947f29dbc25Smrgunsigned short 1948f29dbc25Smrggfx_get_vsync_end(void) 1949f29dbc25Smrg{ 1950f29dbc25Smrg unsigned short vsync_end = 0; 1951f29dbc25Smrg 1952f29dbc25Smrg#if GFX_DISPLAY_GU1 1953f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 1954f29dbc25Smrg vsync_end = gu1_get_vsync_end(); 1955f29dbc25Smrg#endif 1956f29dbc25Smrg#if GFX_DISPLAY_GU2 1957f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 1958f29dbc25Smrg vsync_end = gu2_get_vsync_end(); 1959f29dbc25Smrg#endif 1960f29dbc25Smrg return (vsync_end); 1961f29dbc25Smrg} 1962f29dbc25Smrg 1963f29dbc25Smrg/*--------------------------------------------------------------------------- 1964f29dbc25Smrg * gfx_get_vtotal 1965f29dbc25Smrg *--------------------------------------------------------------------------- 1966f29dbc25Smrg */ 1967f29dbc25Smrgunsigned short 1968f29dbc25Smrggfx_get_vtotal(void) 1969f29dbc25Smrg{ 1970f29dbc25Smrg unsigned short vtotal = 0; 1971f29dbc25Smrg 1972f29dbc25Smrg#if GFX_DISPLAY_GU1 1973f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 1974f29dbc25Smrg vtotal = gu1_get_vtotal(); 1975f29dbc25Smrg#endif 1976f29dbc25Smrg#if GFX_DISPLAY_GU2 1977f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 1978f29dbc25Smrg vtotal = gu2_get_vtotal(); 1979f29dbc25Smrg#endif 1980f29dbc25Smrg return (vtotal); 1981f29dbc25Smrg} 1982f29dbc25Smrg 1983f29dbc25Smrg/*--------------------------------------------------------------------------- 1984f29dbc25Smrg * gfx_get_display_bpp 1985f29dbc25Smrg *--------------------------------------------------------------------------- 1986f29dbc25Smrg */ 1987f29dbc25Smrgunsigned short 1988f29dbc25Smrggfx_get_display_bpp(void) 1989f29dbc25Smrg{ 1990f29dbc25Smrg unsigned short bpp = 0; 1991f29dbc25Smrg 1992f29dbc25Smrg#if GFX_DISPLAY_GU1 1993f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 1994f29dbc25Smrg bpp = gu1_get_display_bpp(); 1995f29dbc25Smrg#endif 1996f29dbc25Smrg#if GFX_DISPLAY_GU2 1997f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 1998f29dbc25Smrg bpp = gu2_get_display_bpp(); 1999f29dbc25Smrg#endif 2000f29dbc25Smrg return (bpp); 2001f29dbc25Smrg} 2002f29dbc25Smrg 2003f29dbc25Smrg/*--------------------------------------------------------------------------- 2004f29dbc25Smrg * gfx_get_vline 2005f29dbc25Smrg *--------------------------------------------------------------------------- 2006f29dbc25Smrg */ 2007f29dbc25Smrgunsigned short 2008f29dbc25Smrggfx_get_vline(void) 2009f29dbc25Smrg{ 2010f29dbc25Smrg unsigned short vline = 0; 2011f29dbc25Smrg 2012f29dbc25Smrg#if GFX_DISPLAY_GU1 2013f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 2014f29dbc25Smrg vline = gu1_get_vline(); 2015f29dbc25Smrg#endif 2016f29dbc25Smrg#if GFX_DISPLAY_GU2 2017f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 2018f29dbc25Smrg vline = gu2_get_vline(); 2019f29dbc25Smrg#endif 2020f29dbc25Smrg return (vline); 2021f29dbc25Smrg} 2022f29dbc25Smrg 2023f29dbc25Smrg/*--------------------------------------------------------------------------- 2024f29dbc25Smrg * gfx_get_display_offset 2025f29dbc25Smrg *--------------------------------------------------------------------------- 2026f29dbc25Smrg */ 2027f29dbc25Smrgunsigned long 2028f29dbc25Smrggfx_get_display_offset(void) 2029f29dbc25Smrg{ 2030f29dbc25Smrg unsigned long offset = 0; 2031f29dbc25Smrg 2032f29dbc25Smrg#if GFX_DISPLAY_GU1 2033f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 2034f29dbc25Smrg offset = gu1_get_display_offset(); 2035f29dbc25Smrg#endif 2036f29dbc25Smrg#if GFX_DISPLAY_GU2 2037f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 2038f29dbc25Smrg offset = gu2_get_display_offset(); 2039f29dbc25Smrg#endif 2040f29dbc25Smrg return (offset); 2041f29dbc25Smrg} 2042f29dbc25Smrg 2043f29dbc25Smrg/*--------------------------------------------------------------------------- 2044f29dbc25Smrg * gfx_get_cursor_offset 2045f29dbc25Smrg *--------------------------------------------------------------------------- 2046f29dbc25Smrg */ 2047f29dbc25Smrgunsigned long 2048f29dbc25Smrggfx_get_cursor_offset(void) 2049f29dbc25Smrg{ 2050f29dbc25Smrg unsigned long base = 0; 2051f29dbc25Smrg 2052f29dbc25Smrg#if GFX_DISPLAY_GU1 2053f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 2054f29dbc25Smrg base = gu1_get_cursor_offset(); 2055f29dbc25Smrg#endif 2056f29dbc25Smrg#if GFX_DISPLAY_GU2 2057f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 2058f29dbc25Smrg base = gu2_get_cursor_offset(); 2059f29dbc25Smrg#endif 2060f29dbc25Smrg return (base); 2061f29dbc25Smrg} 2062f29dbc25Smrg 2063f29dbc25Smrg/*************************************************************/ 2064f29dbc25Smrg/* READ ROUTINES | INCLUDED FOR DIAGNOSTIC PURPOSES ONLY */ 2065f29dbc25Smrg/*************************************************************/ 2066f29dbc25Smrg 2067f29dbc25Smrg#if GFX_READ_ROUTINES 2068f29dbc25Smrg 2069f29dbc25Smrg/*--------------------------------------------------------------------------- 2070f29dbc25Smrg * gfx_get_hblank_start 2071f29dbc25Smrg *--------------------------------------------------------------------------- 2072f29dbc25Smrg */ 2073f29dbc25Smrgunsigned short 2074f29dbc25Smrggfx_get_hblank_start(void) 2075f29dbc25Smrg{ 2076f29dbc25Smrg unsigned short hblank_start = 0; 2077f29dbc25Smrg 2078f29dbc25Smrg#if GFX_DISPLAY_GU1 2079f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 2080f29dbc25Smrg hblank_start = gu1_get_hblank_start(); 2081f29dbc25Smrg#endif 2082f29dbc25Smrg#if GFX_DISPLAY_GU2 2083f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 2084f29dbc25Smrg hblank_start = gu2_get_hblank_start(); 2085f29dbc25Smrg#endif 2086f29dbc25Smrg return (hblank_start); 2087f29dbc25Smrg} 2088f29dbc25Smrg 2089f29dbc25Smrg/*--------------------------------------------------------------------------- 2090f29dbc25Smrg * gfx_get_hblank_end 2091f29dbc25Smrg *--------------------------------------------------------------------------- 2092f29dbc25Smrg */ 2093f29dbc25Smrgunsigned short 2094f29dbc25Smrggfx_get_hblank_end(void) 2095f29dbc25Smrg{ 2096f29dbc25Smrg unsigned short hblank_end = 0; 2097f29dbc25Smrg 2098f29dbc25Smrg#if GFX_DISPLAY_GU1 2099f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 2100f29dbc25Smrg hblank_end = gu1_get_hblank_end(); 2101f29dbc25Smrg#endif 2102f29dbc25Smrg#if GFX_DISPLAY_GU2 2103f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 2104f29dbc25Smrg hblank_end = gu2_get_hblank_end(); 2105f29dbc25Smrg#endif 2106f29dbc25Smrg return (hblank_end); 2107f29dbc25Smrg} 2108f29dbc25Smrg 2109f29dbc25Smrg/*--------------------------------------------------------------------------- 2110f29dbc25Smrg * gfx_get_vblank_start 2111f29dbc25Smrg *--------------------------------------------------------------------------- 2112f29dbc25Smrg */ 2113f29dbc25Smrgunsigned short 2114f29dbc25Smrggfx_get_vblank_start(void) 2115f29dbc25Smrg{ 2116f29dbc25Smrg unsigned short vblank_start = 0; 2117f29dbc25Smrg 2118f29dbc25Smrg#if GFX_DISPLAY_GU1 2119f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 2120f29dbc25Smrg vblank_start = gu1_get_vblank_start(); 2121f29dbc25Smrg#endif 2122f29dbc25Smrg#if GFX_DISPLAY_GU2 2123f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 2124f29dbc25Smrg vblank_start = gu2_get_vblank_start(); 2125f29dbc25Smrg#endif 2126f29dbc25Smrg return (vblank_start); 2127f29dbc25Smrg} 2128f29dbc25Smrg 2129f29dbc25Smrg/*--------------------------------------------------------------------------- 2130f29dbc25Smrg * gfx_get_vsync_start 2131f29dbc25Smrg *--------------------------------------------------------------------------- 2132f29dbc25Smrg */ 2133f29dbc25Smrgunsigned short 2134f29dbc25Smrggfx_get_vsync_start(void) 2135f29dbc25Smrg{ 2136f29dbc25Smrg unsigned short vsync_start = 0; 2137f29dbc25Smrg 2138f29dbc25Smrg#if GFX_DISPLAY_GU1 2139f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 2140f29dbc25Smrg vsync_start = gu1_get_vsync_start(); 2141f29dbc25Smrg#endif 2142f29dbc25Smrg#if GFX_DISPLAY_GU2 2143f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 2144f29dbc25Smrg vsync_start = gu2_get_vsync_start(); 2145f29dbc25Smrg#endif 2146f29dbc25Smrg return (vsync_start); 2147f29dbc25Smrg} 2148f29dbc25Smrg 2149f29dbc25Smrg/*--------------------------------------------------------------------------- 2150f29dbc25Smrg * gfx_get_vblank_end 2151f29dbc25Smrg *--------------------------------------------------------------------------- 2152f29dbc25Smrg */ 2153f29dbc25Smrgunsigned short 2154f29dbc25Smrggfx_get_vblank_end(void) 2155f29dbc25Smrg{ 2156f29dbc25Smrg unsigned short vblank_end = 0; 2157f29dbc25Smrg 2158f29dbc25Smrg#if GFX_DISPLAY_GU1 2159f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 2160f29dbc25Smrg vblank_end = gu1_get_vblank_end(); 2161f29dbc25Smrg#endif 2162f29dbc25Smrg#if GFX_DISPLAY_GU2 2163f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 2164f29dbc25Smrg vblank_end = gu2_get_vblank_end(); 2165f29dbc25Smrg#endif 2166f29dbc25Smrg return (vblank_end); 2167f29dbc25Smrg} 2168f29dbc25Smrg 2169f29dbc25Smrg/*--------------------------------------------------------------------------- 2170f29dbc25Smrg * gfx_get_display_palette_entry 2171f29dbc25Smrg *--------------------------------------------------------------------------- 2172f29dbc25Smrg */ 2173f29dbc25Smrgint 2174f29dbc25Smrggfx_get_display_palette_entry(unsigned long index, unsigned long *palette) 2175f29dbc25Smrg{ 2176f29dbc25Smrg int status = 0; 2177f29dbc25Smrg 2178f29dbc25Smrg#if GFX_DISPLAY_GU1 2179f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 2180f29dbc25Smrg status = gu1_get_display_palette_entry(index, palette); 2181f29dbc25Smrg#endif 2182f29dbc25Smrg#if GFX_DISPLAY_GU2 2183f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 2184f29dbc25Smrg status = gu2_get_display_palette_entry(index, palette); 2185f29dbc25Smrg#endif 2186f29dbc25Smrg 2187f29dbc25Smrg return status; 2188f29dbc25Smrg} 2189f29dbc25Smrg 2190f29dbc25Smrg/*--------------------------------------------------------------------------- 2191f29dbc25Smrg * gfx_get_display_palette 2192f29dbc25Smrg *--------------------------------------------------------------------------- 2193f29dbc25Smrg */ 2194f29dbc25Smrgvoid 2195f29dbc25Smrggfx_get_display_palette(unsigned long *palette) 2196f29dbc25Smrg{ 2197f29dbc25Smrg#if GFX_DISPLAY_GU1 2198f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 2199f29dbc25Smrg gu1_get_display_palette(palette); 2200f29dbc25Smrg#endif 2201f29dbc25Smrg#if GFX_DISPLAY_GU2 2202f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 2203f29dbc25Smrg gu2_get_display_palette(palette); 2204f29dbc25Smrg#endif 2205f29dbc25Smrg} 2206f29dbc25Smrg 2207f29dbc25Smrg/*--------------------------------------------------------------------------- 2208f29dbc25Smrg * gfx_get_cursor_enable 2209f29dbc25Smrg *--------------------------------------------------------------------------- 2210f29dbc25Smrg */ 2211f29dbc25Smrgunsigned long 2212f29dbc25Smrggfx_get_cursor_enable(void) 2213f29dbc25Smrg{ 2214f29dbc25Smrg unsigned long enable = 0; 2215f29dbc25Smrg 2216f29dbc25Smrg#if GFX_DISPLAY_GU1 2217f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 2218f29dbc25Smrg enable = gu1_get_cursor_enable(); 2219f29dbc25Smrg#endif 2220f29dbc25Smrg#if GFX_DISPLAY_GU2 2221f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 2222f29dbc25Smrg enable = gu2_get_cursor_enable(); 2223f29dbc25Smrg#endif 2224f29dbc25Smrg return (enable); 2225f29dbc25Smrg} 2226f29dbc25Smrg 2227f29dbc25Smrg/*--------------------------------------------------------------------------- 2228f29dbc25Smrg * gfx_get_cursor_position 2229f29dbc25Smrg *--------------------------------------------------------------------------- 2230f29dbc25Smrg */ 2231f29dbc25Smrgunsigned long 2232f29dbc25Smrggfx_get_cursor_position(void) 2233f29dbc25Smrg{ 2234f29dbc25Smrg unsigned long position = 0; 2235f29dbc25Smrg 2236f29dbc25Smrg#if GFX_DISPLAY_GU1 2237f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 2238f29dbc25Smrg position = gu1_get_cursor_position(); 2239f29dbc25Smrg#endif 2240f29dbc25Smrg#if GFX_DISPLAY_GU2 2241f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 2242f29dbc25Smrg position = gu2_get_cursor_position(); 2243f29dbc25Smrg#endif 2244f29dbc25Smrg return (position); 2245f29dbc25Smrg} 2246f29dbc25Smrg 2247f29dbc25Smrg/*--------------------------------------------------------------------------- 2248f29dbc25Smrg * gfx_get_cursor_clip 2249f29dbc25Smrg *--------------------------------------------------------------------------- 2250f29dbc25Smrg */ 2251f29dbc25Smrgunsigned long 2252f29dbc25Smrggfx_get_cursor_clip(void) 2253f29dbc25Smrg{ 2254f29dbc25Smrg unsigned long offset = 0; 2255f29dbc25Smrg 2256f29dbc25Smrg#if GFX_DISPLAY_GU1 2257f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 2258f29dbc25Smrg offset = gu1_get_cursor_clip(); 2259f29dbc25Smrg#endif 2260f29dbc25Smrg#if GFX_DISPLAY_GU2 2261f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 2262f29dbc25Smrg offset = gu2_get_cursor_clip(); 2263f29dbc25Smrg#endif 2264f29dbc25Smrg return (offset); 2265f29dbc25Smrg} 2266f29dbc25Smrg 2267f29dbc25Smrg/*--------------------------------------------------------------------------- 2268f29dbc25Smrg * gfx_get_cursor_color 2269f29dbc25Smrg *--------------------------------------------------------------------------- 2270f29dbc25Smrg */ 2271f29dbc25Smrgunsigned long 2272f29dbc25Smrggfx_get_cursor_color(int index) 2273f29dbc25Smrg{ 2274f29dbc25Smrg unsigned long color = 0; 2275f29dbc25Smrg 2276f29dbc25Smrg#if GFX_DISPLAY_GU1 2277f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 2278f29dbc25Smrg color = gu1_get_cursor_color(index); 2279f29dbc25Smrg#endif 2280f29dbc25Smrg#if GFX_DISPLAY_GU2 2281f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 2282f29dbc25Smrg color = gu2_get_cursor_color(index); 2283f29dbc25Smrg#endif 2284f29dbc25Smrg return (color); 2285f29dbc25Smrg} 2286f29dbc25Smrg 2287f29dbc25Smrg/*--------------------------------------------------------------------------- 2288f29dbc25Smrg * gfx_get_icon_enable 2289f29dbc25Smrg *--------------------------------------------------------------------------- 2290f29dbc25Smrg */ 2291f29dbc25Smrgunsigned long 2292f29dbc25Smrggfx_get_icon_enable(void) 2293f29dbc25Smrg{ 2294f29dbc25Smrg unsigned long enable = 0; 2295f29dbc25Smrg 2296f29dbc25Smrg#if GFX_DISPLAY_GU2 2297f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 2298f29dbc25Smrg enable = gu2_get_icon_enable(); 2299f29dbc25Smrg#endif 2300f29dbc25Smrg return (enable); 2301f29dbc25Smrg} 2302f29dbc25Smrg 2303f29dbc25Smrg/*--------------------------------------------------------------------------- 2304f29dbc25Smrg * gfx_get_icon_offset 2305f29dbc25Smrg *--------------------------------------------------------------------------- 2306f29dbc25Smrg */ 2307f29dbc25Smrgunsigned long 2308f29dbc25Smrggfx_get_icon_offset(void) 2309f29dbc25Smrg{ 2310f29dbc25Smrg unsigned long base = 0; 2311f29dbc25Smrg 2312f29dbc25Smrg#if GFX_DISPLAY_GU2 2313f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 2314f29dbc25Smrg base = gu2_get_icon_offset(); 2315f29dbc25Smrg#endif 2316f29dbc25Smrg 2317f29dbc25Smrg return (base); 2318f29dbc25Smrg} 2319f29dbc25Smrg 2320f29dbc25Smrg/*--------------------------------------------------------------------------- 2321f29dbc25Smrg * gfx_get_icon_position 2322f29dbc25Smrg *--------------------------------------------------------------------------- 2323f29dbc25Smrg */ 2324f29dbc25Smrgunsigned long 2325f29dbc25Smrggfx_get_icon_position(void) 2326f29dbc25Smrg{ 2327f29dbc25Smrg unsigned long position = 0; 2328f29dbc25Smrg 2329f29dbc25Smrg#if GFX_DISPLAY_GU2 2330f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 2331f29dbc25Smrg position = gu2_get_icon_position(); 2332f29dbc25Smrg#endif 2333f29dbc25Smrg 2334f29dbc25Smrg return (position); 2335f29dbc25Smrg} 2336f29dbc25Smrg 2337f29dbc25Smrg/*--------------------------------------------------------------------------- 2338f29dbc25Smrg * gfx_get_icon_color 2339f29dbc25Smrg *--------------------------------------------------------------------------- 2340f29dbc25Smrg */ 2341f29dbc25Smrgunsigned long 2342f29dbc25Smrggfx_get_icon_color(int index) 2343f29dbc25Smrg{ 2344f29dbc25Smrg unsigned long color = 0; 2345f29dbc25Smrg 2346f29dbc25Smrg#if GFX_DISPLAY_GU2 2347f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 2348f29dbc25Smrg color = gu2_get_icon_color(index); 2349f29dbc25Smrg#endif 2350f29dbc25Smrg 2351f29dbc25Smrg return (color); 2352f29dbc25Smrg} 2353f29dbc25Smrg 2354f29dbc25Smrg/*--------------------------------------------------------------------------- 2355f29dbc25Smrg * gfx_get_compression_enable 2356f29dbc25Smrg *--------------------------------------------------------------------------- 2357f29dbc25Smrg */ 2358f29dbc25Smrgint 2359f29dbc25Smrggfx_get_compression_enable(void) 2360f29dbc25Smrg{ 2361f29dbc25Smrg int enable = 0; 2362f29dbc25Smrg 2363f29dbc25Smrg#if GFX_DISPLAY_GU1 2364f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 2365f29dbc25Smrg enable = gu1_get_compression_enable(); 2366f29dbc25Smrg#endif 2367f29dbc25Smrg#if GFX_DISPLAY_GU2 2368f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 2369f29dbc25Smrg enable = gu2_get_compression_enable(); 2370f29dbc25Smrg#endif 2371f29dbc25Smrg return (enable); 2372f29dbc25Smrg} 2373f29dbc25Smrg 2374f29dbc25Smrg/*--------------------------------------------------------------------------- 2375f29dbc25Smrg * gfx_get_compression_offset 2376f29dbc25Smrg *--------------------------------------------------------------------------- 2377f29dbc25Smrg */ 2378f29dbc25Smrgunsigned long 2379f29dbc25Smrggfx_get_compression_offset(void) 2380f29dbc25Smrg{ 2381f29dbc25Smrg unsigned long offset = 0; 2382f29dbc25Smrg 2383f29dbc25Smrg#if GFX_DISPLAY_GU1 2384f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 2385f29dbc25Smrg offset = gu1_get_compression_offset(); 2386f29dbc25Smrg#endif 2387f29dbc25Smrg#if GFX_DISPLAY_GU2 2388f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 2389f29dbc25Smrg offset = gu2_get_compression_offset(); 2390f29dbc25Smrg#endif 2391f29dbc25Smrg return (offset); 2392f29dbc25Smrg} 2393f29dbc25Smrg 2394f29dbc25Smrg/*--------------------------------------------------------------------------- 2395f29dbc25Smrg * gfx_get_compression_pitch 2396f29dbc25Smrg *--------------------------------------------------------------------------- 2397f29dbc25Smrg */ 2398f29dbc25Smrgunsigned short 2399f29dbc25Smrggfx_get_compression_pitch(void) 2400f29dbc25Smrg{ 2401f29dbc25Smrg unsigned short pitch = 0; 2402f29dbc25Smrg 2403f29dbc25Smrg#if GFX_DISPLAY_GU1 2404f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 2405f29dbc25Smrg pitch = gu1_get_compression_pitch(); 2406f29dbc25Smrg#endif 2407f29dbc25Smrg#if GFX_DISPLAY_GU2 2408f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 2409f29dbc25Smrg pitch = gu2_get_compression_pitch(); 2410f29dbc25Smrg#endif 2411f29dbc25Smrg return (pitch); 2412f29dbc25Smrg} 2413f29dbc25Smrg 2414f29dbc25Smrg/*--------------------------------------------------------------------------- 2415f29dbc25Smrg * gfx_get_compression_size 2416f29dbc25Smrg *--------------------------------------------------------------------------- 2417f29dbc25Smrg */ 2418f29dbc25Smrgunsigned short 2419f29dbc25Smrggfx_get_compression_size(void) 2420f29dbc25Smrg{ 2421f29dbc25Smrg unsigned short size = 0; 2422f29dbc25Smrg 2423f29dbc25Smrg#if GFX_DISPLAY_GU1 2424f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 2425f29dbc25Smrg size = gu1_get_compression_size(); 2426f29dbc25Smrg#endif 2427f29dbc25Smrg#if GFX_DISPLAY_GU2 2428f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 2429f29dbc25Smrg size = gu2_get_compression_size(); 2430f29dbc25Smrg#endif 2431f29dbc25Smrg return (size); 2432f29dbc25Smrg} 2433f29dbc25Smrg 2434f29dbc25Smrg/*--------------------------------------------------------------------------- 2435f29dbc25Smrg * gfx_get_display_priority_high 2436f29dbc25Smrg *--------------------------------------------------------------------------- 2437f29dbc25Smrg */ 2438f29dbc25Smrgint 2439f29dbc25Smrggfx_get_display_priority_high(void) 2440f29dbc25Smrg{ 2441f29dbc25Smrg int high = GFX_STATUS_UNSUPPORTED; 2442f29dbc25Smrg 2443f29dbc25Smrg#if GFX_DISPLAY_GU1 2444f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 2445f29dbc25Smrg high = gu1_get_display_priority_high(); 2446f29dbc25Smrg#endif 2447f29dbc25Smrg return (high); 2448f29dbc25Smrg} 2449f29dbc25Smrg 2450f29dbc25Smrg/*--------------------------------------------------------------------------- 2451f29dbc25Smrg * gfx_get_valid_bit 2452f29dbc25Smrg *--------------------------------------------------------------------------- 2453f29dbc25Smrg */ 2454f29dbc25Smrgint 2455f29dbc25Smrggfx_get_valid_bit(int line) 2456f29dbc25Smrg{ 2457f29dbc25Smrg int valid = 0; 2458f29dbc25Smrg 2459f29dbc25Smrg#if GFX_DISPLAY_GU1 2460f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 2461f29dbc25Smrg valid = gu1_get_valid_bit(line); 2462f29dbc25Smrg#endif 2463f29dbc25Smrg#if GFX_DISPLAY_GU2 2464f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 2465f29dbc25Smrg valid = gu2_get_valid_bit(line); 2466f29dbc25Smrg#endif 2467f29dbc25Smrg return (valid); 2468f29dbc25Smrg} 2469f29dbc25Smrg 2470f29dbc25Smrg/*--------------------------------------------------------------------------- 2471f29dbc25Smrg * gfx_get_display_video_color_key 2472f29dbc25Smrg *--------------------------------------------------------------------------- 2473f29dbc25Smrg */ 2474f29dbc25Smrgunsigned long 2475f29dbc25Smrggfx_get_display_video_color_key(void) 2476f29dbc25Smrg{ 2477f29dbc25Smrg unsigned long value = 0; 2478f29dbc25Smrg return (value); 2479f29dbc25Smrg} 2480f29dbc25Smrg 2481f29dbc25Smrg/*--------------------------------------------------------------------------- 2482f29dbc25Smrg * gfx_get_display_video_offset 2483f29dbc25Smrg *--------------------------------------------------------------------------- 2484f29dbc25Smrg */ 2485f29dbc25Smrgunsigned long 2486f29dbc25Smrggfx_get_display_video_offset(void) 2487f29dbc25Smrg{ 2488f29dbc25Smrg unsigned long offset = 0; 2489f29dbc25Smrg 2490f29dbc25Smrg#if GFX_DISPLAY_GU1 2491f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 2492f29dbc25Smrg offset = gu1_get_display_video_offset(); 2493f29dbc25Smrg#endif 2494f29dbc25Smrg#if GFX_DISPLAY_GU2 2495f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 2496f29dbc25Smrg offset = gu2_get_display_video_offset(); 2497f29dbc25Smrg#endif 2498f29dbc25Smrg return (offset); 2499f29dbc25Smrg} 2500f29dbc25Smrg 2501f29dbc25Smrg/*--------------------------------------------------------------------------- 2502f29dbc25Smrg * gfx_get_display_video_yuv_offsets 2503f29dbc25Smrg *--------------------------------------------------------------------------- 2504f29dbc25Smrg */ 2505f29dbc25Smrgvoid 2506f29dbc25Smrggfx_get_display_video_yuv_offsets(unsigned long *yoffset, 2507f29dbc25Smrg unsigned long *uoffset, unsigned long *voffset) 2508f29dbc25Smrg{ 2509f29dbc25Smrg#if GFX_DISPLAY_GU2 2510f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 2511f29dbc25Smrg gu2_get_display_video_yuv_offsets(yoffset, uoffset, voffset); 2512f29dbc25Smrg#endif 2513f29dbc25Smrg} 2514f29dbc25Smrg 2515f29dbc25Smrg/*--------------------------------------------------------------------------- 2516f29dbc25Smrg * gfx_get_display_video_yuv_offsets 2517f29dbc25Smrg *--------------------------------------------------------------------------- 2518f29dbc25Smrg */ 2519f29dbc25Smrgvoid 2520f29dbc25Smrggfx_get_display_video_yuv_pitch(unsigned long *ypitch, unsigned long *uvpitch) 2521f29dbc25Smrg{ 2522f29dbc25Smrg#if GFX_DISPLAY_GU2 2523f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 2524f29dbc25Smrg gu2_get_display_video_yuv_pitch(ypitch, uvpitch); 2525f29dbc25Smrg#endif 2526f29dbc25Smrg} 2527f29dbc25Smrg 2528f29dbc25Smrg/*--------------------------------------------------------------------------- 2529f29dbc25Smrg * gfx_get_display_video_downscale_delta 2530f29dbc25Smrg *--------------------------------------------------------------------------- 2531f29dbc25Smrg */ 2532f29dbc25Smrgunsigned long 2533f29dbc25Smrggfx_get_display_video_downscale_delta(void) 2534f29dbc25Smrg{ 2535f29dbc25Smrg unsigned long ret_value = 0; 2536f29dbc25Smrg 2537f29dbc25Smrg#if GFX_DISPLAY_GU2 2538f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 2539f29dbc25Smrg ret_value = gu2_get_display_video_downscale_delta(); 2540f29dbc25Smrg#endif 2541f29dbc25Smrg 2542f29dbc25Smrg return ret_value; 2543f29dbc25Smrg} 2544f29dbc25Smrg 2545f29dbc25Smrg/*--------------------------------------------------------------------------- 2546f29dbc25Smrg * gfx_get_display_video_downscale_delta 2547f29dbc25Smrg *--------------------------------------------------------------------------- 2548f29dbc25Smrg */ 2549f29dbc25Smrgint 2550f29dbc25Smrggfx_get_display_video_downscale_enable(void) 2551f29dbc25Smrg{ 2552f29dbc25Smrg int ret_value = 0; 2553f29dbc25Smrg 2554f29dbc25Smrg#if GFX_DISPLAY_GU2 2555f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 2556f29dbc25Smrg ret_value = gu2_get_display_video_downscale_enable(); 2557f29dbc25Smrg#endif 2558f29dbc25Smrg 2559f29dbc25Smrg return ret_value; 2560f29dbc25Smrg} 2561f29dbc25Smrg 2562f29dbc25Smrg/*--------------------------------------------------------------------------- 2563f29dbc25Smrg * gfx_get_display_video_size 2564f29dbc25Smrg *--------------------------------------------------------------------------- 2565f29dbc25Smrg */ 2566f29dbc25Smrgunsigned long 2567f29dbc25Smrggfx_get_display_video_size(void) 2568f29dbc25Smrg{ 2569f29dbc25Smrg unsigned long size = 0; 2570f29dbc25Smrg 2571f29dbc25Smrg#if GFX_DISPLAY_GU1 2572f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU1) 2573f29dbc25Smrg size = gu1_get_display_video_size(); 2574f29dbc25Smrg#endif 2575f29dbc25Smrg#if GFX_DISPLAY_GU2 2576f29dbc25Smrg if (gfx_display_type & GFX_DISPLAY_TYPE_GU2) 2577f29dbc25Smrg size = gu2_get_display_video_size(); 2578f29dbc25Smrg#endif 2579f29dbc25Smrg return (size); 2580f29dbc25Smrg} 2581f29dbc25Smrg 2582f29dbc25Smrg/*--------------------------------------------------------------------------- 2583f29dbc25Smrg * gfx_get_display_video_color_key_mask 2584f29dbc25Smrg *--------------------------------------------------------------------------- 2585f29dbc25Smrg */ 2586f29dbc25Smrgunsigned long 2587f29dbc25Smrggfx_get_display_video_color_key_mask(void) 2588f29dbc25Smrg{ 2589f29dbc25Smrg unsigned long mask = 0; 2590f29dbc25Smrg return (mask); 2591f29dbc25Smrg} 2592f29dbc25Smrg 2593f29dbc25Smrg#endif /* GFX_READ_ROUTINES */ 2594f29dbc25Smrg 2595f29dbc25Smrg#endif /* GFX_DISPLAY_DYNAMIC */ 2596