• Power Management Guidelines for Graphics Adapters
  • Power Interfaces for Windows Me Display Adapter Drivers
  • Display Adapter Power State Functions
  • Get_Adapter_Power_State_Caps
  • Interface between BaseVDD/MiniVDD/Display Drivers
  • Windows Family of Operating Systems




    Download 225.5 Kb.
    bet3/4
    Sana02.10.2020
    Hajmi225.5 Kb.
    #11939
    1   2   3   4

    Display Drivers

    Display Adapters Supported “in the Box”


    The following is a list of display adapters for which Windows Me will include built-in support with the new Power Management calls described later in this section:

    VGA

    Standard PCI VGA Adapter

    NeoMagic

    NeoMagic MagicGraph128XD

    NeoMagic MagicMedia256AV

    NeoMagic MagicMedia256ZX

    NeoMagic MagicMedia256XL+

    Nvidia


    Nvidia Aladdin TNT2

    Nvidia RIVA TNT

    Nvidia RIVA TNT2

    Nvidia RIVA TNT2 Pro

    Nvidia RIVA TNT2 Ultra

    Nvidia RIVA TNT2 Model 64

    Nvidia Quadro

    Nvidia Vanta



    ATI:

    ATI 3D Rage Pro

    Rage XL AGP 2X

    Rage XL AGP 2X

    Rage LT PRO AGP 2X

    Rage LT PRO PCI 2X

    Rage LT PRO PCI 2X

    Rage MOBILITY P AGP

    Rage MOBILITY P PCI

    Rage PRO TURBO AGP

    Rage PRO TURBO PCI

    Xpert@Play

    Xpert@Work
    Intel 810, 810e, 815

    Power Management Guidelines for Graphics Adapters


    The following summarizes the specific power management requirements for graphics adapters.
    From the PC 99 design guide:

    14.54 Graphics adapter complies with device class power management reference specification
    Required

    The Display Device Class Power Management Reference Specification, Version 1.0 or later, provides definitions of the OnNow device power states


    (D0–D3) for display and graphics devices. The specifi­cation also covers device functionality expected in each power state and the possible wake-up event definitions for the class, if any. Power states D0 and D3 are required; D1 and D2 are optional for graphics adapters.

    14.55 Graphics adapter complies with VBE/Core 2.0 extensions for power management
    Required

    The VESA BIOS Extension Standard/Core Functions 2.0 (VBE/Core 2.0) specification defines extensions to VGA ROM BIOS services for power management.


    Power Interfaces for Windows Me Display Adapter Drivers

    The information in this section is also on
    http://www.microsoft.com/hwdev/video/Mill_D3display.htm

    In the process of developing the hibernate feature (ACPI S4) for the Microsoft Windows Millennium Edition operating system, Microsoft found that many display adapters did not correctly support the D3 state. Some display adapters had problems in the BIOS, others had drivers that did not correctly restore register set, and others relied on Vaux current to maintain the state.

    To distinguish newer display adapter drivers and devices that have been modified and tested to support hibernation, in Windows Me Beta 2 and later releases, a new flag is added to Get_Adapter_Power_State_Caps and Set_Adapter_Power_State calls. If a system's display adapter drivers do not export these calls or do not implement the new flag, the system will not be placed in S4 (hibernate) state, and the hibernation feature UI will be disabled.

    Shortly after the display driver is loaded, Windows Me tests to determine whether the driver has exported the Get_Adapter_Power_State_Caps function. If this function is exported, Windows Me calls this function and examines its return value to determine the power states the device supports. Drivers indicate supported power states by OR’ing one or more of the following flags and returning this value in the Get_Adapter_Power_State_Caps call.

    #define CM_POWERSTATE_D0 0x00000001

    #define CM_POWERSTATE_D1 0x00000002

    #define CM_POWERSTATE_D2 0x00000004

    #define CM_POWERSTATE_D3 0x00000008

    #define CM_POWERSTATE_HIBERNATE 0x00000010


    // new flag to indicate hibernate support
    NOTE: This implementation is required for drivers to accurately indicate supported power states.

    Do not indicate support of CM_POWERSTATE_D3 unless your device has been thoroughly tested on a bus that loses both VCC and Vaux power when the system is placed in S3. Likewise, do not set the CM_POWERSTATE_HIBERNATE flag unless your device has undergone thorough hibernation testing.

    If the display driver doesn't export the Get_Adapter_Power_State_Caps call or doesn't set the CM_POWERSTATE_HIBERNATE bit in the return value, Windows Me will disable the hibernation feature. Because older Windows 95/98 display drivers did not implement the CM_POWERSTATE_HIBERNATE flag, Windows Me will disable hibernation for these older devices and drivers.

    Windows Me also uses the same bits for the Set_Adapter_Power_State call. Before placing the system in a new power state, Windows Me calls the driver's Set_Adapter_Power_State function with the appropriate CM_POWERSTATE_HIBERNATE flag. Before returning from this call, drivers must perform any necessary actions to prepare their device to enter the new power state.



    For example, if Set_Adapter_Power_State is called with either CM_POWERSTATE_D3 or CM_POWERSTATE_HIBERNATE flags, the driver must save its device's register values to prepare for power loss. Subsequently, when power is restored, Windows Me will call Set_Adapter_Power_State with CM_POWERSTATE_D0. In response, the driver must restore its device's registers so the device is returned to the same state it was in prior to the sleep or hibernate request.

    Microsoft Windows Me OS-Power Management Initialization

    In addition, drivers must be designed to handle the Set_Adapter_Power_State CM_POWERSTATE_D0 command while resuming even though the BIOS might have initiated a re-POST or other display activity. A device must not enable its IRQ until the Set_Adapter_Power_State CM_POWERSTATE_D0 command is received. In other words, do not allow a display device to generate interrupts before its driver receives the Set_Adapter_Power_State CM_POWERSTATE_D0 command. Although the system can reflect display adapter interrupts to real mode while booting, interrupts cannot be reflected to real mode while resuming because Plug and Play might have changed the interrupt.

    Likewise, regardless of what the BIOS does to the display adapter during resume, the driver is responsible for putting the device back into the same state it was in prior to receiving the Set_Adapter_Power_State CM_POWERSTATE_D3 command.

    Display Adapter Power State Functions

    Set_Adapter_Power_State

    The Set_Adapter_Power_State function saves and restores whatever state is necessary to place the device into the power state specified in the PowerState parameter. The driver remains in memory at all times. Display memory contents do not need to be saved because the operating system resets the display mode during a return to the D0 state.

    The default action defined by CR_DEFAULT is to re-POST the device if it is going from D3 to D0. Any other state transition results in no action. If the display driver is capable of initializing the device from a power-off without a POST, then this function returns CR_SUCCESS during the D3 to D0 transition.

    DWORD __cdecl SetAdapterPowerState(DEVNODE devnode,DWORD PowerState)

    Parameters

    PowerState

    One of the following:

    #define CM_POWERSTATE_D0 0x00000001

    #define CM_POWERSTATE_D1 0x00000002

    #define CM_POWERSTATE_D2 0x00000004

    #define CM_POWERSTATE_D3 0x00000008

    #define CM_POWERSTATE_HIBERNATE 0x00000010
    Return Values

    The following values are provided.

    CR_DEFAULT
    Operating system should perform its default action for the power state transition. (That is, re-POST for D3 to D0. Otherwise, it should do nothing.) This should also be returned if PowerState is something other than one of the four CM_POWERSTATE_Dx values.

    CR_SUCCESS


    Power state was changed successfully. No further action needs to be taken by the operating system.
    Set_Adapter_Power_State Entry and Exit

    Entry

    Meaning

    ESP+4

    Device node.

    ESP+8

    Power state to set. One of:

    CM_POWERSTATE_D0


    CM_POWERSTATE_D1
    CM_POWERSTATE_D2
    CM_POWERSTATE_D3
    CM_POWERSTATE_HIBERNATE

    Exit

    Meaning

    EAX

    CR_DEFAULT

    Routine did nothing.

    CR_SUCCESS

    Routine set the appropriate power state for the adapter/display chip set.





    Get_Adapter_Power_State_Caps

    The Get_Adapter_Power_State_Caps function should return the power states supported by the display adapter.

    DWORD __cdecl GetAdapterPowerStateCaps(DEVNODE devnode)


    Parameters

    None.


    Return Values

    Bitmask of:



    CM_POWERSTATE_D0
    CM_POWERSTATE_D1
    CM_POWERSTATE_D2
    CM_POWERSTATE_D3
    CM_POWERSTATE_HIBERNATE

    Interface between BaseVDD/MiniVDD/Display Drivers


    The following table indicates the functions that must be supported by each display driver/miniVDD for the primary and secondary display adapters or usable services.

    MiniVDD Functions

    baseVDD —> miniVDD

    No.

    Function

     

    Pri

    Sec

    Notes

    1

    REGISTER_DISPLAY_DRIVER

    Interface between miniVDD and driver

    2

    2

     

    2

    PRE_HIRES_TO_VGA

    Switch to core graph

    1

    3

    3

    SAVE_REGISTERS

    Save registers

    2

    3

    4

    RESTORE_REGISTERS

    Restore registers

    2

    3

    5

    ENABLE_TRAPS

    Enable I/O traps

    2

    3

    6

    DISABLE_TRAPS

    Disable I/O traps

    2

    3

    7

    DISPLAY_DRIVER_DISABLING

    Disable display

    1

    1

    8

    ENABLE_ACCELERATOR

    Enable display

    1

    3

    9

    DISABLE_ACCELERATOR

     

    3

    3

    Not Used

    10

    CHECK_UPDATE

    3

    3

    Not Used

    11

    CHECK_WINDOWED

    3

    3

    Not Used

    12

    ACC_VBE_PM

    VBE/PM

    2

    2

     

    13

    ACC_VBE_DDC

    VBE/DDC

    2

    2

    14

    ACC_INT_10

    ESA BIOS (VGA BIOS)

    4

    3

    15

    ACC_GET_CAPABILITIES

    Accelerator BIOS

    4

    3

    16

    ACC_GET_EXT_MODE_INFO

    Accelerator BIOS

    4

    3

    17

    ACC_GET_FLAT_SELECTOR

    Accelerator BIOS

    4

    3

    18

    ACC_ENABLE_BIOS

    Accelerator BIOS

    4

    3

    19

    ACC_DISABLE_BIOS

    Accelerator BIOS

    4

    3

    20

    ACC_SET_PALETTE

    Accelerator BIOS

    4

    3

    21

    ACC_GET_PALETTE

    Accelerator BIOS

    4

    3

    22

    ACC_SET_CURSOR

    Accelerator BIOS

    4

    3

    23

    ACC_SHOW_CURSOR

    Accelerator BIOS

    4

    3

    24

    ACC_HIDE_CURSOR

    Accelerator BIOS

    4

    3

    26

    ACC_GET_CURSOR_POS

    Accelerator BIOS

    4

    3

    27

    GET_NUM_UNITS

    Obtain # of monitor units available for connection

    2

    2

    New Feature
    (not yet supported)

    28

    SET_ADAPTER_POWER_STATE

     

    2

    2

    New Feature
    (not yet supported)

    29

    GET_ADAPTER_POWER_
    STATE_CAPS

    2

    2

    New Feature

    30

    SET_MONITOR_POWER_STATE

    2

    2

    New Feature

    31

    GET_MONITOR_POWER_
    STATE_CAPS

    2

    2

    New Feature

    32

    GET_MONITOR_INFO

    2

    2

    New Feature

    33

    I2C_OPEN

    2

    2

    New Feature

    34

    I2C_ACCESS

    2

    2

    New Feature

    35

    GPIO_OPEN

    2

    2

    New Feature

    36

    GPIO_ACCESS

    2

    2

    New Feature

    37

    COPYPROTECTION_ACCESS

    2

    2

    New Feature

    1: Support is necessary
    2: Support may be necessary
    3: Support is unnecessary (not in use)
    4: Necessary for accelerator BIOS support (this function may not be supported in the future)




    Download 225.5 Kb.
    1   2   3   4




    Download 225.5 Kb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Windows Family of Operating Systems

    Download 225.5 Kb.