xf86-video-ati: Branch 'master' - 3 commits
George Sapountzis
gsap7 at kemper.freedesktop.org
Sun Feb 25 11:40:33 EET 2007
src/atimach64.c | 93 +++++++++++++++++++++++++++++++++++++++++++-------------
src/atimode.c | 42 +------------------------
2 files changed, 74 insertions(+), 61 deletions(-)
New commits:
diff-tree 4374895d393bf170134ccffc188521fe515d5a77 (from 8b9a4ec8af90b2f9f0d0a3a7f6627061df7e01b3)
Author: George Sapountzis <gsap7 at yahoo.gr>
Date: Sat Feb 24 21:25:13 2007 +0200
[mach64] Consolidate adjustments of mode timings, part 3.
Cosmetic.
diff --git a/src/atimach64.c b/src/atimach64.c
index e740003..c7b0ecc 100644
--- a/src/atimach64.c
+++ b/src/atimach64.c
@@ -82,12 +82,6 @@ ATIMach64PreInit
ATIHWPtr pATIHW
)
{
- CARD32 bus_cntl, config_cntl;
-
- {
- pATIHW->crtc_off_pitch = SetBits(pATI->displayWidth >> 3, CRTC_PITCH);
- }
-
if ((pATI->LockData.crtc_gen_cntl & CRTC_CSYNC_EN) && !pATI->OptionCSync)
{
xf86DrvMsg(pScreenInfo->scrnIndex, X_NOTICE,
@@ -95,7 +89,7 @@ ATIMach64PreInit
pATI->OptionCSync = TRUE;
}
- pATIHW->bus_cntl = bus_cntl = inr(BUS_CNTL);
+ pATIHW->bus_cntl = inr(BUS_CNTL);
if (pATI->Chip < ATI_CHIP_264VT4)
pATIHW->bus_cntl = (pATIHW->bus_cntl & ~BUS_HOST_ERR_INT_EN) |
BUS_HOST_ERR_INT;
@@ -142,7 +136,7 @@ ATIMach64PreInit
if (pATI->DAC == ATI_DAC_IBMRGB514)
pATIHW->gen_test_cntl |= GEN_OVR_OUTPUT_EN;
- pATIHW->config_cntl = config_cntl = inr(CONFIG_CNTL);
+ pATIHW->config_cntl = inr(CONFIG_CNTL);
#ifndef AVOID_CPIO
@@ -212,6 +206,9 @@ ATIMach64PreInit
/* Draw engine setup */
if (pATI->Block0Base)
{
+ CARD32 bus_cntl = inr(BUS_CNTL);
+ CARD32 config_cntl = inr(CONFIG_CNTL);
+
/* Ensure apertures are enabled */
outr(BUS_CNTL, pATIHW->bus_cntl);
outr(CONFIG_CNTL, pATIHW->config_cntl);
@@ -595,27 +592,27 @@ ATIMach64ModeAdjust
int VDisplay;
/* Clobber mode timings */
- if (pATI->OptionPanelDisplay && (pATI->LCDPanelID >= 0) &&
- !pMode->CrtcHAdjusted && !pMode->CrtcVAdjusted &&
- (!pATI->OptionLCDSync || (pMode->type & M_T_BUILTIN)))
+ if (pATI->OptionPanelDisplay && (pATI->LCDPanelID >= 0))
{
+ if (!pMode->CrtcHAdjusted && !pMode->CrtcVAdjusted &&
+ (!pATI->OptionLCDSync || (pMode->type & M_T_BUILTIN)))
+ {
int VScan;
pMode->Clock = pATI->LCDClock;
pMode->Flags &= ~(V_DBLSCAN | V_INTERLACE | V_CLKDIV2);
+ pMode->VScan = 0;
+
/*
* Use doublescanning or multiscanning to get around vertical blending
* limitations.
*/
VScan = pATI->LCDVertical / pMode->VDisplay;
+ if (VScan > 1)
{
- pMode->VScan = 0;
- if (VScan > 1)
- {
- VScan = 2;
- pMode->Flags |= V_DBLSCAN;
- }
+ VScan = 2;
+ pMode->Flags |= V_DBLSCAN;
}
pMode->HSyncStart = pMode->HDisplay + pATI->LCDHSyncStart;
@@ -628,6 +625,7 @@ ATIMach64ModeAdjust
ATIDivide(pATI->LCDVSyncWidth, VScan, 0, 1);
pMode->VTotal = pMode->VDisplay +
ATIDivide(pATI->LCDVBlankWidth, VScan, 0, 0);
+ }
}
/* If not already done adjust horizontal timings */
@@ -731,27 +729,28 @@ ATIMach64Calculate
/* Build register contents */
pATIHW->crtc_h_total_disp =
SetBits(pMode->CrtcHTotal, CRTC_H_TOTAL) |
- SetBits(pMode->CrtcHDisplay, CRTC_H_DISP);
+ SetBits(pMode->CrtcHDisplay, CRTC_H_DISP);
+
pATIHW->crtc_h_sync_strt_wid =
SetBits(pMode->CrtcHSyncStart, CRTC_H_SYNC_STRT) |
- SetBits(pMode->CrtcHSkew, CRTC_H_SYNC_DLY) | /* ? */
- SetBits(GetBits(pMode->CrtcHSyncStart, 0x0100U),
- CRTC_H_SYNC_STRT_HI) |
- SetBits(pMode->CrtcHSyncEnd - pMode->CrtcHSyncStart,
- CRTC_H_SYNC_WID);
+ SetBits(pMode->CrtcHSkew, CRTC_H_SYNC_DLY) | /* ? */
+ SetBits(GetBits(pMode->CrtcHSyncStart, 0x0100U), CRTC_H_SYNC_STRT_HI) |
+ SetBits(pMode->CrtcHSyncEnd - pMode->CrtcHSyncStart, CRTC_H_SYNC_WID);
if (pMode->Flags & V_NHSYNC)
pATIHW->crtc_h_sync_strt_wid |= CRTC_H_SYNC_POL;
pATIHW->crtc_v_total_disp =
SetBits(pMode->CrtcVTotal, CRTC_V_TOTAL) |
- SetBits(pMode->CrtcVDisplay, CRTC_V_DISP);
+ SetBits(pMode->CrtcVDisplay, CRTC_V_DISP);
+
pATIHW->crtc_v_sync_strt_wid =
SetBits(pMode->CrtcVSyncStart, CRTC_V_SYNC_STRT) |
- SetBits(pMode->CrtcVSyncEnd - pMode->CrtcVSyncStart,
- CRTC_V_SYNC_WID);
+ SetBits(pMode->CrtcVSyncEnd - pMode->CrtcVSyncStart, CRTC_V_SYNC_WID);
if (pMode->Flags & V_NVSYNC)
pATIHW->crtc_v_sync_strt_wid |= CRTC_V_SYNC_POL;
+ pATIHW->crtc_off_pitch = SetBits(pATI->displayWidth >> 3, CRTC_PITCH);
+
pATIHW->crtc_gen_cntl = inr(CRTC_GEN_CNTL) &
~(CRTC_DBL_SCAN_EN | CRTC_INTERLACE_EN |
CRTC_HSYNC_DIS | CRTC_VSYNC_DIS | CRTC_CSYNC_EN |
diff-tree 8b9a4ec8af90b2f9f0d0a3a7f6627061df7e01b3 (from bb226c9e7218d2a65c056fe74cb7eece0550670f)
Author: George Sapountzis <gsap7 at yahoo.gr>
Date: Sat Feb 24 21:22:49 2007 +0200
[mach64] Consolidate adjustments of mode timings, part 2.
Factor out to seperate function.
diff --git a/src/atimach64.c b/src/atimach64.c
index dee82c4..e740003 100644
--- a/src/atimach64.c
+++ b/src/atimach64.c
@@ -580,12 +580,12 @@ ATIMach64Save
}
/*
- * ATIMach64Calculate --
+ * ATIMach64ModeAdjust --
*
- * This function is called to fill in the Mach64 portion of an ATIHWRec.
+ * This function is called to adjust horizontal and vertical timings.
*/
-void
-ATIMach64Calculate
+static void
+ATIMach64ModeAdjust
(
ATIPtr pATI,
ATIHWPtr pATIHW,
@@ -711,6 +711,22 @@ ATIMach64Calculate
(int)MaxBits(CRTC_V_SYNC_WID))
pMode->CrtcVSyncEnd = pMode->CrtcVSyncStart + MaxBits(CRTC_V_SYNC_WID);
pMode->CrtcVAdjusted = TRUE; /* Redundant */
+}
+
+/*
+ * ATIMach64Calculate --
+ *
+ * This function is called to fill in the Mach64 portion of an ATIHWRec.
+ */
+void
+ATIMach64Calculate
+(
+ ATIPtr pATI,
+ ATIHWPtr pATIHW,
+ DisplayModePtr pMode
+)
+{
+ ATIMach64ModeAdjust(pATI, pATIHW, pMode);
/* Build register contents */
pATIHW->crtc_h_total_disp =
diff-tree bb226c9e7218d2a65c056fe74cb7eece0550670f (from 31c018ca4a18ce426b29006f103f56eee7f985fa)
Author: George Sapountzis <gsap7 at yahoo.gr>
Date: Sat Feb 24 21:20:53 2007 +0200
[mach64] Consolidate adjustments of mode timings, part 1.
Move LCD block from atimode.c to atimach64.c .
diff --git a/src/atimach64.c b/src/atimach64.c
index 98eb894..dee82c4 100644
--- a/src/atimach64.c
+++ b/src/atimach64.c
@@ -594,6 +594,42 @@ ATIMach64Calculate
{
int VDisplay;
+ /* Clobber mode timings */
+ if (pATI->OptionPanelDisplay && (pATI->LCDPanelID >= 0) &&
+ !pMode->CrtcHAdjusted && !pMode->CrtcVAdjusted &&
+ (!pATI->OptionLCDSync || (pMode->type & M_T_BUILTIN)))
+ {
+ int VScan;
+
+ pMode->Clock = pATI->LCDClock;
+ pMode->Flags &= ~(V_DBLSCAN | V_INTERLACE | V_CLKDIV2);
+
+ /*
+ * Use doublescanning or multiscanning to get around vertical blending
+ * limitations.
+ */
+ VScan = pATI->LCDVertical / pMode->VDisplay;
+ {
+ pMode->VScan = 0;
+ if (VScan > 1)
+ {
+ VScan = 2;
+ pMode->Flags |= V_DBLSCAN;
+ }
+ }
+
+ pMode->HSyncStart = pMode->HDisplay + pATI->LCDHSyncStart;
+ pMode->HSyncEnd = pMode->HSyncStart + pATI->LCDHSyncWidth;
+ pMode->HTotal = pMode->HDisplay + pATI->LCDHBlankWidth;
+
+ pMode->VSyncStart = pMode->VDisplay +
+ ATIDivide(pATI->LCDVSyncStart, VScan, 0, 0);
+ pMode->VSyncEnd = pMode->VSyncStart +
+ ATIDivide(pATI->LCDVSyncWidth, VScan, 0, 1);
+ pMode->VTotal = pMode->VDisplay +
+ ATIDivide(pATI->LCDVBlankWidth, VScan, 0, 0);
+ }
+
/* If not already done adjust horizontal timings */
if (!pMode->CrtcHAdjusted)
{
diff --git a/src/atimode.c b/src/atimode.c
index d455404..68c1342 100644
--- a/src/atimode.c
+++ b/src/atimode.c
@@ -528,46 +528,8 @@ ATIModeCalculate
CARD32 lcd_index;
int Index, ECPClock, MaxScalerClock;
- /* Clobber mode timings */
- if (pATI->OptionPanelDisplay && (pATI->LCDPanelID >= 0) &&
- !pMode->CrtcHAdjusted && !pMode->CrtcVAdjusted &&
- (!pATI->OptionLCDSync || (pMode->type & M_T_BUILTIN)))
- {
- int VScan;
-
- pMode->Clock = pATI->LCDClock;
- pMode->Flags &= ~(V_DBLSCAN | V_INTERLACE | V_CLKDIV2);
-
- /*
- * Use doublescanning or multiscanning to get around vertical blending
- * limitations.
- */
- VScan = pATI->LCDVertical / pMode->VDisplay;
- {
- pMode->VScan = 0;
- if (VScan > 1)
- {
- VScan = 2;
- pMode->Flags |= V_DBLSCAN;
- }
- }
-
- pMode->HSyncStart = pMode->HDisplay + pATI->LCDHSyncStart;
- pMode->HSyncEnd = pMode->HSyncStart + pATI->LCDHSyncWidth;
- pMode->HTotal = pMode->HDisplay + pATI->LCDHBlankWidth;
-
- pMode->VSyncStart = pMode->VDisplay +
- ATIDivide(pATI->LCDVSyncStart, VScan, 0, 0);
- pMode->VSyncEnd = pMode->VSyncStart +
- ATIDivide(pATI->LCDVSyncWidth, VScan, 0, 1);
- pMode->VTotal = pMode->VDisplay +
- ATIDivide(pATI->LCDVBlankWidth, VScan, 0, 0);
- }
-
- {
- /* Fill in Mach64 data */
- ATIMach64Calculate(pATI, pATIHW, pMode);
- }
+ /* Fill in Mach64 data */
+ ATIMach64Calculate(pATI, pATIHW, pMode);
/* Set up LCD register values */
if (pATI->LCDPanelID >= 0)
More information about the xorg-commit
mailing list