diff options
Diffstat (limited to 'README_HALLIB')
-rw-r--r-- | README_HALLIB | 209 |
1 files changed, 209 insertions, 0 deletions
diff --git a/README_HALLIB b/README_HALLIB new file mode 100644 index 0000000..432e42e --- /dev/null +++ b/README_HALLIB @@ -0,0 +1,209 @@ +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 |