xenocara/driver/xf86-video-mga/README_HALLIB
2006-11-26 20:06:58 +00:00

210 lines
5.7 KiB
Plaintext

HAL Documentation
This documentation provides preliminary explaination of the HAL library, a
more detailed version of this document is in the process of being written
and will be released with future driver builds.
------------------------------------------------------------
MGAOpenLibrary
Description: Link Client functions with HAL Librery
Input:
LPBOARDHANDLE pBoard: Handle to the board structure containing all the information about the board.
LPBARDHANDLElpClient: Pointer to the client stucture
ulClientSize: Size of the client structure
Error:
return 0 on success
-------------------------------------------------------------
MGAGetHardwareInfo
Description:
Fills MGAWINFO structure.
struct {
ULONG UlCapsFirstOutput;
ULONG ulCapsSecondOutput;
ULONG ulVideoMemory;
} FAR *LPMGAHWINFO;
#define MGAHWINFOCAPS_CRTC1_DIGITAL (1L << 1)
#define MGAHWINFOCAPS_CRTC1_TV (1L << 2)
#define MGAHWINFOCAPS_CRTC2_ANALOG (1L << 3)
#define MGAHWINFOCAPS_CRTC2_DIGITAL (1L << 4)
#define MGAHWINFOCAPS_CRTC2_TV (1L << 5)
#define MGAHWINFOCAPS_OUTPUT_VGA (1L << 6)
#define MGAHWINFOCAPS_CRTC2 (MGAHWINFOCAPS_CRTC2_ANALOG | MGAHWINFOCAPS_CRTC2_DIGITAL | MGAHWINFOCAPS_CRTC2_TV)
#define MGAHWINFOCAPS_OUTPUT_ANALOG (MGAHWINFOCAPS_CRTC1_ANALOG | MGAHWINFOCAPS_CRTC2_ANALOG)
#define MGAHWINFOCAPS_OUTPUT_DIGITAL (MGAHWINFOCAPS_CRTC1_DIGITAL | MGAHWINFOCAPS_CRTC2_DIGITAL)
#define MGAHWINFOCAPS_OUTPUT_TV (MGAHWINFOCAPS_CRTC1_TV | MGAHWINFOCAPS_CRTC2_TV)
example:
if (pMga->pMgaHwInfo->ulCapsSecondOutput & MGAHWINFOCAPS_OUTPUT_TV )
{
ErrorF("TV detected\n");
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "TV detected\n ");
}
if (pMga->pMgaHwInfo->ulCapsSecondOutput & MGAHWINFOCAPS_OUTPUT_DIGITAL)
{
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Digital Screen detected\n ");
}
Inputs:
LPBOARDHANDLE pBoard: Handle to the board structure containing all the information about the board.
LPMGAHWINFO pMgaHwInfo: Handle to the board structure containing all
the information about the specific Board.
Error:
Returns 0 on success
------------------------------------------------------------
MGAValidateMode
Description:
Validates the mode given by client.
Here are the different options for pMgaModeInfo->flOutput:
MGAMODEINFO_FORCE_PITCH
MGAMODEINFO_FORCE_DISPLAYORG
MGAMODEINFO_SECOND_CRTC
MGAMODEINFO_ANALOG1
MGAMODEINFO_ANALOG2
MGAMODEINFO_DIGITAL1
MGAMODEINFO_DIGITAL2
MGAMODEINFO_TV
These options can be combined together to set different combinations.
Example:
/*The second crtc outputs to a digital screen*/
pMgaModeInfo->flOutput= MGAMODEINFO_DIGITAL2 | MGAMODEINFO_SECOND_CRTC
| MGAMODEINFO_FORCE_PITCH | MGAMODEINFO_FORCE_DISPLAYORG;
- or -
/*The second crtc outputs to an analog screen*/
pMgaModeInfo-> flOutput = MGAMODEINFO_ANALOG2| MGAMODEINFO_SECOND_CRTC
| MGAMODEINFO_FORCE_PITCH | MGAMODEINFO_FORCE_DISPLAYORG;
- or -
/*The second crtc outputs to a tv*/
pMga->pMgaModeInfo->flOutput = MGAMODEINFO_TV | MGAMODEINFO_SECOND_CRTC | MGAMODEINFO_FORCE_PITCH | MGAMODEINFO_FORCE_DISPLAYORG;
Inputs:
LPBOARDHANDLE pBoard: Handle to the board structure containing all the information about the board.
LPMGAMODEINFO pMgaModeInfo: Pointer to structure containing information about a specific display mode. (You need to fill the structure except the video parameters part which will be filled by the function).
Error:
Returns 0 on success
-------------------------------------------------------------
MGASetMode
Description:
Initializes the board.
Here are the different options for pMgaModeInfo->flOutput:
MGAMODEINFO_FORCE_PITCH
MGAMODEINFO_FORCE_DISPLAYORG
MGAMODEINFO_SECOND_CRTC
MGAMODEINFO_ANALOG1
MGAMODEINFO_ANALOG2
MGAMODEINFO_DIGITAL1
MGAMODEINFO_DIGITAL2
MGAMODEINFO_TV
These options can be combined together to set different combinations.
Example:
/*The second crtc outputs to a digital screen*/
pMgaModeInfo->flOutput= MGAMODEINFO_DIGITAL2 | MGAMODEINFO_SECOND_CRTC
| MGAMODEINFO_FORCE_PITCH | MGAMODEINFO_FORCE_DISPLAYORG;
- or -
/*The second crtc outputs to an analog screen*/
pMgaModeInfo-> flOutput = MGAMODEINFO_ANALOG2| MGAMODEINFO_SECOND_CRTC
| MGAMODEINFO_FORCE_PITCH | MGAMODEINFO_FORCE_DISPLAYORG;
- or -
/*The second crtc outputs to a tv*/
pMga->pMgaModeInfo->flOutput = MGAMODEINFO_TV | MGAMODEINFO_SECOND_CRTC | MGAMODEINFO_FORCE_PITCH | MGAMODEINFO_FORCE_DISPLAYORG;
Inputs:
LPBOARDHANDLE pBoard: Handle to the board structure containing all the information about the board.
LPMGAMODEINFO pMgaModeInfo: Pointer to structure containing information about a specific display mode. (You need to fill the structure except the video parameters part which will be filled by the function).
Error:
Returns 0 on success
------------------------------------------------------------
MGASetVgaMode
Description:
Switchs the VGA mode
Inputs:
LPBOARDHANDLE pBoard: Handle to the board structure containing all the information about the board.
Error:
Returns 0 on success
------------------------------------------------------------
MGARestoreVgaState
Description:
Restores the VGA State
Inputs:
LPBOARDHANDLE pBoard: Handle to the board structure containing all the information about the board.
Error:
Returns 0 on success
------------------------------------------------------------
MGASaveVgaState
Description:
Saves the VGA state
Inputs:
LPBOARDHANDLE pBoard: Handle to the board structure containing all the information about the board.
Error:
Returns 0 on success
------------------------------------------------------------
MGACloseLibrary
Description:
Closes the library
Inputs:
LPBOARDHANDLE pBoard: Handle to the board structure containing all the information about the board.
Error:
Returns 0 on success