summaryrefslogtreecommitdiff
path: root/README_HALLIB
diff options
context:
space:
mode:
Diffstat (limited to 'README_HALLIB')
-rw-r--r--README_HALLIB209
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