⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tbl1622.h

📁 VIA Framebuffer driver
💻 H
📖 第 1 页 / 共 5 页
字号:
/*
 * Copyright 1998-2003 VIA Technologies, Inc. All Rights Reserved.
 * Copyright 2001-2003 S3 Graphics, Inc. All Rights Reserved.
 *
 * Permission is hereby granted, free of charge, to any person obtaining a
 * copy of this software and associated documentation files (the "Software"),
 * to deal in the Software without restriction, including without limitation
 * the rights to use, copy, modify, merge, publish, distribute, sub license,
 * and/or sell copies of the Software, and to permit persons to whom the
 * Software is furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice (including the
 * next paragraph) shall be included in all copies or substantial portions
 * of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
 * VIA, S3 GRAPHICS, AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
 * DEALINGS IN THE SOFTWARE.
 */
 
#ifndef __TBL1622_H__
#define __TBL1622_H__

#include "share.h"

/***************************/
/* VT1622 TV Encoder Table*/
/***************************/

typedef struct _vt1622_func_table {
    int     tv_func_index;
    u16     *tv_underscan;
    u16     *tv_fitscan;
    u16     *tv_overscan;
} vt1622_func_table;

struct vt1622_table {
    int     tv_index;
    vt1622_func_table   *tv_mode_ntsc;
    vt1622_func_table   *tv_mode_pal;
};


/* Underscan table */
static u16 VT1622_N640x480_VN[] = {
						                        // 
    0x0400, 0x0001, 0x0002, 0x0203, 0x0304,     // TV.00-04
    0x0005, 0x1006, 0x7E07, 0x9D08, 0x0D09,     // Tv.05-09
    0x600A, 0x170B, 0x520C, 0x450D, 0x0F0E,     // TV.0A-0E
    0x000F, 0x0010, 0x0011, 0xD012, 0x3313,     // TV.0F-13
    0xBF14, 0x3A15, 0xF116, 0x9117, 0x2418,     // TV.14-18
    0x2519, 0xE91A, 0x031B, 0x001C, 0x801D,     // TV.19-1D
    0x001E, 0x051F, 0x1220, 0x0C21, 0x0422,     // TV.1E-22
    0x7423, 0x0024,                             // TV.23-24

						                        // 
    0x5A25, 0x2F26, 0x9727, 0x5028, 0x0029,     // TV.5-29
    0x002A, 0xAA2B, 0x2B2C, 0x7A2D, 0xD82E,     // TV.2A-2E
    0x002F,                                     // TV.2F

						                        // Filter registers
    0xDC4A, 0x504B, 0x044C, 0x004D, 0x004E,     // TV.4A-4E
    0x404F,                                     // TV.4F

						                        // Set Video Timing (TV Timing Regsiter )
    0x0F50, 0x8151, 0x2352, 0x5753, 0x0254,     // TV.50-54
    0x0F55, 0x2956, 0x7357, 0x2358, 0x8659,     // TV.55-59
    0xC45A, 0xEA5B, 0xDF5C, 0x055D,             // TV.5A-5D
						                        // Set Video Timing (TV CRTC Regsiter )
    0x925E, 0xA15F, 0x0460, 0x0061, 0x0062,     // TV.5E-62
    0x7F63, 0x0364,                             // TV.63-64

  //HT,  HA,  HBS, HBE, HSS, HSE, VT,  VA,  VBS, VBE, VSS, VSE
    784, 640, 640, 144, 656, 56,  600, 480, 480, 120, 488, 7


};

#define NUM_TOTAL_VT1622_REG ARRAY_SIZE(VT1622_N640x480_VN) -NUM_CRTC_TIMING

static u16 VT1622_N800x600_VN[] = {
						                        // 
    0x8400, 0x0001, 0x0002, 0x2403, 0x0304,     // TV.00-04
    0x0005, 0x1006, 0xDE07, 0xD408, 0x0E09,     // TV.05-09
    0x590A, 0x170B, 0x460C, 0x400D, 0x0F0E,     // TV.0A-0E
    0x000F, 0x0010, 0x0011, 0xEA12, 0x0D13,     // TV.0F-13
    0x9814, 0x1C15, 0x9616, 0x5017, 0x5E18,     // TV.14-18
    0x1B19, 0x3D1A, 0x031B, 0x011C, 0x801D,     // TV.19-1D
    0x001E, 0x851F, 0x0D20, 0x0A21, 0x0422,     // TV.1E-22
    0x7423, 0x0024,                             // TV.23-24

						                        // 
    0x5A25, 0x4126, 0x9627, 0x6B28, 0x0029,     // TV.25-29
    0x002A, 0xAA2B, 0x2B2C, 0xA62D, 0x1E2E,     // TV.2A-2E
    0x102F,                                     // TV.2F

						                        // Filter registers
    0xE44A, 0x694B, 0x044C, 0x004D, 0x004E,     // TV.4A-4E
    0x3F4F,                                     // TV.4F

						                        // Set Video Timing (TV Timing Regsiter )
    0x2750, 0x2151, 0x3452, 0xED53, 0x0254,     // TV.50-54
    0x2755, 0xF556, 0x9D57, 0x2458, 0xB759,     // TV.55-59
    0x0D5A, 0x405B, 0x005C, 0x585D,             // TV.5A-5D
						                        // Set Video Timing (TV CRTC Regsiter )
    0xB65E, 0x3B5F, 0x0560, 0x0061, 0x0162,     // TV.5E-62
    0xEF63, 0x0564,                             // TV.63-64

  //HT,  HA,  HBS, HBE, HSS, HSE, VT,  VA,  VBS, VBE, VSS, VSE
    1064,800, 800, 264, 840, 136, 750, 600, 600, 150, 606, 16
};

static u16 VT1622_N1024x768_VN[] = {
						                        // 
    0x8400, 0x0001, 0x0002, 0x4403, 0x0304,     // TV.00-04
    0x0005, 0x1006, 0x8007, 0x1508, 0x0A09,     // TV.05-09
    0x580A, 0x170B, 0x5B0C, 0x400D, 0x0F0E,     // TV.0A-0E
    0x000F, 0x0010, 0x0011, 0xE912, 0x1E13,     // TV.0F-13
    0x9D14, 0x1915, 0xD616, 0x6617, 0xEB18,     // TV.14-18
    0x1419, 0x9C1A, 0x031B, 0x051C, 0x801D,     // TV.19-1D
    0x001E, 0x851F, 0x0A20, 0x0521, 0x0422,     // TV.1E-22
    0x7423, 0x0024,                             // TV.23-24

						                        // 
    0x5A25, 0x5626, 0x9627, 0x8B28, 0x0029,     // TV.25-29
    0x002A, 0xAA2B, 0x2B2C, 0xDA2D, 0x792E,     // TV.2A-2E
    0x102F,                                     // TV.2F

						                        // Filter registers
    0xDA4A, 0x504B, 0x044C, 0x004D, 0x004E,     // TV.4A-4E
    0x3F4F,                                     // TV.4F

						                        // Set Video Timing (TV Timing Regsiter )
    0x8750, 0xFF51, 0x3452, 0xB053, 0x0354,     // TV.50-54
    0x6F55, 0xDB56, 0xCD57, 0x3558, 0xF159,     // TV.55-59
    0x5E5A, 0xA55B, 0x7E5C, 0x5A5D,             // TV.5A-5D
						                        // Set Video Timing (TV CRTC Regsiter )
    0x335E, 0x265F, 0x0760, 0x0061, 0x0162,     // TV.5E-62
    0x2763, 0x0864,                             // TV.63-64

  //HT,  HA,  HBS, HBE, HSS, HSE, VT,  VA,  VBS, VBE, VSS, VSE
    1160,1024,1024,136, 1032,56,  945, 768, 768, 177, 789, 6

};

static u16 VT1622_N848x480_VN[] = {
						                        // 
    0x8400, 0x0001, 0x0002, 0x2403, 0x0304,     // TV.00-04
    0x0005, 0x1006, 0x4607, 0xCC08, 0x0E09,     // TV.05-09
    0x560A, 0x170B, 0x430C, 0x3E0D, 0x0F0E,     // TV.0A-0E
    0x000F, 0x0010, 0x0011, 0xE812, 0x2913,     // TV.0F-13
    0x6714, 0x1915, 0x6316, 0xA817, 0x3C18,     // TV.14-18
    0x1D19, 0x291A, 0x031B, 0x0B1C, 0x801D,     // TV.19-1D
    0x001E, 0x851F, 0x0E20, 0x0821, 0x0422,     // TV.1E-22
    0x7423, 0x0024,                             // TV.23-24

						                        // 
    0x5A25, 0x3D26, 0x9627, 0x6428, 0x0029,     // TV.25-29
    0x002A, 0xAA2B, 0x2B2C, 0x9C2D, 0x172E,     // TV.2A-2E
    0x102F,                                     // TV.2F

						                        // Filter registers
    0xDC4A, 0x504B, 0x004C, 0x004D, 0x004E,     // TV.4A-4E
    0x404F,                                     // TV.4F

						                        // Set Video Timing (TV Timing Regsiter )
    0xAF50, 0x5151, 0x3452, 0x4453, 0x0254,     // TV.50-54
    0xE355, 0xC156, 0x9357, 0x2358, 0xAD59,     // TV.55-59
    0xFD5A, 0x2B5B, 0x7C5C, 0x175D,             // TV.5A-5D
						                        // Set Video Timing (TV CRTC Regsiter )
    0x6D5E, 0xCA5F, 0x0460, 0x0061, 0x0162,     // TV.5E-62
    0x2F63, 0x0564,                             // TV.63-64

  //HT,  HA,  HBS, HBE, HSS, HSE, VT,  VA,  VBS, VBE, VSS, VSE
    1200,848, 848, 352, 872, 64,  581, 480, 480, 101, 496, 13
};

static u16 VT1622_N720x480_VN[] = {
						                        // 
    0x0400, 0x0001, 0x0002, 0x2603, 0x0304,     // TV.00-04
    0x0005, 0x1006, 0x6D07, 0xC308, 0x0809,     // TV.05-09
    0x560A, 0x170B, 0x430C, 0x3E0D, 0x0F0E,     // TV.0A-0E
    0x000F, 0x0010, 0x0011, 0x0D12, 0x0713,     // TV.0F-13
    0x6014, 0x3415, 0x1816, 0x5517, 0x5518,     // TV.14-18
    0x1E19, 0x1E1A, 0x031B, 0x031C, 0x801D,     // TV.19-1D
    0x001E, 0x851F, 0x0F20, 0x0821, 0x0422,     // TV.1E-22
    0x7423, 0x0024,                             // TV.23-24

						                        // 
    0x5A25, 0x3926, 0x9527, 0x5E28, 0x0029,     // TV.25-29
    0x002A, 0xAA2B, 0x2B2C, 0x922D, 0xFF2E,     // TV.2A-2E
    0x002F,                                     // TV.2F

						                        // Filter registers
    0xE44A, 0x694B, 0x044C, 0x004D, 0x004E,     // TV.4A-4E
    0x404F,                                     // TV.4F

						                        // Set Video Timing (TV Timing Regsiter )
    0x4750, 0xD151, 0x2352, 0x5753, 0x0254,     // TV.50-54
    0xBF55, 0xAF56, 0x8D57, 0x2358, 0xA459,     // TV.55-59
    0xF35A, 0x205B, 0x365C, 0x175D,             // TV.5A-5D
						                        // Set Video Timing (TV CRTC Regsiter )
    0x925E, 0x335F, 0x0460, 0x0061, 0x0062,     // TV.5E-62
    0xBF63, 0x0364,                             // TV.63-64

  //HT,  HA,  HBS, HBE, HSS, HSE, VT,  VA,  VBS, VBE, VSS, VSE
    840, 720, 720, 120, 728, 48,  600, 480, 480, 120, 512, 7
};

static u16 VT1622_P640x480_VN[] = {
						                        // 
    0x0400, 0x0001, 0x0002, 0x8203, 0x0004,     // TV.00-04
    0x0005, 0x1006, 0x3E07, 0xA408, 0x3709,     // TV.05-09
    0x670A, 0x000B, 0x490C, 0x490D, 0x0F0E,     // TV.0A-0E
    0x000F, 0x0010, 0x0011, 0xEC12, 0x2A13,     // TV.0F-13
    0xB814, 0x2915, 0x2D16, 0x7717, 0x6618,     // TV.14-18
    0x2D19, 0xED1A, 0x031B, 0x0A1C, 0x801D,     // TV.19-1D
    0x001E, 0x041F, 0x1220, 0x0C21, 0x0422,     // TV.1E-22
    0x7B23, 0x0024,                             // TV.23-24

						                        // 
    0x6425, 0x3026, 0x9327, 0x4928, 0x5F29,     // TV.25-29
    0x152A, 0xA52B, 0x232C, 0x7A2D, 0xCC2E,     // TV.2A-2E
    0x002F,                                     // TV.2F

						                        // Filter registers
    0xF94A, 0x504B, 0x044C, 0x004D, 0x004E,     // TV.4A-4E
    0x454F,                                     // TV.4F

						                        // Set Video Timing (TV Timing Regsiter )
    0xE750, 0x8151, 0x2352, 0x5753, 0x0254,     // TV.50-54
    0x1F55, 0x3156, 0x7557, 0x2358, 0x8A59,     // TV.55-59
    0xC85A, 0xF05B, 0xFF5C, 0x055D,             // TV.5A-5D
						                        // Set Video Timing (TV CRTC Regsiter )
    0xD75E, 0x8E5F, 0x0360, 0x7F61, 0xCF62,     // TV.5E-62
    0xBF63, 0x0364,                             // TV.63-64

  //HT,  HA,  HBS, HBE, HSS, HSE, VT,  VA,  VBS, VBE, VSS, VSE
    1000,640, 640, 360, 680, 72,  600, 480, 480, 120, 521, 5
};

static u16 VT1622_P800x600_VN[] = {
						                        // 
    0x8400, 0x0001, 0x0002, 0xA403, 0x0004,     // TV.00-04
    0x0005, 0x1906, 0x6607, 0xBF08, 0x1209,     // TV.05-09
    0x600A, 0x000B, 0x560C, 0x450D, 0x0F0E,     // TV.0A-0E
    0x000F, 0x0010, 0x0011, 0xEC12, 0x1513,     // TV.0F-13
    0xFD14, 0x2815, 0xE416, 0x7D17, 0x7A18,     // TV.14-18
    0x2719, 0x161A, 0x031B, 0x011C, 0x801D,     // TV.19-1D
    0x001E, 0x851F, 0x1020, 0x0C21, 0x0422,     // TV.1E-22
    0x7B23, 0x0024,                             // TV.23-24

						                        // 
    0x6425, 0x3726, 0x9327, 0x5428, 0x5F29,     // TV.25-29
    0x152A, 0xA52B, 0x232C, 0x8F2D, 0xF42E,     // TV.2A-2E
    0x002F,                                     // TV.2F

						                        // Filter registers
    0xE74A, 0x454B, 0x044C, 0x004D, 0x004E,     // TV.4A-4E
    0x444F,                                     // TV.4F

						                        // Set Video Timing (TV Timing Regsiter )
    0x9750, 0x2151, 0x3352, 0xED53, 0x0254,     // TV.50-54
    0x9755, 0x8756, 0x8757, 0x2358, 0x9F59,     // TV.55-59
    0xE75A, 0x165B, 0xE75C, 0x165D,             // TV.5A-5D
						                        // Set Video Timing (TV CRTC Regsiter )
    0xCC5E, 0xF35F, 0x0460, 0x0061, 0x0162,     // TV.5E-62
    0x4F63, 0x0464,                             // TV.63-64

  //HT,  HA,  HBS, HBE, HSS, HSE, VT,  VA,  VBS, VBE, VSS, VSE
    920, 800, 800, 120, 816, 64,  750, 600, 600, 150, 606, 16
};

static u16 VT1622_P1024x768_VN[] = {
						                        // 
    0x8400, 0x0001, 0x0002, 0x0C03, 0x0004,     // TV.00-04
    0x0005, 0x1006, 0xA007, 0x2A08, 0x3809,     // TV.05-09
    0x700A, 0x000B, 0x4E0C, 0x500D, 0x0F0E,     // TV.0A-0E
    0x000F, 0x0010, 0x0011, 0xE412, 0x2313,     // TV.0F-13
    0xD114, 0x0C15, 0x7216, 0xC317, 0x8C18,     // TV.14-18
    0x1A19, 0x961A, 0x031B, 0x071C, 0x801D,     // TV.19-1D
    0x001E, 0x851F, 0x0C20, 0x0C21, 0x0422,     // TV.1E-22
    0x7B23, 0x0024,                             // TV.23-24

						                        // 
    0x6425, 0x5326, 0x9027, 0x7B28, 0x5B29,     // TV.25-29
    0x152A, 0xA02B, 0x222C, 0xD12D, 0x712E,     // TV.2A-2E
    0x102F,                                     // TV.2F

						                        // Filter registers
    0xDD4A, 0x604B, 0x044C, 0x004D, 0x004E,     // TV.4A-4E
    0x454F,                                     // TV.4F

						                        // Set Video Timing (TV Timing Regsiter )
    0xAF50, 0xFF51, 0x3452, 0xB553, 0x0354,     // TV.50-54
    0x5755, 0xA856, 0xC857, 0x3558, 0xEC59,     // TV.55-59
    0x4C5A, 0xCC5B, 0x675C, 0x5A5D,             // TV.5A-5D
						                        // Set Video Timing (TV CRTC Regsiter )
    0x145E, 0x5C5F, 0x0660, 0x0061, 0x0162,     // TV.5E-62
    0x1F63, 0x0764,                             // TV.63-64

  //HT,  HA,  HBS, HBE, HSS, HSE, VT,  VA,  VBS, VBE, VSS, VSE
    1200,1024,1024,176, 1032,80,  950, 768, 768, 182, 802, 3
};

static u16 VT1622_P848x480_VN[] = {
						                        // 
    0x0400, 0x0001, 0x0002, 0xC203, 0x0004,     // TV.00-04
    0x0005, 0x1006, 0x4707, 0xE408, 0x0909,     // TV.05-09
    0x640A, 0x000B, 0x4F0C, 0x480D, 0x0F0E,     // TV.0A-0E
    0x000F, 0x0010, 0x0011, 0xE712, 0x0513,     // TV.0F-13
    0x2C14, 0x1C15, 0x1816, 0x2817, 0x8718,     // TV.14-18
    0x1F19, 0x5E1A, 0x031B, 0x091C, 0x801D,     // TV.19-1D
    0x001E, 0x841F, 0x0A20, 0x0C21, 0x0422,     // TV.1E-22
    0x7B23, 0x0024,                             // TV.23-24

						                        // 
    0x6425, 0x4626, 0x9327, 0x6828, 0x5F29,     // TV.25-29
    0x152A, 0xA52B, 0x232C, 0xB42D, 0x2A2E,     // TV.2A-2E
    0x102F,                                     // TV.2F

						                        // Filter registers
    0xE74A, 0x454B, 0x044C, 0x004D, 0x004E,     // TV.4A-4E
    0x434F,                                     // TV.4F

						                        // Set Video Timing (TV Timing Regsiter )
    0xAF50, 0x5151, 0x3452, 0x5753, 0x0254,     // TV.50-54
    0x7F55, 0x4F56, 0xA957, 0x3458, 0xD159,     // TV.55-59

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -