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

📄 crtcrpro.c

📁 此代码为WCE5.0下显示器的源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
    lpEnableData->pfnSetGammaCorrection              = RageProSetGammaCorrection;
    lpEnableData->pfnSetMode                         = RageProSetMode;
    lpEnableData->pfnSetPalette                      = RageProSetPalette;
    lpEnableData->pfnSetTextCursorBlinkingAdjustment = NULL;
    lpEnableData->pfnSetOverlayGammaAdjustment       = NULL;
    lpEnableData->pfnGetCrtcTimings                  = RageProGetCrtcTimings;
    lpEnableData->pfnGetExpansionSetting             = bGetExpansionSetting;

    lpEnableData->pfnGetTotalHTime                   = NULL;
    lpEnableData->pfnCalculateModeBandwidth          = NULL;
    lpEnableData->pfnCalculateModeHorizontalTime     = NULL;
    lpEnableData->pfnCalculateOverlayBandwidth       = NULL;
    lpEnableData->pfnCalculateOverlayHorizontalTime  = NULL;
    lpEnableData->pfnCalculateVideoBandwidth         = NULL;
    lpEnableData->pfnCalculateVideoHorizontalTime    = NULL;
    lpEnableData->pfnCalculateHFBBandwidth           = NULL;
    lpEnableData->pfnCalculateHFBHorizontalTime      = NULL;
    lpEnableData->pfnCalculateHTimeAdjustment        = NULL;
    lpEnableData->pfnGetCrtcLine                     = RageProGetCrtcLine;

    // Fill in adapter-specific information.
    switch (lpHwAsicID->ulChipFamily)
    {
        case FAMILY_GTC:
            lpEnableData->lpAdapterName                      = "ATI 3D RAGE PRO";

            lpEnableData->aControllerCaps[0]                 = DAL_CONTROLLER_CAPS_EXPANSION     |
                                                               DAL_CONTROLLER_CAPS_OVERLAY       |
                                                               DAL_CONTROLLER_CAPS_VGA           |
                                                               DAL_CONTROLLER_CAPS_OVERLAY_GAMMA |  // EPR# 35497, task# 4360
                                                               DAL_CONTROLLER_CAPS_CURSOR_BLINK  |  //
                                                               DAL_CONTROLLER_CAPS_AMC8BIT_PORT1 |
                                                               DAL_CONTROLLER_CAPS_AMC8BIT_PORT2 |
                                                               DAL_CONTROLLER_CAPS_AMC16BIT_PORT ;

			//[vichan] Port by [espiritu] for Rage Pro DAL support. 

			lpHwCrtc->ulGCOSupportedRegSet					=  RAGE_PRO_CRT_REGISTER_SET | RAGE_PRO_EXTERNAL_TVO | RAGE_LTPRO_REGISTER_SET;

            lpEnableData->ulFunctionHooks                   |= GCO_HOOK_TEXT_CURSOR_BLINKING_ADJUSTMENT |
                                                               GCO_HOOK_OVERLAY_GAMMA_ADJUSTMENT |
                                                               GCO_CALCULATE_MEMORY_BANDWIDTH |
                                                               GCO_CALCULATE_HORIZONTAL_TIME|
                                                               GCO_HOOK_GET_HARDWARE_INFO_TABLE |
                                                               GCO_HOOK_GET_MULTIMEDIA_TABLE|
                                                               GCO_HOOK_SET_DISPLAY_OFFSET; 


            lpEnableData->pfnGetTextCursorBlinkingAdjustment = RageProGetTextCursorBlinkingAdjustment;
            lpEnableData->pfnGetOverlayGammaAdjustment       = RageProGetOverlayGammaAdjustment;
            lpEnableData->pfnSetTextCursorBlinkingAdjustment = RageProSetTextCursorBlinkingAdjustment;
            lpEnableData->pfnSetOverlayGammaAdjustment       = RageProSetOverlayGammaAdjustment;

            lpEnableData->pfnSetDisplayOffset                = RageProSetDisplayOffset;
            lpEnableData->pfnGetMultimediaTable              = RageProGetMultimediaTable;
            lpEnableData->pfnGetHardwareInfoTable            = RageProGetHardwareInfoTable;
            lpEnableData->pfnGetModeTiming                   = RageProGetModeTiming;


            //Bandwidth related functions
            lpEnableData->pfnGetTotalHTime                   = vMBW_GetTotalHTime;
            lpEnableData->pfnCalculateModeBandwidth          = vMBW_CalculateModeBandwidth;
            lpEnableData->pfnCalculateModeHorizontalTime     = vMBW_CalculateModeHTime;
            lpEnableData->pfnCalculateOverlayBandwidth       = vMBW_CalculateOverlayBandwidth;
            lpEnableData->pfnCalculateOverlayHorizontalTime  = vMBW_CalculateOverlayHTime;
            lpEnableData->pfnCalculateVideoBandwidth         = vMBW_CalculateVideoBandwidth;
            lpEnableData->pfnCalculateVideoHorizontalTime    = vMBW_CalculateVideoHTime;

            lpHwCrtc->ulDspConfig[0] = 0;
            lpHwCrtc->ulDspConfig[1] = 0;

            lpHwCrtc->ulDspOnOff[0] = 0;
            lpHwCrtc->ulDspOnOff[1] = 0;

            lpHwCrtc->ulCurrentDeviceMap[0] =0;
            lpHwCrtc->ulCurrentDeviceMap[1] =0;
            
            ulTemp  = MMREADULONG(lpHwCrtc->HwAsicId.lpMMR, CONFIG_STAT0);

            if ((ulTemp & CONFIG_STAT0_CfgMemType) > 0x05)
              lpHwCrtc->ulMemoryInterface = MEMORY_INTERFACE_32BIT;
            else
              lpHwCrtc->ulMemoryInterface = MEMORY_INTERFACE_64BIT;

            break;

        case FAMILY_LT_PRO:
            lpEnableData->lpAdapterName                      = "ATI 3D RAGE LT PRO";
            lpEnableData->ulNumberOfControllers              = 2;

            lpEnableData->aControllerCaps[0]                 = DAL_CONTROLLER_CAPS_EXPANSION    |
                                                               DAL_CONTROLLER_CAPS_OVERLAY      |
                                                               DAL_CONTROLLER_CAPS_VGA          |
                                                               //DAL_CONTROLLER_CAPS_HW_CURSOR    |
                                                               //DAL_CONTROLLER_CAPS_HW_ICON      |
                                                               DAL_CONTROLLER_CAPS_OVERLAY_GAMMA|
                                                               DAL_CONTROLLER_CAPS_CURSOR_BLINK |
                                                               DAL_CONTROLLER_CAPS_EXCLUSIVE_HW_CURSOR_ICON |
                                                               DAL_CONTROLLER_CAPS_SHADOW_REGISTER_SET |
                                                               DAL_CONTROLLER_CAPS_AMC8BIT_PORT1 |
                                                               DAL_CONTROLLER_CAPS_AMC8BIT_PORT2 |
                                                               DAL_CONTROLLER_CAPS_AMC16BIT_PORT ;

            lpEnableData->aControllerCaps[1]                 = DAL_CONTROLLER_CAPS_SHADOW_REGISTER_SET;
                                                               //second controller can not support
                                                               //any of the above features except for
                                                               //fact that SYNC shadow registers could
                                                               //be used to drive the LCD.

            lpEnableData->bEnabledAtBoot[1]                  = TRUE;

            lpEnableData->ulFunctionHooks                   |= GCO_HOOK_TEXT_CURSOR_BLINKING_ADJUSTMENT |
                                                               GCO_HOOK_OVERLAY_GAMMA_ADJUSTMENT |
                                                               GCO_CALCULATE_MEMORY_BANDWIDTH |
                                                               GCO_CALCULATE_HORIZONTAL_TIME|
                                                               GCO_HOOK_ADJUST_HORIZONTAL_TIME |
                                                               GCO_CALCULATE_HALFFRAMEBUFFER_BANDWIDTH |
                                                               GCO_CALCULATE_HALFFRAMEBUFFER_HTIME |
                                                               GCO_HOOK_GET_HARDWARE_INFO_TABLE |
                                                               GCO_HOOK_GET_MULTIMEDIA_TABLE |
                                                               GCO_HOOK_RATIOMETRIC_EXPANSION_ADJUSTMENT |
                                                               GCO_HOOK_SET_DISPLAY_OFFSET |
                                                               GCO_HOOK_UPDATEBIOSDISPLAYINFO |
                                                               GCO_HOOK_GETCRC  |
                                                               GCO_HOOK_GETHWDATA;

            lpEnableData->pfnGetTextCursorBlinkingAdjustment = RageProGetTextCursorBlinkingAdjustment;
            lpEnableData->pfnGetOverlayGammaAdjustment       = RageProGetOverlayGammaAdjustment;
            lpEnableData->pfnSetTextCursorBlinkingAdjustment = RageProSetTextCursorBlinkingAdjustment;
            lpEnableData->pfnSetOverlayGammaAdjustment       = RageProSetOverlayGammaAdjustment;

            lpEnableData->pfnSetDisplayOffset                = RageProSetDisplayOffset;
            lpEnableData->pfnGetMultimediaTable              = RageProGetMultimediaTable;
            lpEnableData->pfnGetHardwareInfoTable            = RageProGetHardwareInfoTable;
            lpEnableData->pfnUpdateBIOSDisplayInfo           = RageProUpdateBIOSDisplayInfo;
            lpEnableData->pfnGetCRC                          = RageProGetCRC;
            lpEnableData->pfnGetHardwareData                 = RageProGetHardwareData;
            lpEnableData->pfnGetModeTiming                   = RageProGetModeTiming;           
             
            //Bandwidth related functions
            lpEnableData->pfnGetTotalHTime                   = vMBW_GetTotalHTime;
            lpEnableData->pfnCalculateModeBandwidth          = vMBW_CalculateModeBandwidth;
            lpEnableData->pfnCalculateModeHorizontalTime     = vMBW_CalculateModeHTime;
            lpEnableData->pfnCalculateOverlayBandwidth       = vMBW_CalculateOverlayBandwidth;
            lpEnableData->pfnCalculateOverlayHorizontalTime  = vMBW_CalculateOverlayHTime;
            lpEnableData->pfnCalculateVideoBandwidth         = vMBW_CalculateVideoBandwidth;
            lpEnableData->pfnCalculateVideoHorizontalTime    = vMBW_CalculateVideoHTime;
            lpEnableData->pfnCalculateHTimeAdjustment        = vMBW_AdjustHTime;
            lpEnableData->pfnCalculateHFBBandwidth           = vMBW_CalculateHFBBandwidth;
            lpEnableData->pfnCalculateHFBHorizontalTime      = vMBW_CalculateHFBHTime;


            lpHwCrtc->ulDspConfig[0] = 0;
            lpHwCrtc->ulDspConfig[1] = 0;

            lpHwCrtc->ulDspOnOff[0] = 0;
            lpHwCrtc->ulDspOnOff[1] = 0;

            lpHwCrtc->ulCurrentDeviceMap[0] =0;
            lpHwCrtc->ulCurrentDeviceMap[1] =0;

            lpHwCrtc->ulMemoryInterface = MEMORY_INTERFACE_64BIT;

            lpHwCrtc->ulGCOSupportedRegSet = RAGE_PRO_LCD_REGISTER_SET    |
                                             RAGE_PRO_CRT_REGISTER_SET    |
                                             RAGE_PRO_TVO_REGISTER_SET    |
                                             RAGE_PRO_CRTC2_REGISTER_SET  |
                                             RAGE_LTPRO_REGISTER_SET;

            lpHwCrtc->ulBiosInfoTableSiganture = LTPRO_BIOS_INFO_TABLE_SIGNATURE;

            lpHwCrtc->ulLCDIndexRegisterMask = LT_PRO_LCD_INDEX_MASK;

            break;

        case FAMILY_RAGE_MOBILITY:

            lpEnableData->lpAdapterName                      = "ATI 3D RAGE MOBILITY";
            lpEnableData->ulNumberOfControllers              = 2;

            lpEnableData->aControllerCaps[0]                 = DAL_CONTROLLER_CAPS_EXPANSION    |
                                                               DAL_CONTROLLER_CAPS_OVERLAY      |
                                                               DAL_CONTROLLER_CAPS_VGA          |
                                                               DAL_CONTROLLER_CAPS_HW_CURSOR    |
                                                               DAL_CONTROLLER_CAPS_HW_ICON      |
                                                               DAL_CONTROLLER_CAPS_OVERLAY_GAMMA|
                                                               DAL_CONTROLLER_CAPS_CURSOR_BLINK |
                                                               DAL_CONTROLLER_CAPS_SWITCHABLE_OVERLAY  |
                                                               DAL_CONTROLLER_CAPS_SHADOW_REGISTER_SET |
                                                               DAL_CONTROLLER_CAPS_AMC8BIT_PORT1 |
                                                               DAL_CONTROLLER_CAPS_AMC8BIT_PORT2 |
                                                               DAL_CONTROLLER_CAPS_AMC16BIT_PORT ;


            lpEnableData->aControllerCaps[1]                 = DAL_CONTROLLER_CAPS_HW_CURSOR    |
                                                               DAL_CONTROLLER_CAPS_HW_ICON      |
                                                               DAL_CONTROLLER_CAPS_SWITCHABLE_OVERLAY |
                                                               DAL_CONTROLLER_CAPS_SHADOW_REGISTER_SET;

            lpEnableData->bEnabledAtBoot[1]                  = TRUE;

            lpEnableData->ulFunctionHooks                   |= GCO_HOOK_TEXT_CURSOR_BLINKING_ADJUSTMENT |
                                                               GCO_HOOK_OVERLAY_GAMMA_ADJUSTMENT |
                                                               GCO_CALCULATE_MEMORY_BANDWIDTH |
                                                               GCO_CALCULATE_HORIZONTAL_TIME|
                                                               GCO_HOOK_ADJUST_HORIZONTAL_TIME |
                                                               GCO_CALCULATE_HALFFRAMEBUFFER_BANDWIDTH |
                                                               GCO_CALCULATE_HALFFRAMEBUFFER_HTIME |
                                                               GCO_HOOK_GET_HARDWARE_INFO_TABLE |
                                                               GCO_HOOK_GET_MULTIMEDIA_TABLE |
                                                               GCO_HOOK_SET_DISPLAY_OFFSET |
                                                               GCO_HOOK_ENABLE_OVERLAY |
                                                               GCO_HOOK_RATIOMETRIC_EXPANSION_ADJUSTMENT |
                                                               GCO_HOOK_UPDATEBIOSDISPLAYINFO            |
                                                               GCO_HOOK_GETCRC  |
                                                               GCO_HOOK_GETHWDATA;

            lpEnableData->pfnGetTextCursorBlinkingAdjustment = RageProGetTextCursorBlinkingAdjustment;
            lpEnableData->pfnGetOverlayGammaAdjustment       = RageProGetOverlayGammaAdjustment;
            lpEnableData->pfnSetTextCursorBlinkingAdjustment = RageProSetTextCursorBlinkingAdjustment;
            lpEnableData->pfnSetOverlayGammaAdjustment       = RageProSetOverlayGammaAdjustment;

            lpEnableData->pfnSetDisplayOffset                = RageProSetDisplayOffset;
            lpEnableData->pfnGetMultimediaTable              = RageProGetMultimediaTable;
            lpEnableData->pfnGetHardwareInfoTable            = RageProGetHardwareInfoTable;
            lpEnableData->pfnEnableOverlay                   = RageMobilityEnableOverlay;
            lpEnableData->pfnUpdateBIOSDisplayInfo           = RageProUpdateBIOSDisplayInfo;
            lpEnableData->pfnGetCRC                          = RageProGetCRC;
            lpEnableData->pfnGetHardwareData                 = RageProGetHardwareData;
            lpEnableData->pfnGetModeTiming                   = RageProGetModeTiming;

           
            //Bandwidth related functions
            lpEnableData->pfnGetTotalHTime                   = vMBW_GetTotalHTime;
            lpEnableData->pfnCalculateModeBandwidth          = vMBW_CalculateModeBandwidth;
            lpEnableData->pfnCalculateModeHorizontalTime     = vMBW_CalculateModeHTime;
            lpEnableData->pfnCalculateOverlayBandwidth       = vMBW_CalculateOverlayBandwidth;
            lpEnableData->pfnCalculateOverlayHorizontalTime  = vMBW_CalculateOverlayHTime;
            lpEnableData->pfnCalculateVideoBandwidth         = vMBW_CalculateVideoBandwidth;
            lpEnableData->pfnCalculateVideoHorizontalTime    = vMBW_CalculateVideoHTime;
            lpEnableData->pfnCalculateHTimeAdjustment        = vMBW_AdjustHTime;
            lpEnableData->pfnCalculateHFBBandwidth           = vMBW_CalculateHFBBandwidth;
            lpEnableData->pfnCalculateHFBHorizontalTime      = vMBW_CalculateHFBHTime;


            lpHwCrtc->ulDspConfig[0] = 0;
            lpHwCrtc->ulDspConfig[1] = 0;

            lpHwCrtc->ulDspOnOff[0] = 0;
            lpHwCrtc->ulDspOnOff[1] = 0;

            lpHwCrtc->ulCurrentDeviceMap[0] =0;
            lpHwCrtc->ulCurrentDeviceMap[1] =0;

            ulTemp  = MMREADULONG(lpHwCrtc->HwAsicId.lpMMR, CONFIG_STAT0);

            if ((ulTemp & CONFIG_STAT0_CfgMemType) == 0x06)
              lpHwCrtc->ulMemoryInterface = MEMORY_INTERFACE_32BIT;
            else
              lpHwCrtc->ulMemoryInterface = MEMORY_INTERFACE_64BIT;

            lpHwCrtc->ulGCOSupportedRegSet = RAGE_PRO_LCD_REGISTER_SET    |
                                             RAGE_PRO_CRT_REGISTER_SET    |
                                             RAGE_PRO_TVO_REGISTER_SET    |
                                             RAGE_PRO_CRTC2_REGISTER_SET  |
                                             EXT_MOBILITY_REGISTER_SET    |
                                             RAGE_LTPRO_REGISTER_SET;

            lpHwCrtc->ulBiosInfoTableSiganture = RAGEMOBILITY_BIOS_INFO_TABLE_SIGNATURE;

            lpHwCrtc->ulLCDIndexRegisterMask = MOBILITY_XL_XC_LCD_INDEX_MASK;

⌨️ 快捷键说明

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