210 lines
5.7 KiB
Plaintext
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
|