summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Deucher <alex@t41p.hsd1.va.comcast.net>2008-05-08 08:45:51 -0400
committerAlex Deucher <alex@t41p.hsd1.va.comcast.net>2008-05-08 08:45:51 -0400
commit18e20bc22a55ecfee9798c01079d7b24d19f0051 (patch)
treeaac20cd4d5e65b2a9260b0357d671ce0ae66b6d4
parentc3532268875fd24e6519bea2fb1b814d612bbdb4 (diff)
RADEON: disable MMIO paths for EXA composite/texvid on IGP/R5xx
The MMIO paths eventually lead to a hang on r5xx/IGP. I haven't been able to find out why yet.
-rw-r--r--src/radeon_exa_funcs.c7
-rw-r--r--src/radeon_video.c7
2 files changed, 14 insertions, 0 deletions
diff --git a/src/radeon_exa_funcs.c b/src/radeon_exa_funcs.c
index 272ffa92..ab890adc 100644
--- a/src/radeon_exa_funcs.c
+++ b/src/radeon_exa_funcs.c
@@ -537,6 +537,9 @@ Bool FUNC_NAME(RADEONDrawInit)(ScreenPtr pScreen)
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Render acceleration "
"unsupported on R600 and newer cards.\n");
else if (IS_R300_3D || IS_R500_3D) {
+#ifdef XF86DRI
+ if ((info->ChipFamily < CHIP_FAMILY_RS400) || (info->directRenderingEnabled)) {
+#endif
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Render acceleration "
"enabled for R300/R400/R500 type cards.\n");
info->exa->CheckComposite = R300CheckComposite;
@@ -544,6 +547,10 @@ Bool FUNC_NAME(RADEONDrawInit)(ScreenPtr pScreen)
FUNC_NAME(R300PrepareComposite);
info->exa->Composite = FUNC_NAME(RadeonComposite);
info->exa->DoneComposite = FUNC_NAME(RadeonDoneComposite);
+#ifdef XF86DRI
+ } else
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "EXA Composite requires CP on R5xx/IGP\n");
+#endif
} else if ((info->ChipFamily == CHIP_FAMILY_RV250) ||
(info->ChipFamily == CHIP_FAMILY_RV280) ||
(info->ChipFamily == CHIP_FAMILY_RS300) ||
diff --git a/src/radeon_video.c b/src/radeon_video.c
index 216cd658..1c13dcd4 100644
--- a/src/radeon_video.c
+++ b/src/radeon_video.c
@@ -286,12 +286,19 @@ void RADEONInitVideo(ScreenPtr pScreen)
}
if (info->ChipFamily != CHIP_FAMILY_RV250) {
+#ifdef XF86DRI
+ if ((info->ChipFamily < CHIP_FAMILY_RS400) || (info->directRenderingEnabled)) {
+#endif
texturedAdaptor = RADEONSetupImageTexturedVideo(pScreen);
if (texturedAdaptor != NULL) {
adaptors[num_adaptors++] = texturedAdaptor;
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Set up textured video\n");
} else
xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Failed to set up textured video\n");
+#ifdef XF86DRI
+ } else
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Textured video requires CP on R5xx/IGP\n");
+#endif
} else
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Textured video disabled on RV250 due to HW bug\n");