rpms/xorg-x11-drv-ati/F-8 radeon-git-upstream-fixes2.patch, 1.1, 1.2 xorg-x11-drv-ati.spec, 1.77, 1.78
Dave Airlie (airlied)
fedora-extras-commits at redhat.com
Mon Mar 31 04:48:23 UTC 2008
Author: airlied
Update of /cvs/pkgs/rpms/xorg-x11-drv-ati/F-8
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv17100
Modified Files:
radeon-git-upstream-fixes2.patch xorg-x11-drv-ati.spec
Log Message:
* Mon Mar 31 2008 Dave Airlie <airlied at redhat.com> 6.8.0-3
- Add latest fixes from rawhide tree
radeon-git-upstream-fixes2.patch:
Index: radeon-git-upstream-fixes2.patch
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-drv-ati/F-8/radeon-git-upstream-fixes2.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- radeon-git-upstream-fixes2.patch 31 Mar 2008 01:54:02 -0000 1.1
+++ radeon-git-upstream-fixes2.patch 31 Mar 2008 04:47:45 -0000 1.2
@@ -1,3 +1,36 @@
+commit 959509dd54de053f526b534e379a46934127231f
+Author: Dave Airlie <airlied at redhat.com>
+Date: Mon Mar 31 14:29:44 2008 +1000
+
+ radeon: use correct DDC interfaces so quirks get applied
+
+ Radeon seemed to mess up applying certain quirks, hopefully this will fix it.
+
+commit 18f5f1cd2f52afed89fc11ade0920f3dfea87306
+Author: Dave Airlie <airlied at redhat.com>
+Date: Mon Mar 31 14:11:49 2008 +1000
+
+ radeon: split quirks into separate function and new quirk for IBM RN50
+
+ Add a connector table quirk for the IBM RN50.
+
+commit c2b1c8b706a6c7c1fd0af80091958473133d54e7
+Author: Dave Airlie <airlied at redhat.com>
+Date: Sun Mar 30 11:44:14 2008 +1000
+
+ atombios: fixup the width/height to use the mode values not the scrn ones
+
+ this fixes it properly, legacy appears to be okay.
+
+commit c5edea3d8c9254d3a21e390b8309e39e4c9635db
+Author: Dave Airlie <airlied at redhat.com>
+Date: Sun Mar 30 11:11:22 2008 +1000
+
+ r500/r600: fix rotation to fill screen
+
+ I'm not 100% sure this is the correct fix (maybe we shouldn't be using scrn
+ virtualX/Y)... this will fix it for now until I get more time.
+
commit 9c62c820ba45ebc14d5f36f5d7885863800b6adb
Author: Michel Dänzer <michel at tungstengraphics.com>
Date: Fri Mar 28 12:37:29 2008 +0100
@@ -809,14 +842,6 @@
R300+: update RADEONCP_REFRESH() to reflect new location of scissor regs
-commit b865faf95666e2172c3eec143f77fe9c524e4983
-Author: Alex Deucher <alex at samba.(none)>
-Date: Wed Feb 27 14:05:44 2008 -0500
-
- R100/R200: move r100/r200 specific 3D setup into appropriate blocks
-
- R3xx+ doesn't have these regs.
-
commit 3de2dc88cf26ff5932f11cecdf975777b8aa2a4a
Author: Adam Jackson <ajax at redhat.com>
Date: Wed Jan 16 14:55:05 2008 -0500
@@ -977,7 +1002,7 @@
static XF86ModuleVersionInfo ATIVersionRec =
diff --git a/src/atombios_crtc.c b/src/atombios_crtc.c
-index bc2df18..6fbf7ed 100644
+index bc2df18..229ca75 100644
--- a/src/atombios_crtc.c
+++ b/src/atombios_crtc.c
@@ -1,10 +1,5 @@
@@ -1276,7 +1301,7 @@
}
if (radeon_crtc->crtc_id == 0)
-@@ -376,8 +444,7 @@ atombios_crtc_mode_set(xf86CrtcPtr crtc,
+@@ -376,17 +444,14 @@ atombios_crtc_mode_set(xf86CrtcPtr crtc,
OUTREG(AVIVO_D1GRPH_PRIMARY_SURFACE_ADDRESS + radeon_crtc->crtc_offset, fb_location);
OUTREG(AVIVO_D1GRPH_SECONDARY_SURFACE_ADDRESS + radeon_crtc->crtc_offset, fb_location);
@@ -1286,7 +1311,27 @@
OUTREG(AVIVO_D1GRPH_SURFACE_OFFSET_X + radeon_crtc->crtc_offset, 0);
OUTREG(AVIVO_D1GRPH_SURFACE_OFFSET_Y + radeon_crtc->crtc_offset, 0);
-@@ -411,7 +478,7 @@ atombios_crtc_mode_set(xf86CrtcPtr crtc,
+ OUTREG(AVIVO_D1GRPH_X_START + radeon_crtc->crtc_offset, 0);
+ OUTREG(AVIVO_D1GRPH_Y_START + radeon_crtc->crtc_offset, 0);
+- OUTREG(AVIVO_D1GRPH_X_END + radeon_crtc->crtc_offset,
+- crtc->scrn->virtualX);
+- OUTREG(AVIVO_D1GRPH_Y_END + radeon_crtc->crtc_offset,
+- crtc->scrn->virtualY);
++ OUTREG(AVIVO_D1GRPH_X_END + radeon_crtc->crtc_offset, mode->HDisplay);
++ OUTREG(AVIVO_D1GRPH_Y_END + radeon_crtc->crtc_offset, mode->VDisplay);
+ OUTREG(AVIVO_D1GRPH_PITCH + radeon_crtc->crtc_offset,
+ crtc->scrn->displayWidth);
+ OUTREG(AVIVO_D1GRPH_ENABLE + radeon_crtc->crtc_offset, 1);
+@@ -398,7 +463,7 @@ atombios_crtc_mode_set(xf86CrtcPtr crtc,
+ OUTREG(AVIVO_D1SCL_UPDATE + radeon_crtc->crtc_offset, AVIVO_D1SCL_UPDATE_LOCK);
+
+ OUTREG(AVIVO_D1MODE_DESKTOP_HEIGHT + radeon_crtc->crtc_offset,
+- crtc->scrn->virtualY);
++ mode->VDisplay);
+ OUTREG(AVIVO_D1MODE_VIEWPORT_START + radeon_crtc->crtc_offset, (x << 16) | y);
+ OUTREG(AVIVO_D1MODE_VIEWPORT_SIZE + radeon_crtc->crtc_offset,
+ (mode->HDisplay << 16) | mode->VDisplay);
+@@ -411,7 +476,7 @@ atombios_crtc_mode_set(xf86CrtcPtr crtc,
atombios_set_crtc_timing(info->atomBIOS, &crtc_timing);
@@ -3718,7 +3763,7 @@
#define INT32 INT32
#include "CD_Common_Types.h"
diff --git a/src/radeon_bios.c b/src/radeon_bios.c
-index 8e6bd8d..6bd526a 100644
+index 8e6bd8d..f97ed2f 100644
--- a/src/radeon_bios.c
+++ b/src/radeon_bios.c
@@ -75,7 +75,8 @@ Bool RADEONGetBIOSInfo(ScrnInfoPtr pScrn, xf86Int10InfoPtr pInt10)
@@ -3731,7 +3776,82 @@
#else
info->VBIOS = xalloc(RADEON_VBIOS_SIZE);
#endif
-@@ -620,6 +621,9 @@ Bool RADEONGetDAC2InfoFromBIOS (xf86OutputPtr output)
+@@ -216,6 +217,44 @@ static Bool RADEONGetATOMConnectorInfoFromBIOS (ScrnInfoPtr pScrn)
+ return FALSE;
+ }
+
++static void RADEONApplyLegacyQuirks(ScrnInfoPtr pScrn, int index)
++{
++ RADEONInfoPtr info = RADEONPTR (pScrn);
++
++ /* most XPRESS chips seem to specify DDC_CRT2 for their
++ * VGA DDC port, however DDC never seems to work on that
++ * port. Some have reported success on DDC_MONID, so
++ * lets see what happens with that.
++ */
++ if (info->ChipFamily == CHIP_FAMILY_RS400 &&
++ info->BiosConnector[index].ConnectorType == CONNECTOR_VGA &&
++ info->BiosConnector[index].ddc_i2c.mask_clk_reg == RADEON_GPIO_CRT2_DDC) {
++ info->BiosConnector[index].ddc_i2c = legacy_setup_i2c_bus(RADEON_GPIO_MONID);
++ }
++
++ /* XPRESS desktop chips seem to have a proprietary connector listed for
++ * DVI-D, try and do the right thing here.
++ */
++ if ((!info->IsMobility) &&
++ (info->BiosConnector[index].ConnectorType == CONNECTOR_LVDS)) {
++ xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
++ "Proprietary connector found, assuming DVI-D\n");
++ info->BiosConnector[index].DACType = DAC_NONE;
++ info->BiosConnector[index].TMDSType = TMDS_EXT;
++ info->BiosConnector[index].ConnectorType = CONNECTOR_DVI_D;
++ }
++
++ /* Certain IBM chipset RN50s have a BIOS reporting two VGAs,
++ one with VGA DDC and one with CRT2 DDC. - kill the CRT2 DDC one */
++ if (info->Chipset == PCI_CHIP_RN50_515E &&
++ PCI_SUB_VENDOR_ID(info->PciInfo) == 0x1014) {
++ if (info->BiosConnector[index].ConnectorType == CONNECTOR_VGA &&
++ info->BiosConnector[index].ddc_i2c.mask_clk_reg == RADEON_GPIO_CRT2_DDC) {
++ info->BiosConnector[index].valid = FALSE;
++ }
++ }
++}
++
+ static Bool RADEONGetLegacyConnectorInfoFromBIOS (ScrnInfoPtr pScrn)
+ {
+ RADEONInfoPtr info = RADEONPTR (pScrn);
+@@ -297,28 +336,8 @@ static Bool RADEONGetLegacyConnectorInfoFromBIOS (ScrnInfoPtr pScrn)
+ else
+ info->BiosConnector[i].TMDSType = TMDS_INT;
+
+- /* most XPRESS chips seem to specify DDC_CRT2 for their
+- * VGA DDC port, however DDC never seems to work on that
+- * port. Some have reported success on DDC_MONID, so
+- * lets see what happens with that.
+- */
+- if (info->ChipFamily == CHIP_FAMILY_RS400 &&
+- info->BiosConnector[i].ConnectorType == CONNECTOR_VGA &&
+- info->BiosConnector[i].ddc_i2c.mask_clk_reg == RADEON_GPIO_CRT2_DDC) {
+- info->BiosConnector[i].ddc_i2c = legacy_setup_i2c_bus(RADEON_GPIO_MONID);
+- }
++ RADEONApplyLegacyQuirks(pScrn, i);
+
+- /* XPRESS desktop chips seem to have a proprietary connector listed for
+- * DVI-D, try and do the right thing here.
+- */
+- if ((!info->IsMobility) &&
+- (info->BiosConnector[i].ConnectorType == CONNECTOR_LVDS)) {
+- xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+- "Proprietary connector found, assuming DVI-D\n");
+- info->BiosConnector[i].DACType = DAC_NONE;
+- info->BiosConnector[i].TMDSType = TMDS_EXT;
+- info->BiosConnector[i].ConnectorType = CONNECTOR_DVI_D;
+- }
+ }
+ } else {
+ xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "No Connector Info Table found!\n");
+@@ -620,6 +639,9 @@ Bool RADEONGetDAC2InfoFromBIOS (xf86OutputPtr output)
if (!info->VBIOS) return FALSE;
@@ -3741,7 +3861,7 @@
if (info->IsAtomBios) {
/* not implemented yet */
return FALSE;
-@@ -628,7 +632,21 @@ Bool RADEONGetDAC2InfoFromBIOS (xf86OutputPtr output)
+@@ -628,7 +650,21 @@ Bool RADEONGetDAC2InfoFromBIOS (xf86OutputPtr output)
offset = RADEON_BIOS16(info->ROMHeaderStart + 0x32);
if (offset) {
rev = RADEON_BIOS8(offset + 0x3);
@@ -3764,7 +3884,7 @@
bg = RADEON_BIOS8(offset + 0xc) & 0xf;
dac = (RADEON_BIOS8(offset + 0xc) >> 4) & 0xf;
radeon_output->ps2_tvdac_adj = (bg << 16) | (dac << 20);
-@@ -656,6 +674,14 @@ Bool RADEONGetDAC2InfoFromBIOS (xf86OutputPtr output)
+@@ -656,6 +692,14 @@ Bool RADEONGetDAC2InfoFromBIOS (xf86OutputPtr output)
radeon_output->ntsc_tvdac_adj = radeon_output->ps2_tvdac_adj;
return TRUE;
@@ -3901,7 +4021,7 @@
{ -1, NULL }
};
diff --git a/src/radeon_commonfuncs.c b/src/radeon_commonfuncs.c
-index 0250aef..5c9eae1 100644
+index 4469cd8..5c9eae1 100644
--- a/src/radeon_commonfuncs.c
+++ b/src/radeon_commonfuncs.c
@@ -60,7 +60,7 @@ static void FUNC_NAME(RADEONInit3DEngine)(ScrnInfoPtr pScrn)
@@ -3982,60 +4102,6 @@
} else {
OUT_ACCEL_REG(R300_SC_CLIP_0_A, ((0 << R300_CLIP_X_SHIFT) |
(0 << R300_CLIP_Y_SHIFT)));
-@@ -239,6 +249,19 @@ static void FUNC_NAME(RADEONInit3DEngine)(ScrnInfoPtr pScrn)
- OUT_ACCEL_REG(R200_SE_VAP_CNTL, R200_VAP_FORCE_W_TO_ONE |
- R200_VAP_VF_MAX_VTX_NUM);
- FINISH_ACCEL();
-+
-+ BEGIN_ACCEL(5);
-+ OUT_ACCEL_REG(RADEON_RE_TOP_LEFT, 0);
-+ OUT_ACCEL_REG(RADEON_RE_WIDTH_HEIGHT, 0x07ff07ff);
-+ OUT_ACCEL_REG(RADEON_AUX_SC_CNTL, 0);
-+ OUT_ACCEL_REG(RADEON_RB3D_PLANEMASK, 0xffffffff);
-+ OUT_ACCEL_REG(RADEON_SE_CNTL, (RADEON_DIFFUSE_SHADE_GOURAUD |
-+ RADEON_BFACE_SOLID |
-+ RADEON_FFACE_SOLID |
-+ RADEON_VTX_PIX_CENTER_OGL |
-+ RADEON_ROUND_MODE_ROUND |
-+ RADEON_ROUND_PREC_4TH_PIX));
-+ FINISH_ACCEL();
- } else {
- BEGIN_ACCEL(2);
- if ((info->ChipFamily == CHIP_FAMILY_RADEON) ||
-@@ -252,20 +275,21 @@ static void FUNC_NAME(RADEONInit3DEngine)(ScrnInfoPtr pScrn)
- RADEON_VTX_ST1_NONPARAMETRIC |
- RADEON_TEX1_W_ROUTING_USE_W0);
- FINISH_ACCEL();
-+
-+ BEGIN_ACCEL(5);
-+ OUT_ACCEL_REG(RADEON_RE_TOP_LEFT, 0);
-+ OUT_ACCEL_REG(RADEON_RE_WIDTH_HEIGHT, 0x07ff07ff);
-+ OUT_ACCEL_REG(RADEON_AUX_SC_CNTL, 0);
-+ OUT_ACCEL_REG(RADEON_RB3D_PLANEMASK, 0xffffffff);
-+ OUT_ACCEL_REG(RADEON_SE_CNTL, (RADEON_DIFFUSE_SHADE_GOURAUD |
-+ RADEON_BFACE_SOLID |
-+ RADEON_FFACE_SOLID |
-+ RADEON_VTX_PIX_CENTER_OGL |
-+ RADEON_ROUND_MODE_ROUND |
-+ RADEON_ROUND_PREC_4TH_PIX));
-+ FINISH_ACCEL();
- }
-
-- BEGIN_ACCEL(5);
-- OUT_ACCEL_REG(RADEON_RE_TOP_LEFT, 0);
-- OUT_ACCEL_REG(RADEON_RE_WIDTH_HEIGHT, 0x07ff07ff);
-- OUT_ACCEL_REG(RADEON_AUX_SC_CNTL, 0);
-- OUT_ACCEL_REG(RADEON_RB3D_PLANEMASK, 0xffffffff);
-- OUT_ACCEL_REG(RADEON_SE_CNTL, (RADEON_DIFFUSE_SHADE_GOURAUD |
-- RADEON_BFACE_SOLID |
-- RADEON_FFACE_SOLID |
-- RADEON_VTX_PIX_CENTER_OGL |
-- RADEON_ROUND_MODE_ROUND |
-- RADEON_ROUND_PREC_4TH_PIX));
-- FINISH_ACCEL();
- }
-
-
diff --git a/src/radeon_crtc.c b/src/radeon_crtc.c
index 3524b75..e2d31eb 100644
--- a/src/radeon_crtc.c
@@ -6870,7 +6936,7 @@
FINISH_ACCEL();
diff --git a/src/radeon_output.c b/src/radeon_output.c
-index 62cc5d4..5ad0ac4 100644
+index 62cc5d4..28539d4 100644
--- a/src/radeon_output.c
+++ b/src/radeon_output.c
@@ -178,15 +178,9 @@ static Bool AVIVOI2CDoLock(xf86OutputPtr output, int lock_state);
@@ -6898,6 +6964,24 @@
else if (radeon_output->type == OUTPUT_DVI_I && (MonInfo->rawData[0x14] & 0x80)) /* if it's digital and DVI */
MonType = MT_DFP;
else
+@@ -301,7 +297,7 @@ RADEONDisplayDDCConnected(ScrnInfoPtr pScrn, xf86OutputPtr output)
+ INREG(DDCReg) & ~(RADEON_GPIO_EN_0));
+ usleep(15000);
+
+- MonInfo = xf86DoEDID_DDC2(pScrn->scrnIndex, radeon_output->pI2CBus);
++ MonInfo = xf86OutputGetEDID(output, radeon_output->pI2CBus);
+
+ OUTREG(DDCReg, INREG(DDCReg) | RADEON_GPIO_EN_1);
+ OUTREG(DDCReg, INREG(DDCReg) | RADEON_GPIO_EN_0);
+@@ -324,7 +320,7 @@ RADEONDisplayDDCConnected(ScrnInfoPtr pScrn, xf86OutputPtr output)
+ if (MonInfo) break;
+ }
+ } else if (radeon_output->pI2CBus && info->ddc2 && ((DDCReg == RADEON_LCD_GPIO_MASK) || (DDCReg == RADEON_MDGPIO_EN_REG))) {
+- MonInfo = xf86DoEDID_DDC2(pScrn->scrnIndex, radeon_output->pI2CBus);
++ MonInfo = xf86OutputGetEDID(output, radeon_output->pI2CBus);
+ } else {
+ xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "DDC2/I2C is not properly initialized\n");
+ MonType = MT_NONE;
@@ -673,15 +669,15 @@ radeon_bios_output_lock(xf86OutputPtr output, Bool lock)
if (info->IsAtomBios) {
Index: xorg-x11-drv-ati.spec
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-drv-ati/F-8/xorg-x11-drv-ati.spec,v
retrieving revision 1.77
retrieving revision 1.78
diff -u -r1.77 -r1.78
--- xorg-x11-drv-ati.spec 31 Mar 2008 01:54:02 -0000 1.77
+++ xorg-x11-drv-ati.spec 31 Mar 2008 04:47:45 -0000 1.78
@@ -5,7 +5,7 @@
Summary: Xorg X11 ati video driver
Name: xorg-x11-drv-ati
Version: 6.8.0
-Release: 2%{?dist}
+Release: 3%{?dist}
URL: http://www.x.org
License: MIT
Group: User Interface/X Hardware Support
@@ -88,6 +88,9 @@
%{_mandir}/man4/radeon.4*
%changelog
+* Mon Mar 31 2008 Dave Airlie <airlied at redhat.com> 6.8.0-3
+- Add latest fixes from rawhide tree
+
* Mon Mar 31 2008 Dave Airlie <airlied at redhat.com> 6.8.0-2
- rebase to latest git tree
More information about the fedora-extras-commits
mailing list