diff options
author | Egbert Eich <eich@freedesktop.org> | 2008-07-17 08:41:32 +0200 |
---|---|---|
committer | Egbert Eich <eich@freedesktop.org> | 2008-07-17 19:39:07 +0200 |
commit | f594c7ce12acd85e18879d3e81f0a891a8d401e6 (patch) | |
tree | 3733b903050039b958e31bc4a11ea2a79640b37f | |
parent | 75c09c8efb746bab2ba7d71688f284fa5d25b714 (diff) |
Crtc: Call CRTC Save/Restore wrapper directly.
These functions used to save/restore CRTC registers directly.
Since the save/restore functions of the different CRTC subsystems
have been separated out it only serves as a wrapper.
Therefore it doesn't need to live in the Crtc structure any
more but can be moved up to a generic level that is called
directly.
-rw-r--r-- | src/rhd_crtc.c | 103 | ||||
-rw-r--r-- | src/rhd_crtc.h | 15 | ||||
-rw-r--r-- | src/rhd_driver.c | 8 |
3 files changed, 61 insertions, 65 deletions
diff --git a/src/rhd_crtc.c b/src/rhd_crtc.c index b089cb6..8b364da 100644 --- a/src/rhd_crtc.c +++ b/src/rhd_crtc.c @@ -1167,55 +1167,6 @@ D2Blank(struct rhdCrtc *Crtc, Bool Blank) * */ static void -DxSave(struct rhdCrtc *Crtc) -{ - RHDDebug(Crtc->scrnIndex, "%s: %s\n", __func__, Crtc->Name); - - if (Crtc->FMTSave) - Crtc->FMTSave(Crtc); - - if (Crtc->FBSave) - Crtc->FBSave(Crtc); - - if (Crtc->LUTSave) - Crtc->LUTSave(Crtc); - - if (Crtc->ScaleSave) - Crtc->ScaleSave(Crtc); - - if (Crtc->ModeSave) - Crtc->ModeSave(Crtc); -} - -/* - * - */ -static void -DxRestore(struct rhdCrtc *Crtc) -{ - - RHDDebug(Crtc->scrnIndex, "%s: %s\n", __func__, Crtc->Name); - - if (Crtc->FMTRestore) - Crtc->FMTRestore(Crtc); - - if (Crtc->FBRestore) - Crtc->FBRestore(Crtc); - - if (Crtc->LUTRestore) - Crtc->LUTRestore(Crtc); - - if (Crtc->ScaleRestore) - Crtc->ScaleRestore(Crtc); - - if (Crtc->ModeRestore) - Crtc->ModeRestore(Crtc); -} - -/* - * - */ -static void DxFMTSet(struct rhdCrtc *Crtc, struct rhdFMTDither *FMTDither) { CARD32 RegOff; @@ -1416,8 +1367,6 @@ RHDCrtcsInit(RHDPtr rhdPtr) Crtc->Power = D1Power; Crtc->Blank = D1Blank; - Crtc->Save = DxSave; - Crtc->Restore = DxRestore; rhdPtr->Crtc[0] = Crtc; @@ -1466,8 +1415,6 @@ RHDCrtcsInit(RHDPtr rhdPtr) Crtc->Power = D2Power; Crtc->Blank = D2Blank; - Crtc->Save = DxSave; - Crtc->Restore = DxRestore; rhdPtr->Crtc[1] = Crtc; } @@ -1506,3 +1453,53 @@ RHDCrtcsDestroy(RHDPtr rhdPtr) } } } + + +/* + * + */ +void +RHDCrtcSave(struct rhdCrtc *Crtc) +{ + RHDDebug(Crtc->scrnIndex, "%s: %s\n", __func__, Crtc->Name); + + if (Crtc->FMTSave) + Crtc->FMTSave(Crtc); + + if (Crtc->FBSave) + Crtc->FBSave(Crtc); + + if (Crtc->LUTSave) + Crtc->LUTSave(Crtc); + + if (Crtc->ScaleSave) + Crtc->ScaleSave(Crtc); + + if (Crtc->ModeSave) + Crtc->ModeSave(Crtc); +} + +/* + * + */ +void +RHDCrtcRestore(struct rhdCrtc *Crtc) +{ + + RHDDebug(Crtc->scrnIndex, "%s: %s\n", __func__, Crtc->Name); + + if (Crtc->FMTRestore) + Crtc->FMTRestore(Crtc); + + if (Crtc->FBRestore) + Crtc->FBRestore(Crtc); + + if (Crtc->LUTRestore) + Crtc->LUTRestore(Crtc); + + if (Crtc->ScaleRestore) + Crtc->ScaleRestore(Crtc); + + if (Crtc->ModeRestore) + Crtc->ModeRestore(Crtc); +} diff --git a/src/rhd_crtc.h b/src/rhd_crtc.h index 79ae886..5c44c6b 100644 --- a/src/rhd_crtc.h +++ b/src/rhd_crtc.h @@ -69,13 +69,13 @@ struct rhdCrtc { DisplayModePtr ScaledToMode; /* usually a fixed mode from one of the monitors */ - struct rhdCrtcFMTPrivate *FMTPriv; + struct rhdCrtcFMTPrivate *FMTPriv; /* each CRTC subsystem may define this independently */ void (*FMTModeSet)(struct rhdCrtc *Crtc, struct rhdFMTDither *FMTDither); void (*FMTSave)(struct rhdCrtc *Crtc); void (*FMTRestore)(struct rhdCrtc *Crtc); void (*FMTDestroy) (struct rhdCrtc *Crtc); - struct rhdCrtcFBPrivate *FBPriv; + struct rhdCrtcFBPrivate *FBPriv; /* each CRTC subsystem may define this independently */ ModeStatus (*FBValid) (struct rhdCrtc *Crtc, CARD16 Width, CARD16 Height, int bpp, CARD32 Offset, CARD32 Size, CARD32 *pPitch); void (*FBSet) (struct rhdCrtc *Crtc, CARD16 Pitch, CARD16 Width, @@ -84,14 +84,14 @@ struct rhdCrtc { void (*FBRestore) (struct rhdCrtc *Crtc); void (*FBDestroy) (struct rhdCrtc *Crtc); - struct rhdCrtcModePrivate *ModePriv; + struct rhdCrtcModePrivate *ModePriv; /* each CRTC subsystem may define this independently */ ModeStatus (*ModeValid) (struct rhdCrtc *Crtc, DisplayModePtr Mode); void (*ModeSet) (struct rhdCrtc *Crtc, DisplayModePtr Mode); void (*ModeSave) (struct rhdCrtc *Crtc); void (*ModeRestore) (struct rhdCrtc *Crtc); void (*ModeDestroy) (struct rhdCrtc *Crtc); - struct rhdCrtcScalePrivate *ScalePriv; + struct rhdCrtcScalePrivate *ScalePriv; /* each CRTC subsystem may define this independently */ ModeStatus (*ScaleValid) (struct rhdCrtc *Crtc, enum rhdCrtcScaleType Type, DisplayModePtr Mode, DisplayModePtr ScaledToMode); void (*ScaleSet) (struct rhdCrtc *Crtc, enum rhdCrtcScaleType Type, DisplayModePtr Mode, DisplayModePtr ScaledToMode); void (*ScaleSave) (struct rhdCrtc *Crtc); @@ -102,7 +102,7 @@ struct rhdCrtc { /* callback for pll setting lives here */ /* callback for lut setting lives here */ - struct rhdCrtcLUTPrivate *LUTPriv; + struct rhdCrtcLUTPrivate *LUTPriv; /* each CRTC subsystem may define this independently */ void (*LUTSelect) (struct rhdCrtc *Crtc, struct rhdLUT *LUT); void (*LUTSave) (struct rhdCrtc *Crtc); void (*LUTRestore) (struct rhdCrtc *Crtc); @@ -110,14 +110,13 @@ struct rhdCrtc { void (*Power) (struct rhdCrtc *Crtc, int Power); void (*Blank) (struct rhdCrtc *Crtc, Bool Blank); - - void (*Save) (struct rhdCrtc *Crtc); - void (*Restore) (struct rhdCrtc *Crtc); }; void RHDCrtcsInit(RHDPtr rhdPtr); void RHDAtomCrtcsInit(RHDPtr rhdPtr); void RHDCrtcsDestroy(RHDPtr rhdPtr); +void RHDCrtcSave(struct rhdCrtc *Crtc); +void RHDCrtcRestore(struct rhdCrtc *Crtc); /* * Calculate overscan values for scaler. diff --git a/src/rhd_driver.c b/src/rhd_driver.c index 33547c7..7c77fee 100644 --- a/src/rhd_driver.c +++ b/src/rhd_driver.c @@ -2120,8 +2120,8 @@ rhdSave(RHDPtr rhdPtr) RHDPLLsSave(rhdPtr); RHDLUTsSave(rhdPtr); - rhdPtr->Crtc[0]->Save(rhdPtr->Crtc[0]); - rhdPtr->Crtc[1]->Save(rhdPtr->Crtc[1]); + RHDCrtcSave(rhdPtr->Crtc[0]); + RHDCrtcSave(rhdPtr->Crtc[1]); rhdSaveCursor(pScrn); } @@ -2145,8 +2145,8 @@ rhdRestore(RHDPtr rhdPtr) RHDVGARestore(rhdPtr); - rhdPtr->Crtc[0]->Restore(rhdPtr->Crtc[0]); - rhdPtr->Crtc[1]->Restore(rhdPtr->Crtc[1]); + RHDCrtcRestore(rhdPtr->Crtc[0]); + RHDCrtcRestore(rhdPtr->Crtc[1]); RHDOutputsRestore(rhdPtr); } |