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