rpms/xorg-x11-drv-ati/devel radeon-modeset.patch, 1.28, 1.29 xorg-x11-drv-ati.spec, 1.137, 1.138

Dave Airlie airlied at fedoraproject.org
Thu Oct 30 06:59:59 UTC 2008


Author: airlied

Update of /cvs/pkgs/rpms/xorg-x11-drv-ati/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv3476

Modified Files:
	radeon-modeset.patch xorg-x11-drv-ati.spec 
Log Message:
- don't enable DFS under kms on anything but PCIE by default.


radeon-modeset.patch:

Index: radeon-modeset.patch
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-drv-ati/devel/radeon-modeset.patch,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -r1.28 -r1.29
--- radeon-modeset.patch	30 Oct 2008 00:10:56 -0000	1.28
+++ radeon-modeset.patch	30 Oct 2008 06:59:28 -0000	1.29
@@ -1,3 +1,9 @@
+commit e3b394a58329df2efe1b57f369cefe6803b5f853
+Author: Dave Airlie <airlied at redhat.com>
+Date:   Thu Oct 30 13:53:02 2008 +1000
+
+    radeon: setup accel dfs for PCIE cards only if drm_mm
+
 commit 2a85b00b38da8f5419837a9b4504aa1ba69b2a32
 Author: Dave Airlie <airlied at redhat.com>
 Date:   Thu Oct 30 10:00:10 2008 +1000
@@ -4331,7 +4337,7 @@
 +
 +#endif
 diff --git a/src/radeon_driver.c b/src/radeon_driver.c
-index c759bd6..46fa59a 100644
+index c759bd6..0efe9de 100644
 --- a/src/radeon_driver.c
 +++ b/src/radeon_driver.c
 @@ -224,7 +224,10 @@ radeonShadowWindow(ScreenPtr screen, CARD32 row, CARD32 offset, int mode,
@@ -4901,14 +4907,14 @@
 +	xf86CrtcSetSizeRange (pScrn, 320, 200, crtc_max_X, crtc_max_Y);
 +	
 +	RADEONPreInitDDC(pScrn);
- 
--    RADEONPreInitDDC(pScrn);
++
 +	if (!RADEONPreInitControllers(pScrn))
 +	    goto fail;
  
+-    RADEONPreInitDDC(pScrn);
+ 
 -    if (!RADEONPreInitControllers(pScrn))
 -       goto fail;
- 
 +	ErrorF("before xf86InitialConfiguration\n");
 +	
 +	if (!xf86InitialConfiguration (pScrn, FALSE))
@@ -4919,18 +4925,13 @@
 +	
 +	ErrorF("after xf86InitialConfiguration\n");
  
--    ErrorF("before xf86InitialConfiguration\n");
 +    } else {
 +#ifdef XF86DRM_MODE
 +	char *bus_id;
 +   	 if (!radeon_alloc_dri(pScrn))
 +		return FALSE;
  
--    if (!xf86InitialConfiguration (pScrn, FALSE))
--   {
--      xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "No valid modes.\n");
--      goto fail;
--   }
+-    ErrorF("before xf86InitialConfiguration\n");
 +	bus_id = DRICreatePCIBusID(info->PciInfo);
 +	if (drmmode_pre_init(pScrn, &info->drmmode, bus_id, "radeon", pScrn->bitsPerPixel / 8) == FALSE) {
 +	    xfree(bus_id);
@@ -4938,7 +4939,11 @@
 +	    goto fail;
 +	}
  
--    ErrorF("after xf86InitialConfiguration\n");
+-    if (!xf86InitialConfiguration (pScrn, FALSE))
+-   {
+-      xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "No valid modes.\n");
+-      goto fail;
+-   }
 +	info->drmmode.create_new_fb = radeon_create_new_fb;
 +	info->dri->drmFD = info->drmmode.fd;
 +	xfree(bus_id);
@@ -4958,7 +4963,8 @@
 +	    {
 +	        struct drm_radeon_getparam gp;
 +		int value;
-+
+ 
+-    ErrorF("after xf86InitialConfiguration\n");
 +		memset(&gp, 0, sizeof(gp));
 +		gp.param = RADEON_PARAM_FB_LOCATION;
 +		gp.value = &value;
@@ -5143,17 +5149,23 @@
  	}
      }
  
-@@ -3362,6 +3493,9 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
+@@ -3357,11 +3488,15 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
+ 	if (hasDRI) {
+ 	    info->accelDFS = info->cardType != CARD_AGP;
+ 
++            if (info->cardType != CARD_PCIE && info->drm_mm)
++		info->accelDFS = FALSE;
++
+ 	    if (xf86GetOptValInteger(info->Options, OPTION_ACCEL_DFS,
+ 				     &info->accelDFS)) {
  		from = X_CONFIG;
  	    }
  
-+	    if (info->drm_mm)
-+	      info->accelDFS = FALSE;
 +
  	    /* Reserve approx. half of offscreen memory for local textures by
  	     * default, can be overridden with Option "FBTexPercent".
  	     * Round down to a whole number of texture regions.
-@@ -3390,7 +3524,7 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
+@@ -3390,7 +3525,7 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
  #endif
  
  #if defined(XF86DRI) && defined(USE_XAA)
@@ -5162,7 +5174,7 @@
  	info->dri->textureSize = -1;
  	if (xf86GetOptValInteger(info->Options, OPTION_FBTEX_PERCENT,
  				 &(info->dri->textureSize))) {
-@@ -3408,7 +3542,7 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
+@@ -3408,7 +3543,7 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
  #endif
  
  #ifdef USE_XAA
@@ -5171,7 +5183,7 @@
  	return FALSE;
  #endif
  
-@@ -3429,7 +3563,7 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
+@@ -3429,7 +3564,7 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
  			    info->CurrentLayout.pixel_bytes);
  	int  maxy        = info->FbMapSize / width_bytes;
  
@@ -5180,7 +5192,7 @@
  	    xf86DrvMsg(scrnIndex, X_ERROR,
  		       "Static buffer allocation failed.  Disabling DRI.\n");
  	    xf86DrvMsg(scrnIndex, X_ERROR,
-@@ -3443,15 +3577,39 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
+@@ -3443,15 +3578,39 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
  	}
      }
  
@@ -5223,7 +5235,7 @@
  #endif
      xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG,
  		   "Initializing fb layer\n");
-@@ -3475,7 +3633,7 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
+@@ -3475,7 +3634,7 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
  
      if (info->r600_shadow_fb == FALSE) {
  	/* Init fb layer */
@@ -5232,7 +5244,7 @@
  			  pScrn->virtualX, pScrn->virtualY,
  			  pScrn->xDpi, pScrn->yDpi, pScrn->displayWidth,
  			  pScrn->bitsPerPixel))
-@@ -3517,8 +3675,10 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
+@@ -3517,8 +3676,10 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
      /* restore the memory map here otherwise we may get a hang when
       * initializing the drm below
       */
@@ -5245,7 +5257,7 @@
  
      /* Backing store setup */
      xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG,
-@@ -3528,7 +3688,7 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
+@@ -3528,7 +3689,7 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
  
      /* DRI finalisation */
  #ifdef XF86DRI
@@ -5254,7 +5266,7 @@
          info->dri->pKernelDRMVersion->version_minor >= 19)
      {
        if (RADEONDRISetParam(pScrn, RADEON_SETPARAM_PCIGART_LOCATION, info->dri->pciGartOffset) < 0)
-@@ -3547,11 +3707,17 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
+@@ -3547,11 +3708,17 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
  	info->directRenderingEnabled = RADEONDRIFinishScreenInit(pScreen);
      }
      if (info->directRenderingEnabled) {
@@ -5273,7 +5285,7 @@
  
  	xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Direct rendering enabled\n");
  
-@@ -3649,6 +3815,7 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
+@@ -3649,6 +3816,7 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
              return FALSE;
          }
      }
@@ -5281,7 +5293,7 @@
  
      /* set the modes with desired rotation, etc. */
      if (!xf86SetDesiredModes (pScrn))
-@@ -5133,7 +5300,7 @@ Bool RADEONSwitchMode(int scrnIndex, DisplayModePtr mode, int flags)
+@@ -5133,7 +5301,7 @@ Bool RADEONSwitchMode(int scrnIndex, DisplayModePtr mode, int flags)
  #ifdef XF86DRI
      Bool           CPStarted   = info->cp->CPStarted;
  
@@ -5290,7 +5302,7 @@
  	DRILock(pScrn->pScreen, 0);
  	RADEONCP_STOP(pScrn, info);
      }
-@@ -5156,8 +5323,10 @@ Bool RADEONSwitchMode(int scrnIndex, DisplayModePtr mode, int flags)
+@@ -5156,8 +5324,10 @@ Bool RADEONSwitchMode(int scrnIndex, DisplayModePtr mode, int flags)
  #endif
      }
  
@@ -5303,7 +5315,7 @@
  
      ret = xf86SetSingleMode (pScrn, mode, RR_Rotate_0);
  
-@@ -5169,15 +5338,18 @@ Bool RADEONSwitchMode(int scrnIndex, DisplayModePtr mode, int flags)
+@@ -5169,15 +5339,18 @@ Bool RADEONSwitchMode(int scrnIndex, DisplayModePtr mode, int flags)
  	/* xf86SetRootClip would do, but can't access that here */
      }
  
@@ -5329,7 +5341,7 @@
      }
  #endif
  
-@@ -5375,6 +5547,11 @@ void RADEONAdjustFrame(int scrnIndex, int x, int y, int flags)
+@@ -5375,6 +5548,11 @@ void RADEONAdjustFrame(int scrnIndex, int x, int y, int flags)
      xf86OutputPtr  output = config->output[config->compat_output];
      xf86CrtcPtr	crtc = output->crtc;
  
@@ -5341,7 +5353,7 @@
  #ifdef XF86DRI
      if (info->cp->CPStarted && pScrn->pScreen) DRILock(pScrn->pScreen, 0);
  #endif
-@@ -5410,67 +5587,79 @@ Bool RADEONEnterVT(int scrnIndex, int flags)
+@@ -5410,67 +5588,79 @@ Bool RADEONEnterVT(int scrnIndex, int flags)
      xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG,
  		   "RADEONEnterVT\n");
  
@@ -5466,7 +5478,7 @@
      }
  #endif
      /* this will get XVideo going again, but only if XVideo was initialised
-@@ -5482,7 +5671,7 @@ Bool RADEONEnterVT(int scrnIndex, int flags)
+@@ -5482,7 +5672,7 @@ Bool RADEONEnterVT(int scrnIndex, int flags)
  	RADEONEngineRestore(pScrn);
  
  #ifdef XF86DRI
@@ -5475,7 +5487,7 @@
  	RADEONCP_START(pScrn, info);
  	DRIUnlock(pScrn->pScreen);
      }
-@@ -5505,17 +5694,18 @@ void RADEONLeaveVT(int scrnIndex, int flags)
+@@ -5505,17 +5695,18 @@ void RADEONLeaveVT(int scrnIndex, int flags)
  		   "RADEONLeaveVT\n");
  #ifdef XF86DRI
      if (RADEONPTR(pScrn)->directRenderingInited) {
@@ -5505,7 +5517,7 @@
  
  	/* Make sure 3D clients will re-upload textures to video RAM */
  	if (info->dri->textureSize) {
-@@ -5551,10 +5741,15 @@ void RADEONLeaveVT(int scrnIndex, int flags)
+@@ -5551,10 +5742,15 @@ void RADEONLeaveVT(int scrnIndex, int flags)
  
      xf86_hide_cursors (pScrn);
  
@@ -5524,7 +5536,7 @@
  
      xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG,
  		   "Ok, leaving now...\n");
-@@ -5599,7 +5794,8 @@ static Bool RADEONCloseScreen(int scrnIndex, ScreenPtr pScreen)
+@@ -5599,7 +5795,8 @@ static Bool RADEONCloseScreen(int scrnIndex, ScreenPtr pScreen)
  #endif /* USE_XAA */
  
      if (pScrn->vtSema) {
@@ -5534,7 +5546,7 @@
      }
  
      xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG,
-@@ -5634,6 +5830,12 @@ static Bool RADEONCloseScreen(int scrnIndex, ScreenPtr pScreen)
+@@ -5634,6 +5831,12 @@ static Bool RADEONCloseScreen(int scrnIndex, ScreenPtr pScreen)
      info->DGAModes = NULL;
      xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG,
  		   "Unmapping memory\n");
@@ -6399,7 +6411,7 @@
  }
  #endif
 diff --git a/src/radeon_exa_funcs.c b/src/radeon_exa_funcs.c
-index 62224d0..ccb5fe4 100644
+index 62224d0..fe104c4 100644
 --- a/src/radeon_exa_funcs.c
 +++ b/src/radeon_exa_funcs.c
 @@ -74,21 +74,71 @@ FUNC_NAME(RADEONSync)(ScreenPtr pScreen, int marker)
@@ -6769,7 +6781,7 @@
      OUT_ACCEL_REG(RADEON_SRC_Y_X, (srcY << 16) | srcX);
      OUT_ACCEL_REG(RADEON_DST_Y_X, (dstY << 16) | dstX);
      OUT_ACCEL_REG(RADEON_DST_HEIGHT_WIDTH, (h << 16) | w);
-@@ -365,6 +530,104 @@ RADEONBlitChunk(ScrnInfoPtr pScrn, uint32_t datatype, uint32_t src_pitch_offset,
+@@ -365,6 +530,107 @@ RADEONBlitChunk(ScrnInfoPtr pScrn, uint32_t datatype, uint32_t src_pitch_offset,
                    RADEON_WAIT_2D_IDLECLEAN | RADEON_WAIT_DMA_GUI_IDLE);
      FINISH_ACCEL();
  }
@@ -6790,6 +6802,9 @@
 +    dri_bo *cur_scratch;
 +    uint32_t src_pitch_offset;
 +
++    if (!info->accelDFS)
++	return FALSE;
++
 +    driver_priv = exaGetPixmapDriverPrivate(pSrc);
 +
 +    RADEONGetDatatypeBpp(bpp, &datatype);
@@ -6874,7 +6889,7 @@
  #endif
  
  static Bool
-@@ -389,12 +652,16 @@ FUNC_NAME(RADEONDownloadFromScreen)(PixmapPtr pSrc, int x, int y, int w, int h,
+@@ -389,12 +655,16 @@ FUNC_NAME(RADEONDownloadFromScreen)(PixmapPtr pSrc, int x, int y, int w, int h,
      TRACE;
  
  #ifdef ACCEL_CP
@@ -6892,7 +6907,7 @@
  	RADEONGetPixmapOffsetPitch(pSrc, &src_pitch_offset) &&
  	(scratch = RADEONCPGetBuffer(pScrn)))
      {
-@@ -409,7 +676,8 @@ FUNC_NAME(RADEONDownloadFromScreen)(PixmapPtr pSrc, int x, int y, int w, int h,
+@@ -409,7 +679,8 @@ FUNC_NAME(RADEONDownloadFromScreen)(PixmapPtr pSrc, int x, int y, int w, int h,
  	RADEON_SWITCH_TO_2D();
  
  	/* Kick the first blit as early as possible */
@@ -6902,7 +6917,7 @@
  			x, y, 0, 0, w, hpass);
  	FLUSH_RING();
  
-@@ -436,7 +704,8 @@ FUNC_NAME(RADEONDownloadFromScreen)(PixmapPtr pSrc, int x, int y, int w, int h,
+@@ -436,7 +707,8 @@ FUNC_NAME(RADEONDownloadFromScreen)(PixmapPtr pSrc, int x, int y, int w, int h,
  	    /* Prepare next blit if anything's left */
  	    if (hpass) {
  		scratch_off = scratch->total/2 - scratch_off;
@@ -6912,7 +6927,7 @@
  				x, y, 0, 0, w, hpass);
  	    }
  
-@@ -543,14 +812,17 @@ Bool FUNC_NAME(RADEONDrawInit)(ScreenPtr pScreen)
+@@ -543,14 +815,17 @@ Bool FUNC_NAME(RADEONDrawInit)(ScreenPtr pScreen)
      info->accel_state->exa->UploadToScreen = FUNC_NAME(RADEONUploadToScreen);
      info->accel_state->exa->DownloadFromScreen = FUNC_NAME(RADEONDownloadFromScreen);
  
@@ -6933,7 +6948,7 @@
  
  #ifdef RENDER
      if (info->RenderAccel) {
-@@ -560,7 +832,7 @@ Bool FUNC_NAME(RADEONDrawInit)(ScreenPtr pScreen)
+@@ -560,7 +835,7 @@ Bool FUNC_NAME(RADEONDrawInit)(ScreenPtr pScreen)
  	else if (IS_R300_3D || IS_R500_3D) {
  	    if ((info->ChipFamily < CHIP_FAMILY_RS400)
  #ifdef XF86DRI
@@ -6942,7 +6957,7 @@
  #endif
  		) {
  		xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Render acceleration "
-@@ -595,6 +867,16 @@ Bool FUNC_NAME(RADEONDrawInit)(ScreenPtr pScreen)
+@@ -595,6 +870,16 @@ Bool FUNC_NAME(RADEONDrawInit)(ScreenPtr pScreen)
      }
  #endif
  


Index: xorg-x11-drv-ati.spec
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-drv-ati/devel/xorg-x11-drv-ati.spec,v
retrieving revision 1.137
retrieving revision 1.138
diff -u -r1.137 -r1.138
--- xorg-x11-drv-ati.spec	30 Oct 2008 00:10:56 -0000	1.137
+++ xorg-x11-drv-ati.spec	30 Oct 2008 06:59:28 -0000	1.138
@@ -5,7 +5,7 @@
 Summary:   Xorg X11 ati video driver
 Name:      xorg-x11-drv-ati
 Version:   6.9.0
-Release:   37%{?dist}
+Release:   38%{?dist}
 URL:       http://www.x.org
 License:   MIT
 Group:     User Interface/X Hardware Support
@@ -80,6 +80,9 @@
 %{_mandir}/man4/radeon.4*
 
 %changelog
+* Thu Oct 30 2008 Dave Airlie <airlied at redhat.com> 6.9.0-38
+- don't enable DFS under kms on anything but PCIE by default.
+
 * Thu Oct 30 2008 Dave Airlie <airlied at redhat.com> 6.9.0-37
 - fix memory leak in -ati driver (#469024)
 




More information about the scm-commits mailing list