From 18e20bc22a55ecfee9798c01079d7b24d19f0051 Mon Sep 17 00:00:00 2001 From: Alex Deucher Date: Thu, 8 May 2008 08:45:51 -0400 Subject: 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. --- src/radeon_exa_funcs.c | 7 +++++++ src/radeon_video.c | 7 +++++++ 2 files changed, 14 insertions(+) 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"); -- cgit v1.2.3